R-FCN的Position-callersensitivee score maps为什么会有相对位置的特性

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)&figure&&img src=&https://pic4.zhimg.com/v2-ef7c9bf1a049e26e8f5e_b.jpg& data-rawwidth=&402& data-rawheight=&268& class=&content_image& width=&402&&&/figure&&blockquote&&p&作者:&a href=&https://link.zhihu.com/?target=https%3A//www.52ml.net/jobs& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&猿辅导研究团队&/a&&br&&/p&&p&&strong&猿辅导研究团队&/strong&&/p&&p&成立于2014年年中,致力于在线教育领域的机器学习(尤其是深度学习)相关应用,主要工作包括拍照搜题、手写识别、语音识别、英语作文批改、数据挖掘、个性化推荐、学生能力预测等,曾经五六个人两个月完成了小猿搜题中拍照搜题相关所有工作并成功上线,目前用户量已达一亿多。&/p&&p&这里有一群挚爱机器学习且技术过硬的小伙伴:&/p&&ul&&li&我们有独立创造机器学习优化平台轮子的大神&/li&&li&我们有单枪匹马拿下KDD-CUP前3的模型帝&/li&&li&我们有独立完成从深度学习模型设计到上线的女中豪杰&/li&&li&我们有改得了Caffe写得了Node.js的全栈达人&/li&&li&我们业余时间维护了机器学习领域知名的IP——“&a href=&https://link.zhihu.com/?target=https%3A//www.52ml.net/appwx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&我爱机器学习&/a&”&/li&&li&我们都有一颗坚信机器学习会改变教育的心&/li&&/ul&&p&对深度学习和在线教育都看好的同学,欢迎大家上船:&/p&&ul&&li&官网:&a href=&https://link.zhihu.com/?target=http%3A//hr.yuantiku.com/social& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&猿辅导招聘&/a&&/li&&li&邮箱:&a href=&mailto:&&&/a&,邮件标题请使用“学校-学历-应聘{job_title}”&/li&&/ul&&/blockquote&&h2&引言&/h2&&p&普通的深度学习监督算法主要是用来做分类,如图1(1)所示,分类的目标是要识别出图中所示是一只猫。而在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛以及实际的应用中,还包括目标定位和目标检测等任务。其中目标定位是不仅仅要识别出来是什么物体(即分类),而且还要预测物体的位置,位置一般用边框(bounding box)标记,如图1(2)所示。而目标检测实质是多目标的定位,即要在图片中定位多个目标物体,包括分类和定位。比如对图1(3)进行目标检测,得到的结果是好几只不同动物,他们的位置如图3中不同颜色的框所示。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-bcdb8d70c678d4ebc58aacf7e871c71b_b.jpg& data-rawwidth=&236& data-rawheight=&198& class=&content_image& width=&236&&&/figure&&p&(1)目标分类&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-f4efa5dbba5ad986dd2d716_b.jpg& data-rawwidth=&224& data-rawheight=&191& class=&content_image& width=&224&&&/figure&(2)目标定位&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-d0c41bbb02df8e4ce511bd7d_b.jpg& data-rawwidth=&240& data-rawheight=&181& class=&content_image& width=&240&&&/figure&(3)目标检测&/p&&p&图1 目标分类、定位、检测示例&/p&&p&简单来说,分类、定位和检测的区别如下:&/p&&ol&&li&分类:是什么?&/li&&li&定位:在哪里?是什么?(单个目标)&/li&&li&检测:在哪里?分别是什么?(多个目标)&/li&&/ol&&p&目标检测对于人类来说并不困难,通过对图片中不同颜色模块的感知很容易定位并分类出其中目标物体,但对于计算机来说,面对的是RGB像素矩阵,很难从图像中直接得到狗和猫这样的抽象概念并定位其位置,再加上有时候多个物体和杂乱的背景混杂在一起,目标检测更加困难。但这难不倒科学家们,在传统视觉领域,目标检测就是一个非常热门的研究方向,一些特定目标的检测,比如人脸检测和行人检测已经有非常成熟的技术了。普通的目标检测也有过很多的尝试,但是效果总是差强人意。&/p&&p&传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤:&/p&&ol&&li&利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域;&/li&&li&提取候选区域相关的视觉特征。比如人脸检测常用的Harr特征;行人检测和普通目标检测常用的HOG特征等;&/li&&li&利用分类器进行识别,比如常用的SVM模型。&/li&&/ol&&p&传统的目标检测中,多尺度形变部件模型DPM(Deformable Part Model)[13]是出类拔萃的,连续获得VOC(Visual Object Class)的检测冠军,2010年其作者Felzenszwalb Pedro被VOC授予”终身成就奖”。DPM把物体看成了多个组成的部件(比如人脸的鼻子、嘴巴等),用部件间的关系来描述物体,这个特性非常符合自然界很多物体的非刚体特征。DPM可以看做是HOG+SVM的扩展,很好的继承了两者的优点,在人脸检测、行人检测等任务上取得了不错的效果,但是DPM相对复杂,检测速度也较慢,从而也出现了很多改进的方法。正当大家热火朝天改进DPM性能的时候,基于深度学习的目标检测横空出世,迅速盖过了DPM的风头,很多之前研究传统目标检测算法的研究者也开始转向深度学习。&/p&&p&基于深度学习的目标检测发展起来后,其实效果也一直难以突破。比如文献[6]中的算法在VOC 2007测试集合上的mAP只能30%多一点,文献[7]中的OverFeat在ILSVRC 2013测试集上的mAP只能达到24.3%。2013年R-CNN诞生了,VOC 2007测试集的mAP被提升至48%,2014年时通过修改网络结构又飙升到了66%,同时ILSVRC 2013测试集的mAP也被提升至31.4%。&/p&&p&R-CNN是Region-based Convolutional Neural Networks的缩写,中文翻译是基于区域的卷积神经网络,是一种结合区域提名(Region Proposal)和卷积神经网络(CNN)的目标检测方法。Ross Girshick在2013年的开山之作《Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation》[1]奠定了这个子领域的基础,这篇论文后续版本发表在CVPR 2014[2],期刊版本发表在PAMI 2015[3]。&/p&&p&其实在R-CNN之前已经有很多研究者尝试用Deep Learning的方法来做目标检测了,包括OverFeat[7],但R-CNN是第一个真正可以工业级应用的解决方案,这也和深度学习本身的发展类似,神经网络、卷积网络都不是什么新概念,但在本世纪突然真正变得可行,而一旦可行之后再迅猛发展也不足为奇了。&/p&&p&R-CNN这个领域目前研究非常活跃,先后出现了R-CNN[1,2,3,18]、SPP-net[4,19]、Fast R-CNN[14, 20] 、Faster R-CNN[5,21]、R-FCN[16,24]、YOLO[15,22]、SSD[17,23]等研究。Ross Girshick作为这个领域的开山鼻祖总是神一样的存在,R-CNN、Fast R-CNN、Faster R-CNN、YOLO都和他有关。这些创新的工作其实很多时候是把一些传统视觉领域的方法和深度学习结合起来了,比如选择性搜索(Selective Search)和图像金字塔(Pyramid)等。&/p&&p&深度学习相关的目标检测方法也可以大致分为两派:&/p&&ol&&li&基于区域提名的,如R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN;&/li&&li&端到端(End-to-End),无需区域提名的,如YOLO、SSD。&/li&&/ol&&p&目前来说,基于区域提名的方法依然占据上风,但端到端的方法速度上优势明显,后续的发展拭目以待。&/p&&h2&1.1 相关研究&/h2&&p&本文作为目标检测的一篇回顾,先来看看目标检测中广泛使用的区域提名——选择性搜索,以及用深度学习做目标检测的早期工作——Overfeat 。&/p&&h3&1.1.1 选择性搜索&/h3&&p&目标检测的第一步是要做区域提名(Region Proposal),也就是找出可能的感兴趣区域(Region Of Interest, ROI)。区域提名类似于光学字符识别(OCR)领域的切分,OCR切分常用过切分方法,简单说就是尽量切碎到小的连通域(比如小的笔画之类),然后再根据相邻块的一些形态学特征进行合并。但目标检测的对象相比OCR领域千差万别,而且图形不规则,大小不一,所以一定程度上可以说区域提名是比OCR切分更难的一个问题。&/p&&p&区域提名可能的方法有:&/p&&p&一、滑动窗口。滑动窗口本质上就是穷举法,利用不同的尺度和长宽比把所有可能的大大小小的块都穷举出来,然后送去识别,识别出来概率大的就留下来。很明显,这样的方法复杂度太高,产生了很多的冗余候选区域,在现实当中不可行。&/p&&p&二、规则块。在穷举法的基础上进行了一些剪枝,只选用固定的大小和长宽比。这在一些特定的应用场景是很有效的,比如拍照搜题APP小猿搜题中的汉字检测,因为汉字方方正正,长宽比大多比较一致,因此用规则块做区域提名是一种比较合适的选择。但是对于普通的目标检测来说,规则块依然需要访问很多的位置,复杂度高。&/p&&p&三、选择性搜索。从机器学习的角度来说,前面的方法召回是不错了,但是精度差强人意,所以问题的核心在于如何有效地去除冗余候选区域。其实冗余候选区域大多是发生了重叠,选择性搜索利用这一点,自底向上合并相邻的重叠区域,从而减少冗余。&/p&&p&区域提名并不只有以上所说的三种方法,实际上这块是非常灵活的,因此变种也很多,有兴趣的读者不妨参考一下文献[12]。&/p&&p&选择性搜索的具体算法细节[8]如算法1所示。总体上选择性搜索是自底向上不断合并候选区域的迭代过程。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fb483e202e163fe89eb1_b.jpg& data-rawwidth=&636& data-rawheight=&694& class=&origin_image zh-lightbox-thumb& width=&636& data-original=&https://pic1.zhimg.com/v2-fb483e202e163fe89eb1_r.jpg&&&/figure&&p&算法1 选择性搜索算法&/p&&p&从算法不难看出,&em&R&/em&中的区域都是合并后的,因此减少了不少冗余,相当于准确率提升了,但是别忘了我们还需要继续保证召回率,因此算法1中的相似度计算策略就显得非常关键了。如果简单采用一种策略很容易错误合并不相似的区域,比如只考虑轮廓时,不同颜色的区域很容易被误合并。选择性搜索采用多样性策略来增加候选区域以保证召回,比如颜色空间考虑RGB、灰度、HSV及其变种等,相似度计算时既考虑颜色相似度,又考虑纹理、大小、重叠情况等。&/p&&p&总体上,选择性搜索是一种比较朴素的区域提名方法,被早期的基于深度学习的目标检测方法(包括Overfeat和R-CNN等)广泛利用,但被当前的新方法弃用了。&/p&&h3&1.1.2 OverFeat&/h3&&p&OverFeat[7][9]是用CNN统一来做分类、定位和检测的经典之作,作者是深度学习大神之一————Yann Lecun在纽约大学的团队。OverFeat也是ILSVRC 2013任务3(分类+定位)的冠军得主[10]。&/p&&p&OverFeat的核心思想有三点:&/p&&ol&&li&区域提名:结合滑动窗口和规则块,即多尺度(multi-scale)的滑动窗口;&/li&&li&分类和定位:统一用CNN来做分类和预测边框位置,模型与AlexNet[12]类似,其中1-5层为特征抽取层,即将图片转换为固定维度的特征向量,6-9层为分类层(分类任务专用),不同的任务(分类、定位、检测)公用特征抽取层(1-5层),只替换6-9层;&/li&&li&累积:因为用了滑动窗口,同一个目标对象会有多个位置,也就是多个视角;因为用了多尺度,同一个目标对象又会有多个大小不一的块。这些不同位置和不同大小块上的分类置信度会进行累加,从而使得判定更为准确。&/li&&/ol&&p&OverFeat的关键步骤有四步:&/p&&ol&&li&利用滑动窗口进行不同尺度的区域提名,然后使用CNN模型对每个区域进行分类,得到类别和置信度。从图2中可以看出,不同缩放比例时,检测出来的目标对象数量和种类存在较大差异;&/li&&/ol&&p&&figure&&img src=&https://pic4.zhimg.com/v2-e3ae1091e13_b.jpg& data-rawwidth=&529& data-rawheight=&202& class=&origin_image zh-lightbox-thumb& width=&529& data-original=&https://pic4.zhimg.com/v2-e3ae1091e13_r.jpg&&&/figure&图2 Overfeat关键步骤一&/p&&ol&&li&利用多尺度滑动窗口来增加检测数量,提升分类效果,如图3所示;&/li&&/ol&&p&&figure&&img src=&https://pic4.zhimg.com/v2-af8b7aa8ab0aa77f360a51ad_b.jpg& data-rawwidth=&524& data-rawheight=&242& class=&origin_image zh-lightbox-thumb& width=&524& data-original=&https://pic4.zhimg.com/v2-af8b7aa8ab0aa77f360a51ad_r.jpg&&&/figure&图3 Overfeat关键步骤二&/p&&ol&&li&用回归模型预测每个对象的位置,从图4中来看,放大比例较大的图片,边框数量也较多;&/li&&/ol&&p&&figure&&img src=&https://pic2.zhimg.com/v2-77cce1b2f8e541da7f18f_b.jpg& data-rawwidth=&533& data-rawheight=&241& class=&origin_image zh-lightbox-thumb& width=&533& data-original=&https://pic2.zhimg.com/v2-77cce1b2f8e541da7f18f_r.jpg&&&/figure&图4 Overfeat关键步骤三&/p&&ol&&li&边框合并。&/li&&/ol&&p&&figure&&img src=&https://pic3.zhimg.com/v2-dafaf36aad82e1cb45f7f25_b.jpg& data-rawwidth=&248& data-rawheight=&185& class=&content_image& width=&248&&&/figure&图5 Overfeat关键步骤四&/p&&p&Overfeat是CNN用来做目标检测的早期工作,主要思想是采用了多尺度滑动窗口来做分类、定位和检测,虽然是多个任务但重用了模型前面几层,这种模型重用的思路也是后来R-CNN系列不断沿用和改进的经典做法。&/p&&p&当然Overfeat也是有不少缺点的,至少速度和效果都有很大改进空间,后面的R-CNN系列在这两方面做了很多提升。&/p&&h2&1.2 基于区域提名的方法&/h2&&p&本小节主要介绍基于区域提名的方法,包括R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN。&/p&&h3&1.2.1
R-CNN&/h3&&p&如前面所述,早期的目标检测,大都使用滑动窗口的方式进行窗口提名,这种方式本质是穷举法,R-CNN[1,2,3]采用的是Selective Search。&/p&&p&以下是R-CNN的主要步骤:&/p&&ol&&li&区域提名:通过Selective Search从原始图片提取2000个左右区域候选框;&/li&&li&区域大小归一化:把所有侯选框缩放成固定大小(原文采用227×227);&/li&&li&特征提取:通过CNN网络,提取特征;&/li&&li&分类与回归:在特征层的基础上添加两个全连接层,再用SVM分类来做识别,用线性回归来微调边框位置与大小,其中每个类别单独训练一个边框回归器。&/li&&/ol&&p&其中目标检测系统的结构如图6所示,注意,图中的第2步对应步骤中的1、2步,即包括区域提名和区域大小归一化。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-fb81cef1defe9b6bb4a996_b.jpg& data-rawwidth=&674& data-rawheight=&197& class=&origin_image zh-lightbox-thumb& width=&674& data-original=&https://pic4.zhimg.com/v2-fb81cef1defe9b6bb4a996_r.jpg&&&/figure&图6 R-CNN框架&/p&&p&Overfeat可以看做是R-CNN的一个特殊情况,只需要把Selective Search换成多尺度的滑动窗口,每个类别的边框回归器换成统一的边框回归器,SVM换为多层网络即可。但是Overfeat实际比R-CNN快9倍,这主要得益于卷积相关的共享计算。&/p&&p&事实上,R-CNN有很多缺点:&/p&&ol&&li&重复计算:R-CNN虽然不再是穷举,但依然有两千个左右的候选框,这些候选框都需要进行CNN操作,计算量依然很大,其中有不少其实是重复计算;&/li&&li&SVM模型:而且还是线性模型,在标注数据不缺的时候显然不是最好的选择;&/li&&li&训练测试分为多步:区域提名、特征提取、分类、回归都是断开的训练的过程,中间数据还需要单独保存;&/li&&li&训练的空间和时间代价很高:卷积出来的特征需要先存在硬盘上,这些特征需要几百G的存储空间;&/li&&li&慢:前面的缺点最终导致R-CNN出奇的慢,GPU上处理一张图片需要13秒,CPU上则需要53秒[2]。&/li&&/ol&&p&当然,R-CNN这次是冲着效果来的,其中ILSVRC 2013数据集上的mAP由Overfeat的24.3%提升到了31.4%,第一次有了质的改变。&/p&&h3&1.2.2
SPP-net&/h3&&p&SPP-net[4,19]是MSRA何恺明等人提出的,其主要思想是去掉了原始图像上的crop/warp等操作,换成了在卷积特征上的空间金字塔池化层(Spatial Pyramid Pooling,SPP),如图7所示。为何要引入SPP层 ,主要原因是CNN的全连接层要求输入图片是大小一致的,而实际中的输入图片往往大小不一,如果直接缩放到同一尺寸,很可能有的物体会充满整个图片,而有的物体可能只能占到图片的一角。传统的解决方案是进行不同位置的裁剪,但是这些裁剪技术都可能会导致一些问题出现,比如图7中的crop会导致物体不全,warp导致物体被拉伸后形变严重,SPP就是为了解决这种问题的。SPP对整图提取固定维度的特征,再把图片均分成4份,每份提取相同维度的特征,再把图片均分为16份,以此类推。可以看出,无论图片大小如何,提取出来的维度数据都是一致的,这样就可以统一送至全连接层了。SPP思想在后来的R-CNN模型中也被广泛用到。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-91d4aecbc547be43c13a1512_b.jpg& data-rawwidth=&584& data-rawheight=&241& class=&origin_image zh-lightbox-thumb& width=&584& data-original=&https://pic1.zhimg.com/v2-91d4aecbc547be43c13a1512_r.jpg&&&/figure&图7 传统crop/warp结构和空间金字塔池化网络的对比&/p&&p&SPP-net的网络结构如图8所示,实质是最后一层卷积层后加了一个SPP层,将维度不一的卷积特征转换为维度一致的全连接输入。&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-bfaafac3e21bc_b.jpg& data-rawwidth=&471& data-rawheight=&330& class=&origin_image zh-lightbox-thumb& width=&471& data-original=&https://pic3.zhimg.com/v2-bfaafac3e21bc_r.jpg&&&/figure&图8 SPP-net网络结构&/p&&p&SPP-net做目标检测的主要步骤为:&/p&&ol&&li&区域提名:用Selective Search从原图中生成2000个左右的候选窗口;&/li&&li&区域大小缩放:SPP-net不再做区域大小归一化,而是缩放到min(&em&w&/em&, &em&h&/em&)=&em&s&/em&,即统一长宽的最短边长度,&em&s&/em&选自{480,576,688,864,1200}中的一个,选择的标准是使得缩放后的候选框大小与224×224最接近;&/li&&li&特征提取:利用SPP-net网络结构提取特征;&/li&&li&分类与回归:类似R-CNN,利用SVM基于上面的特征训练分类器模型,用边框回归来微调候选框的位置。&/li&&/ol&&p&SPP-net解决了R-CNN区域提名时crop/warp带来的偏差问题,提出了SPP层,使得输入的候选框可大可小,但其他方面依然和R-CNN一样,因而依然存在不少问题,这就有了后面的Fast R-CNN。&/p&&h3&1.2.3
Fast R-CNN&/h3&&p&Fast R-CNN是要解决R-CNN和SPP-net两千个左右候选框带来的重复计算问题,其主要思想为:&/p&&ol&&li&使用一个简化的SPP层 —— RoI(Region of Interesting) Pooling层,操作与SPP类似;&/li&&li&训练和测试是不再分多步:不再需要额外的硬盘来存储中间层的特征,梯度能够通过RoI Pooling层直接传播;此外,分类和回归用Multi-task的方式一起进行;&/li&&li&SVD:使用SVD分解全连接层的参数矩阵,压缩为两个规模小很多的全连接层。&/li&&/ol&&p&如图9所示,Fast R-CNN的主要步骤如下:&/p&&ol&&li&特征提取:以整张图片为输入利用CNN得到图片的特征层;&/li&&li&区域提名:通过Selective Search等方法从原始图片提取区域候选框,并把这些候选框一一投影到最后的特征层;&/li&&li&区域归一化:针对特征层上的每个区域候选框进行RoI Pooling操作,得到固定大小的特征表示;&/li&&li&分类与回归:然后再通过两个全连接层,分别用softmax多分类做目标识别,用回归模型进行边框位置与大小微调。&/li&&/ol&&p&&figure&&img src=&https://pic1.zhimg.com/v2-e1cefa6465_b.jpg& data-rawwidth=&493& data-rawheight=&191& class=&origin_image zh-lightbox-thumb& width=&493& data-original=&https://pic1.zhimg.com/v2-e1cefa6465_r.jpg&&&/figure&图9 Fast R-CNN框架&/p&&p&Fast R-CNN比R-CNN的训练速度(大模型L)快8.8倍,测试时间快213倍,比SPP-net训练速度快2.6倍,测试速度快10倍左右。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-8feb98a7a500b1d9bf46_b.jpg& data-rawwidth=&446& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&446& data-original=&https://pic1.zhimg.com/v2-8feb98a7a500b1d9bf46_r.jpg&&&/figure&图10 Fast R-CNN, R-CNN, SPP-net的运行时间比较&/p&&h3&1.2.4 Faster R-CNN&/h3&&p&Fast R-CNN使用Selective Search来进行区域提名,速度依然不够快。Faster R-CNN则直接利用RPN(Region Proposal Networks)网络来计算候选框。RPN以一张任意大小的图片为输入,输出一批矩形区域提名,每个区域对应一个目标分数和位置信息。Faster R-CNN中的RPN结构如图11所示。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-767e326b7ed5bb7e40991e_b.jpg& data-rawwidth=&386& data-rawheight=&232& class=&content_image& width=&386&&&/figure&图11 Region Proposal Network(RPN)&/p&&p&Faster R-CNN的主要步骤如下:&/p&&ol&&li&特征提取:同Fast R-CNN,以整张图片为输入,利用CNN得到图片的特征层;&/li&&li&区域提名:在最终的卷积特征层上利用&em&k&/em&个不同的矩形框(Anchor Box)进行提名,&em&k&/em&一般取9;&/li&&li&分类与回归:对每个Anchor Box对应的区域进行object/non-object二分类,并用&em&k&/em&个回归模型(各自对应不同的Anchor Box)微调候选框位置与大小,最后进行目标分类。&/li&&/ol&&p&总之,Faster R-CNN抛弃了Selective Search,引入了RPN网络,使得区域提名、分类、回归一起共用卷积特征,从而得到了进一步的加速。但是,Faster R-CNN需要对两万个Anchor Box先判断是否是目标(目标判定),然后再进行目标识别,分成了两步。&/p&&h3&1.2.5 R-FCN&/h3&&p&前面的目标检测方法都可以细分为两个子网络:&/p&&ol&&li&共享的全卷积网络;&/li&&li&不共享计算的ROI相关的子网络(比如全连接网络)。&/li&&/ol&&p&R-FCN则将最后的全连接层之类换为了一个位置敏感的的卷积网络,从而让所有计算都可以共享。具体来说,先把每个提名区域划分为&em&k&/em&×&em&k&/em&个网格,比如R-FCN原文中&em&k&/em&的取值为3,则对应的九个网格分别表示:左上top-left,上中top-center,……,右下bottom-right,对应图12中的九宫格及图13中的不同颜色的块,每个Grid都有对应的编码,但预测时候会有&em&C&/em&+1个输出,&em&C&/em&表示类别数目,+1是因为有背景类别,全部的输出通道数量为&em&k2&/em&×(&em&C&/em&+1)。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-f65bd92adfad_b.jpg& data-rawwidth=&696& data-rawheight=&286& class=&origin_image zh-lightbox-thumb& width=&696& data-original=&https://pic1.zhimg.com/v2-f65bd92adfad_r.jpg&&&/figure&图12 R-FCN的person分类可视化过程&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-f3f504b2e7a5db2875c5_b.jpg& data-rawwidth=&664& data-rawheight=&346& class=&origin_image zh-lightbox-thumb& width=&664& data-original=&https://pic3.zhimg.com/v2-f3f504b2e7a5db2875c5_r.jpg&&&/figure&图13 R-FCN&/p&&p&需要注意的是,图12、13中不同位置都存在一个九宫格,但是Pooling时候只有一个起作用,比如bottom-right层只有右下角的小块起作用。那么问题来了,这一层其他的8个框有什么作用呢?答案是它们可以作为其他ROI(偏左或偏上一些的ROI)的右下角。&/p&&p&R-FCN的步骤为:&/p&&ol&&li&区域提名:使用RPN(Region Proposal Network,区域提名网络),RPN本身是全卷积网络结构;&/li&&li&分类与回归:利用和RPN共享的特征进行分类。当做bbox回归时,则将&em&C&/em&设置为4。&/li&&/ol&&h2&1.3 端到端的方法&/h2&&p&本小节介绍端到端(End-to-End)的目标检测方法,这些方法无需区域提名,包括YOLO和SSD。&/p&&h3&1.3.1 YOLO&/h3&&p&YOLO的全拼是You Only Look Once,顾名思义就是只看一次,进一步把目标判定和目标识别合二为一,所以识别性能有了很大提升,达到每秒45帧,而在快速版YOLO(Fast YOLO,卷积层更少)中,可以达到每秒155帧。&/p&&p&网络的整体结构如图14所示,针对一张图片,YOLO的处理步骤为:&/p&&ol&&li&把输入图片缩放到448×448大小;&/li&&li&运行卷积网络;&/li&&li&对模型置信度卡阈值,得到目标位置与类别。&/li&&/ol&&p&&figure&&img src=&https://pic3.zhimg.com/v2-65f8c2d78e1b52f3de6db878cbb38e62_b.jpg& data-rawwidth=&865& data-rawheight=&184& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic3.zhimg.com/v2-65f8c2d78e1b52f3de6db878cbb38e62_r.jpg&&&/figure&图14 YOLO检测系统&/p&&p&网络的模型如图15所示,将448×448大小的图切成&em&S&/em&×&em&S&/em&的网格,目标中心点所在的格子负责该目标的相关检测,每个网格预测&em&B&/em&个边框及其置信度,以及&em&C&/em&种类别的概率。YOLO中&em&S&/em&=7,&em&B&/em&=2,&em&C&/em&取决于数据集中物体类别数量,比如VOC数据集就是&em&C&/em&=20。对VOC数据集来说,YOLO就是把图片统一缩放到448×448,然后每张图平均划分为7×7=49个小格子,每个格子预测2个矩形框及其置信度,以及20种类别的概率。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-e8d8e7c564bdb2fcc9e3e4b42c020465_b.jpg& data-rawwidth=&496& data-rawheight=&315& class=&origin_image zh-lightbox-thumb& width=&496& data-original=&https://pic1.zhimg.com/v2-e8d8e7c564bdb2fcc9e3e4b42c020465_r.jpg&&&/figure&图15 YOLO模型&/p&&p&YOLO简化了整个目标检测流程,速度的提升也很大,但是YOLO还是有不少可以改进的地方,比如&em&S&/em&×&em&S&/em&的网格就是一个比较启发式的策略,如果两个小目标同时落入一个格子中,模型也只能预测一个;另一个问题是Loss函数对不同大小的bbox未做区分。&/p&&h3&1.3.2 SSD&/h3&&p&SSD[17,23]的全拼是Single Shot MultiBox Detector,冲着YOLO的缺点来的。SSD的框架如图16所示,图16(a)表示带有两个Ground Truth边框的输入图片,图16(b)和(c)分别表示8×8网格和4×4网格,显然前者适合检测小的目标,比如图片中的猫,后者适合检测大的目标,比如图片中的狗。在每个格子上有一系列固定大小的Box(有点类似前面提到的Anchor Box),这些在SSD称为Default Box,用来框定目标物体的位置,在训练的时候Ground Truth会赋予给某个固定的Box,比如图16(b)中的蓝框和图16(c)中的红框。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-d4e2f68de50ee8dbac21794_b.jpg& data-rawwidth=&444& data-rawheight=&168& class=&origin_image zh-lightbox-thumb& width=&444& data-original=&https://pic4.zhimg.com/v2-d4e2f68de50ee8dbac21794_r.jpg&&&/figure&图16 SSD框架&/p&&p&SSD的网络分为两部分,前面的是用于图像分类的标准网络(去掉了分类相关的层),后面的网络是用于检测的多尺度特征映射层,从而达到检测不同大小的目标。SSD和YOLO的网络结构对比如图17所示。&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-8c801d9cdb376d9c1bd51f0b98b9c417_b.jpg& data-rawwidth=&532& data-rawheight=&283& class=&origin_image zh-lightbox-thumb& width=&532& data-original=&https://pic3.zhimg.com/v2-8c801d9cdb376d9c1bd51f0b98b9c417_r.jpg&&&/figure&图17 SSD和YOLO的网络结构对比&/p&&p&SSD在保持YOLO高速的同时效果也提升很多,主要是借鉴了Faster R-CNN中的Anchor机制,同时使用了多尺度。但是从原理依然可以看出,Default Box的形状以及网格大小是事先固定的,那么对特定的图片小目标的提取会不够好。&/p&&h2&1.4 总结&/h2&&p&基于深度学习的目标检测总体上分为两派:&/p&&ol&&li&基于区域提名的R-CNN系列;&/li&&li&无需区域提名的YOLO、SSD系列。&/li&&/ol&&p&表1大致对比了各种方法的性能(Fps,每秒帧数)和VOC 2007上的MAP对比。注意相关数据搜集自不同的paper,由于评测硬件和环境等区别,数据仅供参考,不具有绝对对比意义。&/p&&p&&b&表1 不同目标检测算法的指标对比&br&&/b&&i&注:数据取自各自paper,由于评测硬件和环境等区别,数据并不具有绝对对比意义,仅供参考。&/i&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-f31de7f91fe15b0e636c643_b.jpg& data-rawwidth=&1430& data-rawheight=&876& class=&origin_image zh-lightbox-thumb& width=&1430& data-original=&https://pic4.zhimg.com/v2-f31de7f91fe15b0e636c643_r.jpg&&&/figure&&p&基于深度学习的目标检测的研究目前依然非常火热,图18为VOC2012目标检测排行榜[25](结果),很高兴看到很多华人和国内同仁在这方面各领风骚。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-3e19f4e91e78dcf75dc57b_b.jpg& data-rawwidth=&865& data-rawheight=&240& class=&origin_image zh-lightbox-thumb& width=&865& data-original=&https://pic1.zhimg.com/v2-3e19f4e91e78dcf75dc57b_r.jpg&&&/figure&图18 VOC2012目标检测排行榜&/p&&p&当然,目标检测还有很长的路要走,比如业界公认较难的小目标检测问题。&/p&&p&小试身手,来一张实际的三里屯照片,YOLO的检测结果如图19所示,可以看出漏检了不少目标。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-43d9e137f6a449b7b87d_b.jpg& data-rawwidth=&402& data-rawheight=&268& class=&content_image& width=&402&&&/figure&图19 YOLO检测结果&/p&&p&再来看看图20中SSD的效果,看起来效果好不少,但被遮挡的人还是漏检了。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-ef7c9bf1a049e26e8f5e_b.jpg& data-rawwidth=&402& data-rawheight=&268& class=&content_image& width=&402&&&/figure&图20 SSD检测结果&/p&&p&期待未来基于深度学习的目标检测的进一步突破!&/p&&h2&参考文献&/h2&&p&[1] R. Girshick, J. Donahue, T. Darrell, J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. ImageNet Large-Scale Visual Recognition Challenge workshop, ICCV, 2013.&/p&&p&[2] R. Girshick, J. Donahue, T. Darrell, J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.&/p&&p&[3] R. Girshick, J. Donahue, T. Darrell, J. Malik. Region-Based Convolutional Networks for Accurate Object Detection and Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, May. 2015.&/p&&p&[4] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV. 2014.&/p&&p&[5] S. Ren, K. He, R. Girshick, J. Sun. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. Advances in Neural Information Processing Systems 28 (NIPS), 2015.&/p&&p&[6] C. Szegedy, A. Toshev, D. Erhan. Deep Neural Networks for Object Detection. Advances in Neural Information Processing Systems 26 (NIPS), 2013.&/p&&p&[7] P. Sermanet, D. Eigen, X.Zhang, M. Mathieu, R. Fergus, and Y. LeCun. OverFeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014.&/p&&p&[8] J.R. Uijlings, K.E. vandeSande, T. Gevers, and A.W. Smeulders. Selective search for object recognition. IJCV, 2013.&/p&&p&[9] OverFeat source code:&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//cilvr.nyu.edu/doku.php%3Fid%3Dsoftware%3AOverFeat%3Astart& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&software:overfeat:start&/a&&/p&&p&[10] ILSVRC 2013 results:&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.image-net.org/challenges/LSVRC/2013/results.php& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ImageNet Large Scale Visual Recognition Competition 2013 (ILSVRC2013)&/a&&/p&&p&[11] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural net- works. In NIPS, 2012.&/p&&p&[12] J. Hosang, R. Benenson, P. Dolla ?r, and B. Schiele. What makes for effective detection proposals? TPAMI, 2015.&/p&&p&[13] Felzenszwalb P F, Girshick R B, McAllester D, et al. Object detection with discriminatively trained part-based models[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, ): .&/p&&p&[14] Girshick, R. Fast R-CNN. ICCV 2015.&/p&&p&[15] Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time&/p&&p&object detection. In: CVPR. (2016)&/p&&p&[16] R-FCN: Object Detection via Region-based Fully Convolutional Networks. Jifeng Dai, Yi Li, Kaiming He, and Jian Sun. Conference on Neural Information Processing Systems (NIPS), 2016.&/p&&p&[17] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[J]. arXiv preprint arXiv:, 2015.&/p&&p&[18] R-CNN: Region-based Convolutional Neural Networks: &a href=&https://link.zhihu.com/?target=https%3A//github.com/rbgirshick/rcnn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - rbgirshick/rcnn: R-CNN: Regions with Convolutional Neural Network Features&/a&&/p&&p&[19] SPP-net: &a href=&https://link.zhihu.com/?target=https%3A//github.com/ShaoqingRen/SPP_net& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - ShaoqingRen/SPP_net: SPP_net : Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition&/a&&/p&&p&[20] Fast R-CNN: &a href=&https://link.zhihu.com/?target=https%3A//github.com/rbgirshick/fast-rcnn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - rbgirshick/fast-rcnn: Fast R-CNN&/a&&/p&&p&[21] Faster R-CNN: &a href=&https://link.zhihu.com/?target=https%3A//github.com/rbgirshick/py-faster-rcnn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - rbgirshick/py-faster-rcnn: Faster R-CNN (Python implementation) -- see https://github.com/ShaoqingRen/faster_rcnn for the official MATLAB version&/a&&/p&&p&[22] YOLO: &a href=&https://link.zhihu.com/?target=http%3A//pjreddie.com/darknet/yolo/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&YOLO: Real-Time Object Detection&/a&&/p&&p&[23] SSD: &a href=&https://link.zhihu.com/?target=https%3A//github.com/weiliu89/caffe/tree/ssd& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - weiliu89/caffe at ssd&/a&&/p&&p&[24] R-FCN: &a href=&https://link.zhihu.com/?target=https%3A//github.com/daijifeng001/r-fcn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - daijifeng001/R-FCN: R-FCN: Object Detection via Region-based Fully Convolutional Networks&/a&&/p&&p&[25] Detection Results: VOC2012 Competition – “comp4” (train on own data): &a href=&https://link.zhihu.com/?target=http%3A//host.robots.ox.ac.uk%3A8080/leaderboard/displaylb.php%3Fchallengeid%3D11%26compid%3D4& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PASCAL VOC Challenge performance evaluation server&/a&&/p&
作者: 猿辅导研究团队成立于2014年年中,致力于在线教育领域的机器学习(尤其是深度学习)相关应用,主要工作包括拍照搜题、手写识别、语音识别、英语作文批改、数据挖掘、个性化推荐、学生能力预测等,曾经五六个人两个月完成了小猿搜题中…
&p&之前介绍,RCNN/Fast RCNN/Faster RCNN这些一系列目标检测的经典论文被Ross Girshick,Kaiming He 等高产大神所占领,总算有一股清流,比如intel团队提出的PVANet(Performance Vs Accuracy Net),Lightweight Deep Neural Networks for Real-time object detection。本文就着重讲这篇paper的创新之处。&/p&&p&在目标检测中,降低计算量和提高实际应用的精确度同等重要。本文提出了一种新的网络结构,保持精度的同时降低计算量。创新包括使用C.ReLU,使用Inception structure和Hypernet多尺度思想。在VOC2012和VOC2007数据集分别获得84.9%和84.2%mAP的精度,且计算量低于 resnet-101 10%。&/p&&h2&PVANet架构&/h2&&figure&&img src=&https://pic1.zhimg.com/v2-ca442b29562cec9fc4d1e440a629b708_b.jpg& data-caption=&& data-rawwidth=&1253& data-rawheight=&413& class=&origin_image zh-lightbox-thumb& width=&1253& data-original=&https://pic1.zhimg.com/v2-ca442b29562cec9fc4d1e440a629b708_r.jpg&&&/figure&&p&从PVANet架构图上看到,类似于Faster RCNN的思想,使用RPN训练Region proposals,在ROI基础上进行score和bounding box。输入RPN的feature maps只有128个,作者没有给出愿意,不过有效降低冗余图像信息。&/p&&p&&b&C.ReLU&/b&:C.ReLU的设计思路来源于对CNN中的activation patterns的观察。笔者直观理解,现实生活中的很多object的边缘成对出现,比如人的双眼的对角(& &),桌子的直角。笔者之前一篇文章讲述&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&【算法】卷积(convolution)/滤波(filter)和互相关(cross-correlation)以及实现&/a&,欢迎参照。在CNN前几层,对3x3卷积核翻转180°,有效降低卷积核,从而提高两倍速。&/p&&p&与原始的C.ReLU相比,论文在concatenation之后增加scaling and Bias(缩放和偏移),这允许每个channel filter的斜率和激活阈值与其相反的channel filter不同。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b2b20c84d344afac8426d51_b.jpg& data-caption=&& data-rawwidth=&590& data-rawheight=&306& class=&origin_image zh-lightbox-thumb& width=&590& data-original=&https://pic2.zhimg.com/v2-b2b20c84d344afac8426d51_r.jpg&&&/figure&&p&&b&Inception structure&/b&&/p&&p&Inception structure很容易理解,&b&GoogLeNet&/b& 的V1~V4大名鼎鼎。作者认为使用Inception structure可以同时捕获大目标和小目标。为了捕获图像中的大目标,需要足够大的感受野,这个可以通过堆叠3x3的滤波器来达到。但是为了捕获小目标,则需要小一点的感受野,1x1的卷积核正好合适。可以避免大卷积核造成的参数冗余问题。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-70197adafd02ec5be1d56b_b.jpg& data-caption=&& data-rawwidth=&664& data-rawheight=&300& class=&origin_image zh-lightbox-thumb& width=&664& data-original=&https://pic4.zhimg.com/v2-70197adafd02ec5be1d56b_r.jpg&&&/figure&&p&&b&Hypernet&/b&&/p&&p&论文使用了Hypernet中多尺度表示思想,综合精细信息及高度抽象信息,用于检测不同尺度的物体,使用了中间层直接输出,第一次做max pooling,最后一层做Deconv,使特征输出shape一致。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-6b48ad50dc3a9ae37d01ae261cfef08f_b.jpg& data-caption=&& data-rawwidth=&338& data-rawheight=&480& class=&content_image& width=&338&&&/figure&&p&&b&其他tricks:&/b&&/p&&p&1.在Inception模块加入残差连接(residual structures with pre-activation)&/p&&p&2.Batch normalization&/p&&p&3..权重衰减策略采用plateau detection&/p&&p&笔者认为在object detection甚至在CV领域,&b&C.ReLU和Hypernet应该是标配&/b&,前者有效降低计算,后者提取不同尺度信息。&/p&&h2&性能对比&/h2&&p&1、PVAnet使用的anchor与Faster RCNN不同,Faster RCNN使用2k的proposals,(PVAnet)our RPN uses 42 anchors of 6 scales (32, 48, 80, 144, 256, 512) and 7 aspect ratios (0.333, 0.5, 0.667, 1.0,1.5, 2.0, 3.0). 文章中讲述大概用200 proposals,不知道怎么算的。&/p&&p&2、PVAnet的参数是3.2M,远小于AlexNet的60M,其中有一个原因是只PVAnet特征提取阶段只使用了4个卷基层(&b&如果用ResNet,VGG19会是什么效果,应该和Faster RCNN一样慢?&/b&)。目标检测速度46.1ms/image(Intel i7-6700K CPU with a single core and NVIDIA Titan X GPU ),Faster RCNN的最快速度是59ms(17fps,K40 GPU,model是ZF)&/p&&p&从模型使用上看,其实PVAnet投巧,使用了最简单的model。但是论文作者却不实在,用最快的速度和Faster RCNN最慢的模型相比,显示自己的Performance Vs Accuracy!人家的精度其实也不差!&/p&&figure&&img src=&https://pic2.zhimg.com/v2-ab934ed70971d2_b.jpg& data-rawwidth=&1079& data-rawheight=&253& class=&origin_image zh-lightbox-thumb& width=&1079& data-original=&https://pic2.zhimg.com/v2-ab934ed70971d2_r.jpg&&&figcaption&PVANet论文的对比图&/figcaption&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-c3b091ce88fbb65de615152_b.jpg& data-rawwidth=&1295& data-rawheight=&160& class=&origin_image zh-lightbox-thumb& width=&1295& data-original=&https://pic2.zhimg.com/v2-c3b091ce88fbb65de615152_r.jpg&&&figcaption&Faster RCNN中的各种模型效果图&/figcaption&&/figure&&p&&br&&/p&&h2&参考文献&/h2&&p&1、PVANet:Lightweight Deep Neural Networks for Real-time object detection&/p&&p&2、HyperNet:Towards Accurate Region Proposal Generation and Joint Object Detection&/p&
之前介绍,RCNN/Fast RCNN/Faster RCNN这些一系列目标检测的经典论文被Ross Girshick,Kaiming He 等高产大神所占领,总算有一股清流,比如intel团队提出的PVANet(Performance Vs Accuracy Net),Lightweight Deep Neural Networks for Real-time object de…
深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏!&br&&br&&figure&&img src=&https://pic1.zhimg.com/v2-e181c600e71bc4ca6fc522_b.jpg& data-rawwidth=&476& data-rawheight=&130& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&https://pic1.zhimg.com/v2-e181c600e71bc4ca6fc522_r.jpg&&&/figure&&p&&b&编者按:&/b&在过去一年里,行人检测、行人跟踪和行人检索三项技术,在工业界已全面落地开花,其被广泛应用于人工智能、车辆辅助驾驶系统、智能机器人、智能视频监控、人体行为分析、智能交通等领域。然而,由于行人兼具刚性和柔性物体的特性,外观易受穿着、尺度、遮挡、姿态和视角等影响,行人检测仍然是计算机视觉领域中一个既具有研究价值、同时又极具挑战性的热门课题。南京理工大学的张姗姗教授将带着大家回顾在过去的一年中,这三个领域在学术界的研究进展。&b&文末提供张教授报告中提到的所有论文的下载链接。&/b&&figure&&img src=&https://pic1.zhimg.com/v2-e181c600e71bc4ca6fc522_b.jpg& data-rawwidth=&476& data-rawheight=&130& class=&origin_image zh-lightbox-thumb& width=&476& data-original=&https://pic1.zhimg.com/v2-e181c600e71bc4ca6fc522_r.jpg&&&/figure&&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-addca31556cfc7b0ff33_b.jpg& data-rawwidth=&642& data-rawheight=&371& class=&origin_image zh-lightbox-thumb& width=&642& data-original=&https://pic1.zhimg.com/v2-addca31556cfc7b0ff33_r.jpg&&&/figure&行人检测,就是将一张图片中的行人检测出来,并输出bounding box级别的结果。而如果将各个行人之间的轨迹关联起来,就变成了行人跟踪。而行人检索则是把一段视频中的某个感兴趣的人检索出来。&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-dfde18bc551ebfb83a4eec87b423e20f_b.jpg& data-rawwidth=&621& data-rawheight=&379& class=&origin_image zh-lightbox-thumb& width=&621& data-original=&https://pic3.zhimg.com/v2-dfde18bc551ebfb83a4eec87b423e20f_r.jpg&&&/figure&&b&行人检测&/b&&/p&&p&卷积神经网络为通用物体检测任务带来了全面的性能提升。而行人检测技术也使用了Faster R-CNN 这样的通用检测框架,因而性能也得到了很大的提升。在 CVPR 2015中,当时在竞赛中的最好方法使用的还是传统的ACF 检测器,其漏检率是18.5%;而在 ECCV 2016中,在使用了 CNN 后,行人检测漏检率降低到了9.6%。&/p&&p&在过去的一年中,行人检测领域的工作大致可被归为以下三类:&/p&&p&&b&第一类&/b&是将传统的检测方法Boosting trees 和 CNN 结合起来。张姗姗等人在CVPR 2016的工作是使用 ICF 提取proposal,然后使用 CNN 进行重新打分来提高检测的性能;在 ECCV 2016上,中山大学林倞教授课题组使用RPN 提取 proposal,同时提取卷积特征,然后使用 Boosting trees进行二次分类,性能得到了很大的提升。&/p&&p&&b&第二类&/b&是解决多尺度问题,例如在视频数据中人的尺度变化问题。颜水成教授课题组提供了一种解决方法:训练两个网络,一个网络关注大尺度的人,另一个网络关注小尺度的人,在检测时将两个网络进行加权融合得到最终的结果,这样能使性能得到很大的提升;UCSD 在 ECCV 2016上有一个类似的工作,提出在高层提取大尺度人的特征,在低层提取小尺度人的特征,这样能保留尽量多的信息量,使得对小尺度的行人也有较好的检测效果。&/p&&p&&b&第三类&/b&是使用语义分割信息来辅助行人检测。首先对整个图像进行语义分割,然后将分割的结果作为先验信息输入到检测网络中(包括传统的 ICF 网络,以及现在常用的CNN),这样可以通过对整体环境的感知来提高检测的效果。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-32cd521f44d846ba57d2e017dc6e5000_b.jpg& data-rawwidth=&656& data-rawheight=&374& class=&origin_image zh-lightbox-thumb& width=&656& data-original=&https://pic4.zhimg.com/v2-32cd521f44d846ba57d2e017dc6e5000_r.jpg&&&/figure&区别于通过提出一些新方法来提高检测率的科研方式,2016年张姗姗等人从分析的角度对各个工作进行总结和归纳。通过分析错误案例来找到错误来源,并提出相应的解决方案以进一步提高检测率。研究发现,在高层级中主要有两类错误,分别是定位错误和背景分类错误。可以尝试两个解决方案,其一是针对检测框对齐性比较差这一现象,可以通过使用对齐性更好的训练样本标签来解决;而针对模型判别能力比较差的问题,可以通过在传统的 ICF 模型上使用 CNN 进行重新打分来提升检测的性能。&br&&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-98f4f6d6b5d127da9a2b7a_b.jpg& data-rawwidth=&663& data-rawheight=&375& class=&origin_image zh-lightbox-thumb& width=&663& data-original=&https://pic1.zhimg.com/v2-98f4f6d6b5d127da9a2b7a_r.jpg&&&/figure&行人检测任务存在一个领域迁移能力差的问题,例如在 Caltech dataset 上训练的模型在其上的性能很好,但是其在 KITTI dataset上的性能却比较差。之所以出现这样的问题是因为现有的数据集的多样性不够,CVPR 2017上将会公布一个新的行人检测数据集:CityPersons。CityPersons数据集是脱胎于语义分割任务的Cityscapes数据集,对这个数据集中的所有行人提供 bounding box 级别的对齐性好的标签。由于CityPersons数据集中的数据是在3个不同国家中的18个不同城市以及3个季节中采集的,其中单独行人的数量明显高于Caltech 和 KITTI 两个数据集。实验结果也表明,CityPersons 数据集上训练的模型在 Caltech 和 KITTI 数据集上的测试漏检率更低。也就是说,CityPersons数据集的多样性更强,因而提高了模型的泛化能力。&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-25f88ddaf251e795c9e46_b.jpg& data-rawwidth=&654& data-rawheight=&363& class=&origin_image zh-lightbox-thumb& width=&654& data-original=&https://pic3.zhimg.com/v2-25f88ddaf251e795c9e46_r.jpg&&&/figure&&b&多人跟踪&/b&&/p&&p&在行人跟踪任务中的一个非常重要的子任务是多人跟踪,其中比较常见的是基于检测的跟踪,也就是将每一帧的检测结果关联成轨迹,每个行人目标都有各自的轨迹。在MOT排行榜上前六名的方法中,有三个使用了将跟踪问题转化为聚类问题的multi-cut 模型,并使用组合优化方法进行求解。multi-cut模型是一个非常简洁的模型,没有使用一些特定技巧,超参数也较少,其缺点是实时性比较差,速度不到1FPS。在 CVPR 2017上有个工作通过对求解器进行改进之后速度能达到8FPS,用multi-cut模型来求解跟踪问题,不失为一个很有前景的研究方向。&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-487d83e956d192c61bfbb843d9467751_b.jpg& data-rawwidth=&640& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/v2-487d83e956d192c61bfbb843d9467751_r.jpg&&&/figure&&b&行人检索&/b&&/p&&p&关于行人检索,也称为行人再识别,从工程的角度来说,一个实用的行人再识别系统是包含行人检测,跟踪和检索三个子模块的,但是因为行人检测和行人跟踪一般是作为单独的课题进行研究,所以行人再识别主要关注的是检索方面的问题。 行人再识别早年的工作主要是基于图像的,即给定一个待检索行人(probe),在原型图像集上找到同一个人(gallery)。近几年开始出现一些基于视频的工作,此时 probe 和 gallery 也相应地变为了视频序列。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-6de73e4e15fbff6d08571bc_b.jpg& data-rawwidth=&646& data-rawheight=&370& class=&origin_image zh-lightbox-thumb& width=&646& data-original=&https://pic1.zhimg.com/v2-6de73e4e15fbff6d08571bc_r.jpg&&&/figure&在行人检索这个领域,既有传统的方法也有深度学习的方法。传统方法主要基于度量学习,而深度学习方法最经典的模型是孪生网络,过去一年中提出了一些新的方法,就是为孪生模型上增加一些新的模块,包括使用新的损失函数、基于身体部位表示以及属性学习等方法。如果输入是视频的话,对序列提取特征时就需要对多帧进行池化操作。池化方法可采如传统的最大值池、均值池化、以及 ECCV 2016中提出的自学习的池化方法来学习更好的池化方式。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-a189ec19a6895_b.jpg& data-rawwidth=&654& data-rawheight=&366& class=&origin_image zh-lightbox-thumb& width=&654& data-original=&https://pic4.zhimg.com/v2-a189ec19a6895_r.jpg&&&/figure&悉尼科技大学在 ECCV 2016上发布了一个基于视频的行人再识别的数据集 MARS dataset,与先前的数据集相比,其规模更大,轨迹和框的数目都更多。&br&&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-dd4d77e832d9c2fa0eaaacf_b.jpg& data-rawwidth=&644& data-rawheight=&387& class=&origin_image zh-lightbox-thumb& width=&644& data-original=&https://pic1.zhimg.com/v2-dd4d77e832d9c2fa0eaaacf_r.jpg&&&/figure&&b&总结&/b&&/p&&p&由于人在图像和视频数据中始终是重点关注的对象,所以吸引了很多研究者从事这方面的工作。而深度学习以及大规模的数据库更是推动了这个领域的发展。行人检测、行人跟踪、以及行人检索技术是紧密相连不可分割的,如果有更好的行人检测方法,也会推动行人跟踪和行人检索技术的发展,同时最新研究表明,行人检索可以辅助行人跟踪任务。所以,行人检测、行人跟踪、以及行人检索技术三者结合将是一个很好的研究方向。&/p&&p&文中提到所有论文的下载链接为:&/p&&a href=&https://link.zhihu.com/?target=http%3A//pan.baidu.com/s/1eRO9xoY& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&https://pan.baidu.com/s/1boNZ8ar&/a&&p&&b&致谢:&/b&&/p&&p&本文主编袁基睿,诚挚感谢志愿者范琦、贺娇瑜、李珊如对本文进行了细致的整理工作。&/p&&br&&p&&b&该文章属于“深度学习大讲堂”原创,如需要转载,请联系&a href=&https://www.zhihu.com/people/guo-dan-qing/answers& class=&internal&&@果果是枚开心果.&/a&&/b&&/p&&p&&b&作者简介:&/b&&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-bf63bece734d1b5b3af2c7_b.jpg& data-rawwidth=&333& data-rawheight=&375& class=&content_image& width=&333&&&/figure&&b&张姗姗教授,&/b&于2015年博士毕业于德国波恩大学计算机系,后在德国马普计算机研究所任博士后研究员。2016年29岁的张姗姗回国任南京理工大学计算机科学与工程学院教授,研究领域涉及目标检测、及无人驾驶中的视觉感知技术,发表各类国际会议及期刊数十篇,是一位美貌与智慧并重的青年学者。&/p&&p&&b&原文链接:&a href=&https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s/8SNq4CYG01kWXniTfi_2xw%3Fptlang%3D2052%26source%26ADUIN%3D%26ADSESSION%3D%26ADTAG%3DCLIENT.QQ.ADPUBNO%3D26675& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&行人检测、跟踪与检索领域年度进展报告&/a&&/b&&/p&&p&&b&欢迎大家关注我们的微信公众号,搜索微信名称:深度学习大讲堂&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-a29f11dacaf2c3a3f8b93_b.jpg& data-rawwidth=&346& data-rawheight=&67& class=&content_image& width=&346&&&/figure&
深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏! 编者按:在过去一年里,行人检测、行人跟踪和行人检索三项技术,在工业界已全面落地开花,其被广泛应用于人工智能、车辆辅助驾驶系统、智能机器人、智能…
&figure&&img src=&https://pic4.zhimg.com/v2-ff464e6d378f211ff721_b.jpg& data-rawwidth=&792& data-rawheight=&531& class=&origin_image zh-lightbox-thumb& width=&792& data-original=&https://pic4.zhimg.com/v2-ff464e6d378f211ff721_r.jpg&&&/figure&&h2&Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition&/h2&&p&文章地址:&a href=&http://link.zhihu.com/?target=https%3A//arxiv.org/pdf/.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&arxiv.org/pdf/&/span&&span class=&invisible&&.pdf&/span&&span class=&ellipsis&&&/span&&/a&&/p&&h2&摘要&/h2&&p&沿着上一篇RCNN的思路,我们继续探索目标检测的痛点,其中RCNN使用CNN作为特征提取器,首次使得目标检测跨入深度学习的阶段。但是RCNN对于每一个区域候选都需要首先将图片放缩到固定的尺寸(224*224),然后为每个区域候选提取CNN特征。容易看出这里面存在的一些性能瓶颈:&/p&&ul&&li&速度瓶颈:重复为每个region proposal提取特征是极其费时的,Selective Search对于每幅图片产生2K左右个region proposal,也就是意味着一幅图片需要经过2K次的完整的CNN计算得到最终的结果。&/li&&li&性能瓶颈:对于所有的region proposal防缩到固定的尺寸会导致我们不期望看到的几何形变,而且由于速度瓶颈的存在,不可能采用多尺度或者是大量的数据增强去训练模型。&/li&&/ul&&br&但是为什么CNN需要固定的输入呢?CNN网络可以分解为卷积网络部分以及全连接网络部分。我们知道卷积网络的参数主要是卷积核,完全能够适用任意大小的输入,并且能够产生任意大小的输出。但是全连接层部分不同,全连接层部分的参数是神经元对于所有输入的连接权重,也就是说输入尺寸不固定的话,全连接层参数的个数都不能固定。&p&何凯明团队的SPPNet给出的解决方案是,既然只有全连接层需要固定的输入,那么我们在全连接层前加入一个网络层,让他对任意的输入产生固定的输出不就好了吗?一种常见的想法是对于最后一层卷积层的输出pooling一下,但是这个pooling窗口的尺寸及步伐设置为相对值,也就是输出尺寸的一个比例值,这样对于任意输入经过这层后都能得到一个固定的输出。SPPnet在这个想法上继续加入SPM的思路,SPM其实在传统的机器学习特征提取中很常用,主要思路就是对于一副图像分成若干尺度的一些块,比如一幅图像分成1份,4份,8份等。然后对于每一块提取特征然后融合在一起,这样就可以兼容多个尺度的特征啦。SPPNet首次将这种思想应用在CNN中,对于卷积层特征我们也先给他分成不同的尺寸,然后每个尺寸提取一个固定维度的特征,最后拼接这些特征不就是一个固定维度的输入了吗?&/p&&p&&figure&&img src=&http://pic4.zhimg.com/v2-da59abcbe56803aeeef24ffb5131ce83_b.png& data-rawwidth=&764& data-rawheight=&450& class=&origin_image zh-lightbox-thumb& width=&764& data-original=&http://pic4.zhimg.com/v2-da59abcbe56803aeeef24ffb5131ce83_r.png&&&/figure&上面这个图可以看出SPPnet和RCNN的区别,首先是输入不需要放缩到指定大小。其次是增加了一个空间金字塔池化层,还有最重要的一点是每幅图片只需要提取一次特征。&/p&&p&通过上述方法虽然解决了CNN输入任意大小图片的问题,但是还是需要重复为每个region proposal提取特征啊,能不能我们直接根据region proposal定位到他在卷积层特征的位置,然后直接对于这部分特征处理呢?答案是肯定的,我们将在下一章节介绍。&br&&/p&&h2&网络细节&/h2&&ul&&li&&b&卷积层特征图&/b&&/li&&/ul&&br&&figure&&img src=&http://pic1.zhimg.com/v2-ccb850ca4c23cc_b.png& data-rawwidth=&1216& data-rawheight=&622& class=&origin_image zh-lightbox-thumb& width=&1216& data-original=&http://pic1.zhimg.com/v2-ccb850ca4c23cc_r.png&&&/figure&SPPNet通过可视化Conv5层特征,发现卷积特征其实保存了空间位置信息(数学推理中更容易发现这点),并且每一个卷积核负责提取不同的特征,比如C图175、55卷积核的特征,其中175负责提取窗口特征,55负责提取圆形的类似于车轮的特征。我们可以通过传统的方法聚集这些特征,例如词袋模型或是空间金字塔的方法。&ul&&li&&b&空间金字塔池化层&/b&&/li&&/ul&&br&&figure&&img src=&http://pic1.zhimg.com/v2-62cc_b.png& data-rawwidth=&763& data-rawheight=&646& class=&origin_image zh-lightbox-thumb& width=&763& data-original=&http://pic1.zhimg.com/v2-62cc_r.png&&&/figure&上图的空间金字塔池化层是SPPNet的核心,其主要目的是对于任意尺寸的输入产生固定大小的输出。思路是对于任意大小的feature map首先分成16、4、1个块,然后在每个块上最大池化,池化后的特征拼接得到一个固定维度的输出。以满足全连接层的需要。不过因为不是针对于目标检测的,所以输入的图像为一整副图像。&ul&&li&&b&SPPNet应用于图像分类&/b&&/li&&/ul&&br&SPPNet的能够接受任意尺寸图片的输入,但是训练难点在于所有的深度学习框架都需要固定大小的输入,因此SPPNet做出了多阶段多尺寸训练方法。在每一个epoch的时候,我们先将图像放缩到一个size,然后训练网络。训练完整后保存网络的参数,然后resize 到另外一个尺寸,并在之前权值的基础上再次训练模型。相比于其他的CNN网络,SPPNet的优点是可以方便地进行多尺寸训练,而且对于同一个尺度,其特征也是个空间金字塔的特征,综合了多个特征的空间多尺度信息。&ul&&li&&b&SPPNet应用于目标检测&/b&&/li&&/ul&&br&&figure&&img src=&http://pic4.zhimg.com/v2-d68eaa673b48ccb16a761f_b.png& data-rawwidth=&757& data-rawheight=&542& class=&origin_image zh-lightbox-thumb& width=&757& data-original=&http://pic4.zhimg.com/v2-d68eaa673b48ccb16a761f_r.png&&&/figure&SPPNet理论上可以改进任何CNN网络,通过空间金字塔池化,使得CNN的特征不再是单一尺度的。但是SPPNet更适用于处理目标检测问题,首先是网络可以介绍任意大小的输入,也就是说能够很方便地多尺寸训练。其次是空间金字塔池化能够对于任意大小的输入产生固定的输出,这样使得一幅图片的多个region proposal提取一次特征成为可能。SPPNet的做法是:&ol&&li&首先通过selective search产生一系列的region proposal,参见:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&目标检测(1)-Selective Search - 知乎专栏&/a&&/li&&li&然后训练多尺寸识别网络用以提取区域特征,其中处理方法是每个尺寸的最短边大小在尺寸集合中:&br&&/li&&/ol&&br&&figure&&img src=&http://pic2.zhimg.com/v2-a4f5ffdfad99_b.png& data-rawwidth=&470& data-rawheight=&40& class=&origin_image zh-lightbox-thumb& width=&470& data-original=&http://pic2.zhimg.com/v2-a4f5ffdfad99_r.png&&&/figure&&p&训练的时候通过上面提到的多尺寸训练方法,也就是在每个epoch中首先训练一个尺寸产生一个model,然后加载这个model并训练第二个尺寸,直到训练完所有的尺寸。空间金字塔池化使用的尺度为:1*1,2*2,3*3,6*6,一共是50个bins。&/p&&p&3.在测试时,每个region proposal选择能使其包含的像素个数最接近224*224的尺寸,提取相 应特征。&br&&/p&&p&由于我们的空间金字塔池化可以接受任意大小的输入,因此对于每个region proposal将其映射到feature map上,然后仅对这一块feature map进行空间金字塔池化就可以得到固定维度的特征用以训练CNN了。关于从region proposal映射到feature map的细节我们待会儿去说。&/p&&p&4.训练SVM,BoundingBox回归&/p&&p&这部分和RCNN完全一致,参见:&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&目标检测(2)-RCNN - 知乎专栏&/a&&/p&&ul&&li&&b&实验结果&/b&&/li&&/ul&&br&其中单一尺寸训练结果低于RCNN1.2%,但是速度是其102倍,5个尺寸的训练结果与RCNN相当,其速度为RCNN的38倍。&ul&&li&&b&如何从一个region proposal 映射到feature map的位置?&/b&&/li&&/ul&&br&SPPNet通过角点尽量将图像像素映射到feature map感受野的中央,假设每一层的padding都是p/2,p为卷积核大小。对于feature map的一个像素(x',y'),其实际感受野为:(Sx‘,Sy’),其中S为之前所有层步伐的乘积。然后对于region proposal的位置,我们获取左上右下两个点对应的feature map的位置,然后取特征就好了。左上角映射为:&p&&figure&&img src=&http://pic2.zhimg.com/v2-8c5eddc9f856822aad5ae8d030ce1779_b.png& data-rawwidth=&216& data-rawheight=&39& class=&content_image& width=&216&&&/figure&右下角映射为:&/p&&p&&figure&&img src=&http://pic3.zhimg.com/v2-7a4ce0c60b8fcac5eb7ffe365f99572e_b.png& data-rawwidth=&203& data-rawheight=&41& class=&content_image& width=&203&&&/figure&当然,如果padding大小不一致,那么就需要计算相应的偏移值啦。&/p&&h2&&ul&&li&存在的不足&br&&/li&&/ul&&br&&/h2&&p&和RCNN一样,SPP也需要训练CNN提取特征,然后训练SVM分类这些特征。需要巨大的存储空间,并且分开训练也很复杂。而且selective search的方法提取特征是在CPU上进行的,相对于GPU来说还是比较慢的。针对这些问题的改进,我们将在Fast RCNN以及Faster RCNN中介绍,敬请期待。&/p&
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition文章地址:摘要沿着上一篇RCNN的思路,我们继续探索目标检测的痛点,其中RCNN使用CNN作为特征提取器,首次使得目标检测跨入深度学习的阶段。但是RCNN对…
深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏!&br&&br&&p&&b&本文转载自CCF-CV,已获得专家委员会同意。&/b&&/p&&p&&b&摘要&/b&&/p&&p&三维形状特征表示是三维目标识别、三维人脸识别以及三维模型检索等研究的基础,在机器人、AR/VR、人机交互、遥感测绘等领域有着广泛的应用前景。近三年来,针对三维形状数据深度特征表示的研究得到了越来越多的关注。本文对该方向所面临的挑战进行了分析,并对现有算法进行了简要综述。&/p&&p&&b&引言&/b&&/p&&p&随着三维成像技术的快速发展,低成本小型化三维传感器近年来大量涌现并逐步配备到移动设备中,典型代表如Kinect,Realsense和Google Tango。三维传感器能很好地捕获场景三维信息,使智能设备更好地感知和理解周围环境,在机器人、AR/VR、人机交互、遥感测绘等多个领域具有广阔的应用前景。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-97e998c9b9d2e4d1a3148_b.jpg& data-rawwidth=&650& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&650& data-original=&https://pic1.zhimg.com/v2-97e998c9b9d2e4d1a3148_r.jpg&&&/figure&&p&三维传感器获得的数据是物体三维形状的直观反映,其可以表示为深度图、点云或者网格等多种形式。其中,深度图只能表示物体在单个视点下的距离信息,因此常称为2.5维数据,而点云和网格能表示物体在多个视点下的信息,因此常称为三维形状数据。有效的三维形状特征表示是实现点云配准、三维模型重建、三维形状检索、三维目标识别、三维生物特征识别、场景语义分割、以及定位制图等视觉任务的基础。&/p&&p&一个好的特征应该具有良好的鉴别力、稳健性、不变性以及计算效率。自上世纪90年代开始,三维形状特征提取算法经历了20余年的发展,逐步从手工特征过渡到基于深度学习的特征。手工特征通常通过提取三维形状几何属性的空间分布或直方图统计等方法得到,典型代表如Spin Image、FPFH、Heat Kernel Signature (HKS)、MeshHOG、RoPS等[1]。但这类方法依赖于研究者的领域知识,无法获得适用于某一特定任务的最优三维形状特征表示。近年来,随着三维形状数据集的不断完善,深度学习模型开始应用于三维形状特征表示,并产生了大量的研究成果。本文旨在简要综述该领域面临的主要挑战,研究进展以及潜在研究方向。&/p&&p&&b&一、面临的挑战&/b&&/p&&p&相对于二维图像领域,深度学习模型在三维形状上的研究起步较晚,仅在近三年取得了较大的进展。该领域面临的主要问题如下。&/p&&p&&b&1.1 三维形状的结构化表示&/b&&/p&&p&图像是结构化的,可以表示为二维平面上的一个矩阵,但三维点云和网格都是非结构化的,不能直接输入到深度神经网络中。因此,采用深度学习模型首先要解决三维形状的结构化表示问题。主要思路包括:1)在三维形状上手工提取低级特征,再采用深度学习模型提取高级特征;2)将三维点云或网格转化为系列二维图像,再采用深度学习模型提取特征;3)将三维形状体素化得到结构化表示,再构建三维深度学习模型提取特征;4)设计能适应原始三维数据特点的深度学习模型。&/p&&p&&b&1.2 公共数据集较小&/b&&/p&&p&相比于ImageNet等千万量级的二维图像数据集,传统的三维形状数据集很小。近年来发布的较大的数据集包括用于形状分类与检索的ModelNet和ShapeNet。ModelNet包含了来自662类的127915个三维形状,其子集Model10包含了来自10类的4899个三维形状,ModelNet40包含了来自40类的12311个三维形状。ShapeNet包含了约300万个形状,其子集ShapeNetCore包含了来自55类的51300个形状。较小的数据集对深度学习模型的设计与训练提出了更高要求.&/p&&p&&b&1.3 神经网络运算量大&/b&&/p&&p&由于三维形状比二维图像在空间中多了一维信息,因此在保持相同空间分辨率的前提下,神经网络的运算量比图像大很多。比如,即使将三维形状采样为30×30×30的体素,其运算量已相当于165×165的图像,而实际上分辨率为30×30×30的体素对形状的表示是非常粗糙的。因此,如何既能获得精细的三维形状表示,又能将运算量控制在可接受的范围内,是一个富有挑战的问题。&/p&&p&&b&1.4 物体姿态变化&/b&&/p&&p&由于三维物体的姿态是任意的,因此如何使得学习到的特征具有对姿态的不变性也是设计深度学习模型时需要考虑的问题。典型思路包括在预处理中对输入数据进行姿态归一化,或者在神经网络中加入Max-Pooling等操作以消除姿态的影响。&/p&&p&&b&二、现有方法分类&/b&&/p&&p&依据不同的数据表示方式,现有的三维形状深度特征表示方法可以分为:基于手工特征的方法、基于投影图像的方法、基于三维体素的方法以及基于原始数据的方法。&/p&&p&&b&2.1 基于手工特征的方法&/b&&/p&&p&这类方法首先在三维形状上提取手工特征,进而将这些特征作为深度神经网络的输入,用以学习高层特征表示。其优势在于可以充分利用现有的低层特征描述子及深度学习模型。&/p&&p&比如,Bu等人[2]首先将热核特征和平均测地距离等构成的低层特征通过Bag-of-Feature模型转化为中层特征,接着采用深度置信网络(DBN)从中层特征中学习高层特征表示,并成功应用于三维形状检索与识别。Xie等人[3]首先提取三维形状Heat Kernel Signature特征的多尺度直方图分布作为自编码机的输入,然后在每个尺度上训练一个自编码机并将多个尺度隐含层的输出连接得到特征描述子,并在多个数据集上测试了该方法用于形状检索的有效性。&/p&&p&这类方法的缺陷在于,其仍然依赖手工特征的选择与参数优化,因此在某种程度上损失了深度学习的优势,无法从根本上克服手工特征存在的问题。&/p&&p&&b&2.2 基于投影图像的方法&/b&&/p&&p&这类方法首先将三维形状投影到二维图像空间,进而在二维图像上采用深度学习模型进行特征学习,其优势在于:1)可以充分利用二维图像领域性能优越的网络架构;2)存在海量图像数据供深度学习模型进行预训练。&/p&&p&比如,Su等人[4]首先获得三维形状在12个不同视点下的投影图,进而采用VGG-M卷积神经网络学习各个视点下投影图的特征,最后将多视点下的特征进行池化并送入下一个CNN网络中得到最终的形状特征,其网络结构如图2所示。其第一级CNN网络采用ImageNet进行预训练并利用三维形状的二维投影图进行精调,实验结果表明多视点图像能获得比单视点图像更好的性能。Shi等人[5]通过沿主轴方向进行圆柱投影将三维形状转化为多个全景图,进而利用CNN从全景图中学习特征表示。由于在卷积层和全连接层之间加入了Max-Pooling操作,因此特征具有对绕主轴旋转的不变性。Sinha等人[6]将三维形状参数化到球形表面,进而将球形表面投影到八面体后展开成二维平面,并采用主曲率或HKS在平面的分布获得二维图像,最后采用CNN网络从二维图像中学习特征表示。Kalogerakis等人[7]在不同视点及尺度下获得三维形状的系列阴影图(Shaded Image)和深度图,进而采用全卷积网络(FCN)进行特征学习。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-dcf0ae221e90e39cf569213_b.jpg& data-rawwidth=&648& data-rawheight=&277& class=&origin_image zh-lightbox-thumb& width=&648& data-original=&https://pic4.zhimg.com/v2-dcf0ae221e90e39cf569213_r.jpg&&&/figure&&br&虽然这类方法通过变换能一定程度地保留三维物体的形状信息,但变换过程本身改变了三维形状的局部和全局结构,使得特征鉴别力下降。此外,将三维形状进行投影损失了大量的结构信息,且这类方法通常要求三维形状在竖直方向上进行了对齐。&p&&b&2.3 基于三维体素的方法&/b&&/p&&p&这类方法将三维形状视为三维体素网格中的概率分布,从而将其表示为二值或实值的三维张量。图3给出了椅子模型在不同分辨率下的三维体素表示。这类方法的优势在于三维体素完整保留了三维形状信息,有利于提高特征的鉴别力。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-d8f442e589e6c802edd4f7d3e7b0a3ca_b.jpg& data-rawwidth=&654& data-rawheight=&245& class=&origin_image zh-lightbox-thumb& width=&654& data-original=&https://pic1.zhimg.com/v2-d8f442e589e6c802edd4f7d3e7b0a3ca_r.jpg&&&/figure&比如,Wu等人[8]将三维形状表示为二值概率分布,若体素在三维表面内则其值为1,否则为0,并采用卷积深度置信网络(CDBN)学习三维体素与标签之间的联合分布。Xu等人[9]采用定向搜索对3D ShapeNets进行优化以减少CNN网络的参数数量并提高分类精度。Xu等人[10]则把三维体素的每一层抽取出来组合成一个二值图像输入到CNN网络中进行特征学习。为进一步降低计算量,Li等人[11]将三维形状表示成体素场(Volumetric Fields)以克服三维体素表示的稀疏性问题,并采用一个场探索滤波器(Field Probing Filter)取代CNN中的卷积层来学习特征。Qi等人[12]系统比较了基于多视点投影和基于三维体素的方法,并通过增加辅助学习任务、多姿态数据增广与池化融合等来提高三维形状分类的性能。此外,Wu等人 [13]采用体素卷积网络和生成对抗式网络从概率空间中生成三维形状,其通过非监督学习得到的特征能获得很好的三维目标识别性能。&/p&&p&但是,这类方法也面临一些挑战,如:1)为使得网络训练不过于复杂,三维体素的分辨率不能太高(通常为30×30×30),而较低的分辨率限制了所学特征的鉴别力;2)三维形状表面所占的体素比例不高,使得体素化结果较稀疏,因此需要设计合理的网络以避免大量乘0或者为空的运算。&/p&&p&&b&2.4 基于原始数据的方法&/b&&/p&&p&这类方法针对三维形状数据的特点设计特定的神经网络输入层,使得网络能很好地应对三维形状数据非规则化的问题。&/p&&p&对于网格表示,Han等人[14]提出了一种Mesh卷积受限玻尔兹曼机(MCRBM)以实现三维形状的非监督特征学习。该方法首先在三维形状上均匀放置固定点数的节点,并在这些节点上用局部函数能量分布(LFED)来表达三维形状局部区域的几何和结构信息,进而采用卷积深度置信网络来学习高层特征。Han等人[15]还提出了一种圆形卷积受限玻尔兹曼机(CCRBM)来学习三维局部区域的几何和结构信息。该方法首先将局部区域上的点投影到该区域中心的切平面上并获得投影距离分布(PDD)特征,进而采用傅里叶变换系数获得旋转不变的特征,最后采用卷积受限玻尔兹曼机学习高层特征。&/p&&p&对于点云表示,Qi等人[16]认为解决输入点云的无序问题有三种解决思路: 1)将输入点云进行排序,但在高维空间中难以确保排序结果的稳定性;2)将输入点云看作一个序列去训练RNN网络,并采用不同排列组合得到的点云作为增广数据训练RNN网络,但对于包含大量点的点云来说这一方法并不能获得很好的不变性;3)采用一个对称函数融合每个点的信息,该对称函数以所有点作为输入但输出一个对点序不变的向量。Qi等人[16]采用第三种思路,以多层感知网络及Max-Pooling来近似该对称函数,通过训练获得对点序不敏感的特征表示。该方法被成功应用于三维形状分类、物体部件分割以及语义场景分割。&/p&&p&&b&三、未来发展方向&/b&&/p&&p&相对于二维图像而言,对三维形状的深度特征表示研究才刚刚起步。随着三维成像传感器的进一步普及,三维形状特征学习及相关应用的研究将得到更多关注。在这一领域,依然有很多方向值得挖掘,比如:非刚性三维形状的特征学习;大规模点云的特征学习,特别是测绘制图和自动驾驶场景下的点云实时特征学习;以及遮挡和背景干扰下的三维目标检测与识别。&/p&&p&&b&参考文献&/b&&/p&&p&[1]. Y. Guo, M. Bennamoun, F. Sohel, M. Lu, J. Wan. 3D object recognition in cluttered scenes with local surface features: a survey IEEE PAMI, 36: , 2014&/p&&p&[2]. S. Bu, Z. Liu, J. Han, J. Wu, R. Ji. Learning High-Level Feature by Deep Belief Networks for 3-D Model Retrieval and Recognition. IEEE TMM, 16(8): , 2014&/p&&p&[3]. J. Xie, G. Dai, F. Zhu, E. Wong, Y. Fang. DeepShape: Deep-Learned Shape Descriptor for 3D Shape Retrieval. IEEE TPAMI, 2016&/p&&p&[4]. H. Su, S. Maji, E. Kalogerakis, E. Learned-Miller. Multi-view Convolutional Neural Networks for 3D Shape Recognition, ICCV, 2015&/p&&p&[5]. B. Shi, S. Bai, Z. Zhou, X. Bai. DeepPano: Deep Panoramic Representation for 3-D Shape Recognition. IEEE Signal Processing Letters, 22: 15&/p&&p&[6]. A. Sinha, J. Bai, K. Ramani. Deep Learning 3D Shape Surfaces Using Geometry Images. ECCV, 223-240, 2016&/p&&p&[7]. E. Kalogerakis, M. Averkiou, S. Maji, S. Chaudhuri. 3D Shape Segmentation with Projective Convolutional Networks. arXiv preprint arXiv:, 2016&/p&&p&[8]. Z. Wu, S. Song, A. Khosla, F. Yu, L. Zhang. 3D ShapeNets: A Deep Representation for Volumetric Shapes, CVPR, , 2015&/p&&p&[9]. X. Xu, S. Todorovic. Beam Search for Learning a Deep Convolutional Neural Network of 3D Shapes. arXiv preprint arXiv:, 2016&/p&&p&[10]. X. Xu, D. Corrigan, A. Dehghani, S. Caulfield, D. Moloney. 3D Object Recognition Based on Volumetric Representation Using Convolutional Neural Networks. International Conference on Articulated Motion and Deformable Objects. 147-156, 2016&/p&&p&[11]. Y. Li, S. Pirk, H. Su, C. R. Qi, L. J. Guibas. FPNN: Field Probing Neural Networks for 3D Data. NIPS, 307-315, 2016&/p&&p&[12]. C. R. Qi, H. Su, M. Niessner, A. Dai, M. Yan, L. J. Guibas. Volumetric and Multi-View CNNs for Object Classification on 3D Data, arXiv, 2016&/p&&p&[13]. J. Wu, C. Zhang, T. Xue, W. T. Freemanand, J. B. Tenenbaum. Learning a Probabilistic Latent Space of Object Shapes via 3D Generative-Adversarial Modeling. Advances In Neural Information Processing Systems, 2016&/p&&p&[14]. Z. Han, Z. Liu, J. Han, C. M. Vong, S. Bu, C. L. P. Chen. Mesh Convolutional Restricted Boltzmann Machines for Unsupervised Learning of Features With Structure Preservation on 3-D Meshes. IEEE TNNLS, 2016&/p&&p&[15]. Z. Han, Z. Liu, J. Han, C. M. Vong, S. Bu, X. Li. Unsupervised 3D Local Feature Learning by Circle Convolutional Restricted Boltzmann Machine. IEEE TIP, 2016.&/p&&p&[16]. C. R. Qi, H. Su, K. Mo, L. J. Guibas. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. arXiv preprint arXiv:, 2016.&/p&&br&&p&&b&该文章属于“深度学习大讲堂”原创,如需要转载,请联系&a href=&https://www.zhihu.com/people/guo-dan-qing/answers& class=&internal&&@果果是枚开心果.&/a&&/b&&/p&&p&&b&作者简介:&/b&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-aa3b40d4b6cb41e_b.jpg& data-rawwidth=&283& data-rawheight=&364& class=&content_image& width=&283&&&/figure&&p&&b&郭裕兰,&/b&国防科技大学电子科学与工程学院讲师。2011年至2014年于西澳大学从事访问研究,2016年11月起受中国首届“博新计划”支持于中科院计算所VIPL研究组从事博士后研究。已在TPAMI、IJCV和TIP等国际期刊及会议上发表论文40余篇。曾获“中国人工智能学会优秀博士学位论文奖”和“军队优秀博士学位论文奖”,指导学生获第十一届中国研究生电子设计竞赛第一名暨特等奖。现为中国计算机学会计算机视觉专委委员,中国自动化学会模式识别与机器智能专委委员,中国人工智能学会模式识别专委委员。主要研究方向包括点云特征学习、三维目标识别、三维人脸识别和三维场景重建等。&/p&&p&Email: yulan.guo@nudt.edu.cn&/p&&p&&b&原文链接:&a href=&https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/g9ANliOMLJalJtpt4YCZVw& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&三维形状数据的深度特征表示&/a&&/b&&/p&&br&&p&&b&欢迎大家关注我们的微信公众号,搜索微信名称:深度学习大讲堂&/b&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-a29f11dacaf2c3a3f8b93_b.jpg& data-rawwidth=&346& data-rawheight=&67& class=&content_image& width=&346&&&/figure&
深度学习大讲堂致力于推送人工智能,深度学习方面的最新技术,产品以及活动。请关注我们的知乎专栏! 本文转载自CCF-CV,已获得专家委员会同意。摘要三维形状特征表示是三维目标识别、三维人脸识别以及三维模型检索等研究的基础,在机器人、AR/VR、人机交互…
我试过SSD最前面的卷积为深度残差网络,检测小物体效果还不错,比YOLO要好得多。&br&另外SSD原论文中,多级别的物体基本尺寸从0.1到0.8,实际上0.1的比例还是很大的,如的输入,0.1都到102了,其实不小。&br&可以根据需求调整级别,我使用的为1/64~1,即不同级别格子本身大小。&br&当然,级别从线性分割变成指数分割后,在基本大小之上的各个变形也需要调整一下(主要是变大),不然有可能覆盖不到有些位于两个格子中间的某些大小的物体。&br&&br&YOLO比较坑的地方在于倒数第二层为全连接,后面的7*7格子不能扩张太大,不然前面的全连接要爆。格子大了,同一个格子

我要回帖

更多关于 cost sensitive 的文章

 

随机推荐