人工智能正在驱动新一轮的商业变革,而算法技术则是推动核心底层技术的重要力量。算法崛起时代,技术浪潮可谓一日千里,算法工程师也只有不断精进自身技术,才能与时俱进、驭浪前行。近日,奇点云算法工程师三角肌在目标检测算法领域又有新突破。

摘要

卷积神经网络对目标检测的精度有着显著的提升,并且随着卷积神经网络的深度加深,对目标检测精度提升也越大,但是也需要更多的浮点计算。许多研究者通过知识蒸馏的方法,通过把一个更深更大的教师网络中的知识转移到一个小的学生网络中,以提高学生网络在目标检测中的效果。而大部分知识蒸馏的方法都需要设计复杂的代价函数,并且多数针对两步目标检测算法,本文针对一步目标检测算法提出一个干净有效的知识蒸馏方案。将教师网络生成的特征层作为真实样本,学生网络生成的特征层做为假样本,并对两者做生成对抗训练,以提高学生网络在一步目标检测中的表现。

1 Introduction

近些年来,随着目标检测算法的发展,研究者们发现利用更深更大的卷积神经网络作为骨架,对目标检测算法的精度提升越大。并且随着目标检测算法的检测精度提升,使视觉检测算法逐渐从非关键性领域,走向关键性领域(比如无人驾驶和医疗等领域)。但是为了保证检测精度,不得不使用更大的卷积神经网络作为骨架,造成检测速度下降,计算设备成本增加。因此许多研究者在确保检测精度的前提下,提高检测速度提出了很多方法和总结,如通过深度分离卷积 [1,2],或者通过点群卷积(pointwise group convolution)和通道混洗(channel shuffle)[3, 4] 来降低卷积神经网络浮点运算次数的方法,在保证骨架网络精度和容量的情况下减少计算量。虽然获得可观的提速效果,但是这些方法需要精心设计和调整骨架网络。很多研究者认为更深的骨架网络虽然有着更大的网络容量,因此在图像分类、目标检测等任务上有着更优秀的表现。但是一些特定的任务并不需要这么大的容量,所以在保证卷积神经网络精度的情况和下,对卷积神经网络做压缩、量化、通道减枝等[5, 6, 7, 8, 9]。

另一方面,有关于知识蒸馏的工作表明[10, 11, 12, 13],使用一个更深更大的模型,并且在充分训练完毕后作为teacher net,然后再选取一个比较浅的模型作为student net,最后使用teacher net输出的结果或者中间结果作为soft label结合真实样本的true label同时训练student net,可以极大的提升student net在特定任务上的表现。但是大部分这些方法都需要设计非常复杂的代价函数和训练方式,并且这些方法多用于图像分类和两步目标检测等,极少用于一步目标检测。因此,我们需要一个更加简单而有效,并且可以适用于一步目标检测的知识蒸馏方式。本文提出一种简单而有效知识蒸馏神经网络架构,并且可以明显的提升student net在一步目标检测网络的表现。和常规的知识蒸馏方式不同的是,我们参考对抗生成的神经网络架构[14],将重型目标检测神经网络和轻型目标检测神经网络的骨架分别拆分出来作为teacher net和student net,然后把teacher net 生成的feature map作为真实样本,而student net则作为生成器,并把student net生成的feature map作为假样本,最后根据真实样本和假样本设计一个神经网络作为判别器,做生成对抗训练。

我们的贡献主要有两点:

1 提出一种不需要设计复杂的代价函数的网络架构,并且可以适用于一步目标检测。

2 利用对抗生成网络架构,避免复杂的知识迁移设计,让student net自动的从teacher net中获取暗知识。

2 Related Works

深度学习目标检测算法架构主要分为两种,一种是一步检测,比如Liu W等人提出的SSD[15],直接通过通过卷积神经网络回归出物体的位置和类别,另一种是二步检测,如girshick等人提出的fast rcnn[16],以及后来Faster-RCNN [17] and R-FCN [18]等,首先通过卷积神经网络回归候选框,最后根据候选框再次识别每个候选框的类别,并回归出正确的位置。

网络裁剪,许多研究者认为深度神经网络被过度参数化,并且有很多冗余的神经元和连接,He Y等人认为[8],cnn每层神经元都是稀疏的,利用lasso regression回归找出cnn每层最有代表性的神经元重构该层的输出。Zhuang Z等人[9]认为layer-by-layer进行通道剪枝会影响cnn的鉴别能力,所以通过在fine-tune和剪枝阶段加入辅助loss,来保留cnn每层的鉴别能力。

网络量化, Wu J等人[20]通过k-means聚类算法加速和压缩模型的卷积层和全连接层,通过减小每层输出响应的估计误差可实现更好的量化结果,并提出一种有效的训练方案抑制量化后的多层累积误差 。Jacob B[21]等人提出将weights和inputs量化为uint8 bias量化为unit32同时训练期间前向时候采用量化,反向修正误差不量化,以确保cnn表现的情况下提高inference速度。

知识蒸馏是一种压缩模型并确保准确的一种方法。hinton 等人提出[2]将teacher net输出的结果作为soft label,并提倡使用温度交叉熵而不是L2损失。romero 等人[19]认为需要更多的unlabeled data让student net去mimic才能使student net经可能的接近teacher net,Chen G[12]等人在优化2步目标检测网络分别将teacher net的中间feature map 以及rpn/rcnn的暗知识提取出来让student net去mimic。其他研究者也有将teacher net的attention信息给student网络,如Zagoruyko S[22]等人提出spatial-attention,将teacher net的热力信息传递给student net。Yim J等人[23]将teacher net层与层之间的关系作为student网络mimic的目标。但是他们设计的的知识蒸馏都是要设计非常复杂的loss function,和复杂的暗知识的提取方式,并且这些方法多是在两步目标检测算法中很少用于一步目标检测中。为了能用一个简单有效的知识蒸馏的方式,我们参考生成对抗网络的架构方式[14]将教师网络生成的特征层作为真实样本,学生网络生成的特征层做为假样本,并对两者做生成对抗训练,以提高学生网络在一步目标检测中的表现。

3 Method

在本文中,我们采用一步目标检测算法SSD[15]作为我们的目标检测算法,SSD目标检测算法结构主要分成两部分,1)骨架网络,作为特征提取器。2)Head,在骨架网络提取的特征上,检测出目标的类别和位置。为了能获取更好的知识蒸馏效果,合理利用这个两个部分至关重要。

3.1 Overall Structure

fig 1为我们算法模型的整体结构,我们首先使用一个容量更大的SSD模型,在充分训练后将该SSD模型拆分成骨架网络和SSD-Head,其中骨架网络作为teacher net,然后再挑选一个容量较小的CNN作为student net。我们把teacher net生成的多个feature map作为true sample,而student net生成的多个feature map作为fake sample,并且将true sample和fake sample送入D Net中相对应的每个判别网络(fig 2)中,同时把fake sample输入到SSD-Head中。

3.2 Training Process

(1)

公式1中的N代表batchsize的大小,D代表判别网络,Teacher和Student分别代表teacher net和student net, θt、θs、θd分别代表teacher net、student net 和D Net模块中每个判别网络的weights。Lconf表示SSD中分类的损失函数,Lloc表示SSD中边界框的损失函数。

4 Experiment

在本章节,我们将在PASCAL VOC中做实验来验证我们的方法,包含20个类别。并且我们的方法训练的硬件为two NVIDIA GTX 1080Ti GPUs。训练所用的软件框架为gluoncv。

4.1 Training and testing data

由于时间的关系,我们训练使用的数据集Pascal Voc 2012trainval和Pascal Voc 2007 trainval sets,测试数据集为Pascal Voc 2007 test sets。该数据集包含检测物体的类别和位置信息。评估标准按照Pascal Voc竞赛所约定的,通过iou=0.5时的mAP来评估模型检测精度。而coco数据集上,使用coco 2017 trainset作为训练集,coco 2017 test作为测试集。

4.2 Results

我们将原生的SSD和在不同的Teacher net下知识蒸馏的SSD做比较,最高可以提升student net 2.8mAP。不过有趣的是,当teacher net为ResNet101,student net为ResNet18时,提升的效果反而不如ResNet50。而在coco上使用resnet50作为teacher net,moblinet作为student net,提升Moblient-SSD 4个mAP。

Table 1. Different student nets are not used GAN-knowledge distillation and the use of a GAN-knowledge distillation in different teacher net test results.

目前已经将该方法使用在faster rcnn上,考虑到时间,目前仅仅在pascal voc 2007上进行测试,coco正在训练。

Table 2. moblienetv1 use GAN-knowledge distillation in coco.

Table 3. Teacher net为骨架网络为ResNet101的faster rcnn,且使用Pascal Voc 2007 trainval作为训练集,在Pascal Voc 2007 test测试集上mAP为74.8+。第一行和第二行使用GAN Knowledge Distillation[1]方法,第三行为cvpr2019的 Distilling Object Detectors with Fine-grained Feature Imitation[2]的方法效果。

转载于:https://www.cnblogs.com/StartDT/p/11145808.html

奇点云三角肌「秀肌肉」,端化目标检测模型再获突破相关推荐

  1. 腾讯云技术复盘「数据丢失事件」,为什么业务上云还要再做云备份?

    众多惨痛的云事故告诉了我们一个几乎无法规避的现实,那就是云也会宕机,也会丢失数据-. [CSDN 编者按]近两日,因腾讯云损坏了北京一家创业公司的文件系统元数据,导致后者的业务经营.甚至融资进程,都受 ...

  2. 肩部三角肌介绍:肌肉英文名称和图示

    转自: http://blog.sina.com.cn/s/blog_60ad794b0100f7qq.html 肩部(shoulder)的三角肌(deltoid)俗称"虎头肌", ...

  3. Meta祭出元宇宙「阿拉丁神灯」!LeCun称世界模型将带来像人一样的AI

      视学算法报道   编辑:桃子 好困 袁榭 拉燕 [新智元导读]2022年2月24日凌晨,在Meta AI实验室讨论会上,小扎亲自带队公布了多项技术内容:语音生成元宇宙场景的Builder Bot. ...

  4. 「开发者说」“游戏化管理”上钉钉,关于悦积分的应用开发故事

     "在钉钉的应用开发不仅为企业提供智能积分.福利.文化.绩效等整体解决方案,同时也能让企业通过"打怪升级"的游戏化管理帮助企业解放生产力,让企业运营管理升级.通过与钉钉的 ...

  5. 分割点云数据_3D点云深度学习综述:三维形状分类、目标检测与跟踪、点云分割等...

    3D点云学习( Point Clouds)作为近年来的研究热点之一,受到了广泛关注,每年在各大会议上都有大量的相关文章发表.当前,点云上的深度学习变得越来越流行,人们提出了许多方法来解决这一领域的不同 ...

  6. 没去现场?一文 Get 云栖大会「移动专场」精华内容~含PPT下载

    出品|阿里巴巴新零售淘系技术部 2019年9月27日,「杭州云栖大会-淘系技术嘉年华」移动端侧技术专场,在云栖小镇举办,现场爆满 200+开发者齐聚,共同进行了一次面对面的技术交流. 我们荣幸的邀请到 ...

  7. 融云 x OHLA:「社交+游戏」双轮驱动,逐鹿中东陌生人社交

     完整报告,关注公众号文章限免下载 走过十多年的出海历程,中国创业者面临的机遇和挑战正在发生根本性变化.TikTok.SHEIN 在全球大获全胜的背后,不仅有中国产业链成熟.工程师红利的厚积薄发,也有 ...

  8. 融云超级群的「新能力」

    作为构建实时社区的第一选择,融云超级群自发布以来很好地满足了类 Discord 实时社区业务场景的客户需求.关注[融云全球互联网通信云]了解更多 随着服务的不断推进,融云超级群服务也在持续更新迭代,以 ...

  9. 设备 esp32_「ESP 教程」ESP32 如何运行 TensorFlow 模型

    人工智能之父,艾伦·图灵很早就曾预测"有一天,人们会带着电脑在公园散步,并告诉对方,今天早上我的计算机讲了个很有趣的事." 人类一直试图让机器具有智能,也就是人工智能(Artifi ...

最新文章

  1. stm32通用定时器的PWM输出
  2. 网格员计算机基本操作,网格交易总结系列(一)基本操作篇
  3. mybaits四-1:增删改查的实现
  4. mysql 提高电脑配置_Mysql配置优化浅谈
  5. gtj2018如何生成工程量报表_广联达BIM土建计量平台GTJ2018
  6. 斐波那契数列与阶乘---递归实现
  7. ASP.NET学习5--N层代码示例
  8. POJ 3164 Command Network (最小树形图)
  9. 频域/s域/z域三大变换的性质对比
  10. Python学习之表的数据类型
  11. 微软鼠标测试软件,微软sculpt鼠标评测 | 微软sculpt人体工学无线鼠标评测_什么值得买...
  12. 支持的SUPL服务器,AGPS SUPL服务器客制化
  13. 51最小系统板+STC89C52芯片流水灯
  14. SQL简体转繁体互换(常用汉字词组)
  15. python读txt文件-python读取文本文件数据
  16. 达索系统与中国的那些创新
  17. ViewPager(六)让ViewPager用起来更顺滑——设置间距与添加转场动画
  18. 惠普触控板使用指南_惠普笔记本怎么关触控板?
  19. 华为手机大变?余承东被传离职转岗,进军美国受阻惹的祸?
  20. 爬虫day6常见的反爬总结

热门文章

  1. 位(bit),字节(Byte),KB,MB,GB,TB,UTF-8,Unicode,字符集,排序规则
  2. mysql 5.6.26 mac下载_MySQL For mac
  3. 分子对接使用方法总结
  4. Arcgis --- 坡向批处理
  5. 彻底关闭win10恶心的开始菜单广告
  6. Python画图示例之 3D绘图
  7. acl 影响因子_计算机专业部分国际会议及刊物影响因子排名
  8. Unity序列帧动画——Sprite图片集制作UI动画
  9. Java开发的发展前景怎么样?
  10. ThinkJS 作者李成银:择善而从之,笃行致远