当前位置: 首页 > news >正文

【深度学习:目标检测】CVPR 2016:目标检测领域的新进展

深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏! 

 

前言

 

2016年的CVPR会议目标检测(在这里讨论的是2D的目标检测,如图1所示)的方法主要是基于卷积神经网络的框架,代表性的工作有ResNet[1](Kaiming He等)、YOLO[5](Joseph Redmon等)、LocNet[7](Spyros Gidaris等)、HyperNet[3](Tao Kong等)、ION[2](Sean Bell等)、G-CNN[6](Mahyar Najibi等)。在这里之所以把ResNet也放进来,是因为有效的特征对于目标检测领域是极为重要的。

图1:2D目标检测示意图

在目标检测中,以下几个指标非常重要:(a)识别精度;(b)识别效率;(c)定位准确性。以上的几个工作或者侧重识别率和效率,或者通过某种方式提高定位的准确性,下面分别展开进行描述。

 

一、识别精度

说起识别精度,不得不提目标检测中衡量检测精度的指标mAP(mean average precision)。简单来讲就是在多个类别的检测中,每一个类别都可以根据recall和precision绘制一条曲线,那么AP就是该曲线下的面积,而mAP是多个类别AP的平均值,这个值介于0到1之间,且越大越好。具有代表性的工作是ResNet、ION和HyperNet。

ResNet:何凯明的代表作之一,获得了今年的bestpaper。文章不是针对目标检测来做的,但其解决了一个最根本的问题:更有力的特征。检测时基于Faster R-CNN的目标检测框架,使用ResNet替换VGG16网络可以取得更好的检测结果。(实际上,使用ResNet网络代替ZF, VGG, GoogleNet等网络模型无论在图像分类、目标检测还是图像分割等任务上都可以大大提高识别的准确率)

 
图2:ResNet获得CVPR2016的best paper
ION(inside-outside-network):这个工作的主要贡献有两个,第一个是如何在Fast R-CNN的基础之上增加context信息,所谓context在目标检测领域是指感兴趣的ROI周围的信息,可以是局部的,也可以是全局的。为此,作者提出了IRNN的概念,这也就是outside-network。第二个贡献是所谓skip-connection,通过将deep ConvNet的多层ROI特征进行提取和融合,利用该特征进行每一个位置的分类和进一步回归,这也就是inside-network。

依靠这两个改进,ION可以在Pascal VOC 2007数据集上边提高大约5个百分点。同时也获得了COCO 2015 detection竞赛的best student entry。

图3:Inside-Outside Net (ION)

HyperNet:文章的出发点为一个很重要的观察:神经网络的高层信息体现了更强的语义信息,对于识别问题较为有效;而低层的特征由于分辨率较高,对于目标定位有天然的优势,而检测问题恰恰是识别+定位,因此作者的贡献点在于如何将deep ConvNet的高低层特征进行融合,进而利用融合后的特征进行region proposal提取和进一步目标检测。不同于Faster R-CNN,文章的潜在Anchor是用类似于BING[4]的方法通过扫描窗口的方式生成的,但利用的是CNN的特征,因此取得了更好的性能。

通过以上的改进策略,HyperNet可以在产生大约100个region proposal的时候保证较高的recall,同时目标检测的mAP相对于Fast R-CNN也提高了大约6个百分点

图4:HyperNet 框架

二、识别效率

YOLO:这是今年的oral。这个工作在识别效率方面的优势很明显,可以做到每秒钟45帧图像,处理视频是完全没有问题的。YOLO最大贡献是提出了一种全新的检测框架——直接利用CNN的全局特征预测每个位置可能的目标,相比于R-CNN系列的region proposal+CNN 这种两阶段的处理办法可以大大提高检测速度。今年新出来的SSD[11]方法虽然在识别率上边有了很大的提升,但YOLO的先驱作用是显而易见的。

图5:YOLO识别框架
 
G-CNN:不管是Fast R-CNN[9],还是Faster R-CNN,或者像HyperNet这样的变种,都需要考虑数以万计的潜在框来进行目标位置的搜索,这种方式的一个潜在问题是负样本空间非常大,因此需要一定的策略来进行抑制(不管是OHEM[8]还是region proposal方法,其本质上还是一种抑制负样本的工作)。G-CNN从另一个角度来克服这个问题。G-CNN在在初始化的时候不需要那么多框,而是通过对图像进行划分(有交叠),产生少量的框(大约180个),通过一次回归之后得到更接近物体的位置。然后以回归之后的框作为原始窗口,不断进行迭代回归调整,得到最终的检测结果。

经过五次调整之后,G-CNN可以达到跟Fast R-CNN相当的识别性能,但速度是Fast R-CNN的5倍(3fps)。

图6:G-CNN示意图

图7:G-CNN训练过程
 
 
 
 

三、准确性

LocNet:以上提到的工作都是在做整个目标检测的框架,而LocNet在做另一件事情—如何产生更准确的bounding box?

图8:LocNet 示意图
在目标检测的评价体系中,有一个参数叫做IoU,简单来讲就是模型产生的目标窗口和原来标记窗口的交叠率。在Pascal VOC中,这个值为0.5。而2014年以来出现的MS COCO竞赛规则把这个IoU变成了0.5-1.0之间的综合评价值,也就是说,定位越准确,其得分越高,这也侧面反映了目标检测在评价指标方面的不断进步。

回到这个话题,如何产生更准确的目标位置呢?LocNet的解决方案是:针对每一个给定的初始框进行适当的放大,然后用一个CNN的网络回归出这个放大后的框包含的那个正确框的位置。为了达到这个目标,需要定义回归方式,网络以及模型,具体的细节参见[7]。

经过把原始的框(比如selective search生成的)进行再一次回归之后,再放入Fast R-CNN进行检测,在IoU=0.5的情况下,在Pascal VOC 数据集上mAP可以提升大约5个百分点,而IoU=0.7时可以达到13个百分点的提升,效果还是挺惊人的。
 

结语

目标检测是计算机视觉中基础而且热门的领域,最近两年的由于深度学习的影响产生了巨大的进步,相信在未来的一两年时间有更优秀的工作出现。

注:以上提到的内容仅代表作者自己的观点,如有错误之处欢迎批评指正。
致谢:本文作者特此感谢中科院计算所博士生王斌对本文提出的建设性修改意见。
 

参考文献

[1] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition. In CVPR 2016
[2] Bell S, Zitnick C L, Bala K, et al. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In CVPR 2016
[3] Kong T, Yao A, Chen Y, et al. HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection. In CVPR 2016
[4] Cheng M M, Zhang Z, Lin W Y, et al. BING: Binarized normed gradients for objectness estimation at 300fps. In CVPR 2014
[5] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. In CVPR 2016
[6] Najibi M, Rastegari M, Davis L S. G-CNN: an Iterative Grid Based Object Detector. In CVPR 2016
[7] Gidaris S, Komodakis N. LocNet: Improving Localization Accuracy for Object Detection. In CVPR 2016
[8] Shrivastava A, Gupta A, Girshick R. Training region-based object detectors with online hard example mining. In CVPR 2016
[9] Girshick R. Fast R-CNN. In ICCV 2015
[10] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS 2015
[11] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[J]. arXiv preprint arXiv:1512.02325, 2015.

该文章属于“深度学习大讲堂”原创,如需要转载,请联系@果果是枚开心果.


作者简介:
孔涛, 清华大学计算机系博士生二年级。研究兴趣为计算机视觉、机器学习和机器人。相关成果发表在CVPR、ICRA等期刊和会议。个人邮箱:kt14@mails.tsinghua.edu.cn,个人主页: https://taokong.github.io/。

原文链接:http://mp.weixin.qq.com/s?__biz=MzI1NTE4NTUwOQ==&mid=2650325043&idx=1&sn=bd016d98a40e8cf7d53ee674f201b4a7&scene=4#wechat_redirect

 

 

 

相关文章:

  • 【深度学习:目标检测】深度学习检测方法梳理:R-CNN,SPP-NET, Fast-R-CNN,Faster-R-CNN, YOLO, SSD系列
  • 【深度学习:目标检测】RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentat
  • 【深度学习:目标检测】RCNN学习笔记(2):Rich feature hierarchies for accurate object detection and semantic segmentat
  • 【深度学习:目标检测】RCNN学习笔记(3):From RCNN to SPP-net
  • 【深度学习:目标检测】RCNN学习笔记(4):fast rcnn
  • 【深度学习:目标检测】RCNN学习笔记(5):faster rcnn
  • 【深度学习:目标检测】RCNN学习笔记(6):You Only Look Once(YOLO):Unified, Real-Time Object Detection
  • 【深度学习:目标检测】RCNN学习笔记(7):Faster R-CNN 英文论文翻译笔记
  • 【深度学习:目标检测】RCNN学习笔记(8):Fully Convolutional Networks for Semantic Segmentation(全卷积网络FCN)
  • 【深度学习:目标检测】RCNN学习笔记(9):OverFeat:Integrated Recognition, Localization and Detection using Convolution
  • 【深度学习:目标检测】RCNN学习笔记(10):SSD:Single Shot MultiBox Detector
  • 【深度学习:目标检测】 RCNN学习笔记(11):R-FCN: Object Detection via Region-based Fully Convolutional Networks
  • 【深度学习:目标检测】RCNN学习笔记(0):rcnn简介
  • 【深度学习:目标检测】 py-faster-rcnn标注FDDB人脸便于其在FDDB上进行测试
  • 【深度学习:目标检测】 py-faster-rcnn_caffemodel对人脸进行标注
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • flask接收请求并推入栈
  • HTTP中的ETag在移动客户端的应用
  • Lsb图片隐写
  • maven工程打包jar以及java jar命令的classpath使用
  • PHP的Ev教程三(Periodic watcher)
  • Windows Containers 大冒险: 容器网络
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 仿天猫超市收藏抛物线动画工具库
  • 关于 Cirru Editor 存储格式
  • 关于extract.autodesk.io的一些说明
  • 基于 Babel 的 npm 包最小化设置
  • 解析带emoji和链接的聊天系统消息
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端攻城师
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 事件委托的小应用
  • 数据仓库的几种建模方法
  • 延迟脚本的方式
  • 用Python写一份独特的元宵节祝福
  • 转载:[译] 内容加速黑科技趣谈
  • ​2021半年盘点,不想你错过的重磅新书
  • ​低代码平台的核心价值与优势
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #1014 : Trie树
  • #宝哥教你#查看jquery绑定的事件函数
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (20050108)又读《平凡的世界》
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • .chm格式文件如何阅读
  • .java 9 找不到符号_java找不到符号
  • .Net 4.0并行库实用性演练
  • .NET 事件模型教程(二)
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net中生成excel后调整宽度
  • [<事务专题>]
  • [20161214]如何确定dbid.txt