起源:https://zhuanlan.zhihu.com/p/34142321
【写在后面】
如何从图像中解析出可供计算机了解的信息,是机器视觉的核心问题。深度学习模型因为其弱小的示意能力,加之数据量的积攒和计算力的提高,成为机器视觉的热点钻研方向。
那么,如何了解一张图片?依据后续工作的须要,有三个次要的档次。
图像了解的三个档次
一是分类(Classification),即是将图像结构化为某一类别的信息,用当时确定好的类别(string)或实例ID来形容图片。这一工作是最简略、最根底的图像了解工作,也是深度学习模型最先获得冲破和实现大规模利用的工作。其中,ImageNet是最权威的评测集,每年的ILSVRC催生了大量的优良深度网络结构,为其余工作提供了根底。在应用领域,人脸、场景的辨认等都能够归为分类工作。
二是检测(Detection)。分类工作关怀整体,给出的是整张图片的内容形容,而检测则关注特定的物体指标,要求同时取得这一指标的类别信息和地位信息。相比分类,检测给出的是对图片前景和背景的了解,咱们须要从背景中拆散出感兴趣的指标,并确定这一指标的形容(类别和地位),因此,检测模型的输入是一个列表,列表的每一项应用一个数据组给出检出指标的类别和地位(罕用矩形检测框的坐标示意)。
三是宰割(Segmentation)。宰割包含语义宰割(semantic segmentation)和实例宰割(instance segmentation),前者是对前背景拆散的拓展,要求分来到具备不同语义的图像局部,而后者是检测工作的拓展,要求形容出指标的轮廓(相比检测框更为精密)。宰割是对图像的像素级形容,它赋予每个像素类别(实例)意义,实用于了解要求较高的场景,如无人驾驶中对路线和非路线的宰割。
本系列文章关注的畛域是指标检测,即图像了解的中档次。
(一)指标检测经典工作回顾
本文构造
两阶段(2-stage)检测模型
两阶段模型因其对图片的两阶段解决得名,也称为基于区域(Region-based)的办法,咱们选取R-CNN系列工作作为这一类型的代表。
R-CNN: R-CNN系列的开山之作
论文链接: Rich feature hierarchies for accurate object detection and semantic segmentation
本文的两大奉献:1)CNN可用于基于区域的定位和宰割物体;2)监督训练样本数紧缺时,在额定的数据上预训练的模型通过fine-tuning能够获得很好的成果。第一个奉献影响了之后简直所有2-stage办法,而第二个奉献中用分类工作(Imagenet)中训练好的模型作为基网络,在检测问题上fine-tuning的做法也在之后的工作中始终沿用。
传统的计算机视觉办法罕用精心设计的手工特色(如SIFT, HOG)形容图像,而深度学习的办法则提倡习得特色,从图像分类工作的教训来看,CNN网络主动习得的特色获得的成果曾经超出了手工设计的特色。本篇在部分区域利用卷积网络,以施展卷积网络学习高质量特色的能力。
R-CNN将检测形象为两个过程,一是基于图片提出若干可能蕴含物体的区域(即图片的部分裁剪,被称为Region Proposal),文中应用的是Selective Search算法;二是在提出的这些区域上运行过后体现最好的分类网络(AlexNet),失去每个区域内物体的类别。
另外,文章中的两个做法值得注意。
一是数据的筹备。输出CNN前,咱们须要依据Ground Truth对提出的Region Proposal进行标记,这里应用的指标是IoU(Intersection over Union,交并比)。IoU计算了两个区域之交的面积跟它们之并的比,形容了两个区域的重合水平。
文章中特地提到,IoU阈值的抉择对后果影响显著,这里要谈两个threshold,一个用来辨认正样本(如跟ground truth的IoU大于0.5),另一个用来标记负样本(即背景类,如IoU小于0.1),而介于两者之间的则尴尬例(Hard Negatives),若标为正类,则蕴含了过多的背景信息,反之又蕴含了要检测物体的特色,因此这些Proposal便被疏忽掉。
另一点是地位坐标的回归(Bounding-Box Regression),这一过程是Region Proposal向Ground Truth调整,实现时退出了log/exp变换来使损失放弃在正当的量级上,能够看做一种标准化(Normalization)操作。
小结
R-CNN的想法间接明了,行将检测工作转化为区域上的分类工作,是深度学习办法在检测工作上的试水。模型自身存在的问题也很多,如须要训练三个不同的模型(proposal, classification, regression)、反复计算过多导致的性能问题等。尽管如此,这篇论文的很多做法依然宽泛地影响着检测工作上的深度模型反动,后续的很多工作也都是针对改良这一工作而开展,此篇能够称得上"The First Paper"。
Fast R-CNN: 共享卷积运算
论文链接:Fast R-CNN
文章指出R-CNN耗时的起因是CNN是在每一个Proposal上独自进行的,没有共享计算,便提出将根底网络在图片整体上运行结束后,再传入R-CNN子网络,共享了大部分计算,故有Fast之名。
上图是Fast R-CNN的架构。图片通过feature extractor失去feature map, 同时在原图上运行Selective Search算法并将RoI(Region of Interset,实为坐标组,可与Region Proposal混用)映射到到feature map上,再对每个RoI进行RoI Pooling操作便失去等长的feature vector,将这些失去的feature vector进行正负样本的整顿(放弃肯定的正负样本比例),分batch传入并行的R-CNN子网络,同时进行分类和回归,并将两者的损失对立起来。
RoI Pooling 是对输出R-CNN子网络的数据进行筹备的要害操作。咱们失去的区域经常有不同的大小,在映射到feature map上之后,会失去不同大小的特色张量。RoI Pooling先将RoI等分成指标个数的网格,再在每个网格上进行max pooling,就失去等长的RoI feature vector。
文章最初的探讨也有肯定的借鉴意义:
- multi-loss traing相比独自训练classification确有晋升
- multi-scale相比single-scale精度略有晋升,但带来的工夫开销更大。肯定水平上阐明CNN构造能够外在地学习尺度不变性
- 在更多的数据(VOC)上训练后,精度是有进一步晋升的
- Softmax分类器比"one vs rest"型的SVM体现略好,引入了类间的竞争
- 更多的Proposal并不一定带来精度的晋升
小结
Fast R-CNN的这一构造正是检测工作支流2-stage办法所采纳的元构造的雏形。文章将Proposal, Feature Extractor, Object Classification\&Localization对立在一个整体的构造中,并通过共享卷积计算进步特色利用效率,是最有奉献的中央。
Faster R-CNN: 两阶段模型的深度化
论文链接:Faster R-CNN: Towards Real Time Object Detection with Region Proposal Networks
Faster R-CNN是2-stage办法的奠基性工作,提出的RPN网络取代Selective Search算法使得检测工作能够由神经网络端到端地实现。粗略的讲,Faster R-CNN = RPN + Fast R-CNN,跟RCNN共享卷积计算的个性使得RPN引入的计算量很小,使得Faster R-CNN能够在单个GPU上以5fps的速度运行,而在精度方面达到SOTA(State of the Art,以后最佳)。
本文的次要奉献是提出Regional Proposal Networks,代替之前的SS算法。RPN网络将Proposal这一工作建模为二分类(是否为物体)的问题。
第一步是在一个滑动窗口上生成不同大小和长宽比例的anchor box(如上图左边局部),取定IoU的阈值,按Ground Truth标定这些anchor box的正负。于是,传入RPN网络的样本数据被整顿为anchor box(坐标)和每个anchor box是否有物体(二分类标签)。RPN网络将每个样本映射为一个概率值和四个坐标值,概率值反馈这个anchor box有物体的概率,四个坐标值用于回归定义物体的地位。最初将二分类和坐标回归的损失对立起来,作为RPN网络的指标训练。
由RPN失去Region Proposal在依据概率值筛选后通过相似的标记过程,被传入R-CNN子网络,进行多分类和坐标回归,同样用多任务损失将二者的损失联结。
小结
Faster R-CNN的胜利之处在于用RPN网络实现了检测工作的"深度化"。应用滑动窗口生成anchor box的思维也在起初的工作中越来越多地被采纳(YOLO v2等)。这项工作奠定了"RPN+RCNN"的两阶段办法元构造,影响了大部分后续工作。
单阶段(1-stage)检测模型
单阶段模型没有两头的区域检出过程,间接从图片取得预测后果,也被成为Region-free办法。
YOLO
论文链接:You Only Look Once: Unified, Real-Time Object Detection
YOLO是单阶段办法的开山之作。它将检测工作表述成一个对立的、端到端的回归问题,并且以只解决一次图片同时失去地位和分类而得名。
YOLO的次要长处:
- 快。
- 全局解决使得背景谬误绝对少,相比基于部分(区域)的办法, 如Fast RCNN。
- 泛化性能好,在艺术作品上做检测时,YOLO体现比Fast R-CNN好。
YOLO的工作流程如下:
1.筹备数据:将图片缩放,划分为等分的网格,每个网格按跟Ground Truth的IoU调配到所要预测的样本。
2.卷积网络:由GoogLeNet更改而来,每个网格对每个类别预测一个条件概率值,并在网格根底上生成B个box,每个box预测五个回归值,四个表征地位,第五个表征这个box含有物体(留神不是某一类物体)的概率和地位的精确水平(由IoU示意)。测试时,分数如下计算:
等式右边第一项由网格预测,后两项由每个box预测,以条件概率的形式失去每个box含有不同类别物体的分数。 因此,卷积网络共输入的预测值个数为S×S×(B×5+C),其中S为网格数,B为每个网格生成box个数,C为类别数。
3.后处理:应用NMS(Non-Maximum Suppression,非极大克制)过滤失去最初的预测框
损失函数的设计
损失函数被分为三局部:坐标误差、物体误差、类别误差。为了均衡类别不平衡和大小物体等带来的影响,损失函数中增加了权重并将长宽取根号。
小结
YOLO提出了单阶段的新思路,相比两阶段办法,其速度劣势显著,实时的个性令人印象粗浅。但YOLO自身也存在一些问题,如划分网格较为毛糙,每个网格生成的box个数等限度了对小尺度物体和相近物体的检测。
SSD: Single Shot Multibox Detector
论文链接:SSD: Single Shot Multibox Detector
SSD相比YOLO有以下突出的特点:
- 多尺度的feature map:基于VGG的不同卷积段,输入feature map到回归器中。这一点试图晋升小物体的检测精度。
- 更多的anchor box,每个网格点生成不同大小和长宽比例的box,并将类别预测概率基于box预测(YOLO是在网格上),失去的输入值个数为(C+4)×k×m×n,其中C为类别数,k为box个数,m×n为feature map的大小。
小结
SSD是单阶段模型晚期的集大成者,达到跟靠近两阶段模型精度的同时,领有比两阶段模型快一个数量级的速度。后续的单阶段模型工作大多基于SSD改良开展。
检测模型根本特点
最初,咱们对检测模型的基本特征做一个简略的演绎。
检测模型整体上由根底网络(Backbone Network)和检测头部(Detection Head)形成。前者作为特征提取器,给出图像不同大小、不同抽象层次的示意;后者则根据这些示意和监督信息学习类别和地位关联。检测头部负责的类别预测和地位回归两个工作经常是并行进行的,形成多任务的损失进行联结训练。
相比单阶段,两阶段检测模型通常含有一个串行的头部构造,即实现前背景分类和回归后,把两头后果作为RCNN头部的输出再进行一次多分类和地位回归。这种设计带来了一些长处:
- 对检测工作的解构,先进行前背景的分类,再进行物体的分类,这种解构使得监督信息在不同阶段对网络参数的学习进行领导
- RPN网络为RCNN网络提供良好的先验,并有机会整顿样本的比例,加重RCNN网络的学习累赘
这种设计的毛病也很显著:两头后果经常带来空间开销,而串行的形式也使得推断速度无奈跟单阶段相比;级联的地位回归则会导致RCNN局部的反复计算(如两个RoI有重叠)。
【赠书流动】
FightingCV公众号创立一年以来,感激各位老粉和新粉的反对。为了回馈各位粉丝的反对,今后咱们会不定期的进行抽奖、赠书等流动回馈粉丝。
本次赠送4本书,赠送的书籍为《深度学习与指标检测:工具、原理与算法》,赠送对象为FightingCV公众号的浏览榜第一、二名和分享榜第一、二名(浏览榜和分享榜是依据最近15天文章浏览量和分享量的排行榜),开奖日期为9月10日(将在9月10日的推送中颁布名单)。想要参加赠书流动的敌人,请增加小助手微信FightngCV666(备注“城市-方向-ID”),不便分割取得邮寄地址。(包邮哦~)
本次赠书:《深度学习与指标检测:工具、原理与算法》
75折购买链接:
http://product.dangdang.com/2...
本文由mdnice多平台公布