您的位置:首页 > 其它

目标检测之RCNN系列浅析

2018-01-13 13:57 579 查看
对目标检测的深度学习算法也不是很熟,这方面都快被大牛们写烂了,这里仅根据近期自己的理解小记一下,如有偏颇望不吝指正。

RCNN(Regions
with CNN features)系列是由RossB.Girshick于2014年提出,基于CNN良好的特征提取及分类性能,通过region
proposal实现目标检测。

首先上一张图,rcnn艰辛的进化历程,至于yolo,ssd后面再续吧...



第一行"24x"表示测试速度SPP相对于RCNN提速24倍左右,第二行每个框里的数据表示对应网络依然存在的问题。

下面讲解下每个网络的框架细节(网络框架均基于Alexnet):

RCNN:

有图才会更清晰



Rcnn流程框架
步骤:
1、input图像做预处理,缩放到224x224;
2、select search提取候选区域RP(region proposal);
3、每个RP通过crop/warp处理到固定大小尺寸,分别输入到CNN的卷积层进行卷积计算FM(feature map);
4、第五层卷积得到的FM,基于线下训练的SVM分类器进行class;
5、将FM送到全连接层fc,执行bounding box regression;
缺陷:
1、第三步每个RP处理到固定大小,这是因为fc层接受与其相连卷积层的固定大小输出;
2、第三步,每个RP都要通过CNN卷积提一遍特征,2k个候选区域重复太多,造成资源的巨大浪费;
3、SVM分类器的训练为线下执行,一是占用大量的磁盘空间,二是cnn训练阶段无法整体调参

SPP:
 


SPP主要工作



sppnet

显然由spp的主要工作可知:
1、开始阶段不再对region proposal 进行crop/warp的操作,而是将整张图片作为input输入;2、将RP的提取任务交给spatial pyramid pooling去做
这样做的目的一个是避免多次提取特征造成资源浪费,另外就是避免了crop/warp的形变带来的准确率下降。
实际上sppnet就是构造了一个多尺度金字塔池化层。
首先,input img  先经过select search算法获取约2k个RP的localtion;
其次,通过conv->pooling的stride、padding等操作将ss得到的RP映射到特征图conv5
然后,通过sppnet多个尺度(如4x4、2x2、1x1等)的网格对每个RP进行固定尺寸转换,以满足fc层的输入
sppnet提取的特征一方面用于svm的训练,另一方面做bbox的regression。
存在的问题:
1、依然采用svm做线下计算,我觉得这一步完全可以用softmax计算loss了,再与bbox reg并行。然而实际上在fastrcnn作者才开始这样考虑;
2、svm的线下计算存在磁盘空间的浪费
fast rcnn:



FastRcnn流程框架
fast rcnn的创新点简单说就是上面提到的一个是替换了svm,采用softmax,证明效果还是好点的,另外一个就是多任务
损失,将分类和回归的loss加权求和合并计算。
燃鹅,现在还是不能达到end2end的训练方式,不要忘了,还有个select search没有被统一起来,这个ss还是相对很耗时的,
据说2s/m(没有实测)。这就是接下来faster rcnn的任务了。
faster rcnn:



faster rcnn 的框架结构
faster rcnn主要针对耗时的ss进行改进,为了能统一到同一个网络架构下,实现end2end的训练方式,提出了RPN(region
proposal net),通过rpn反向映射锁定出一定的anchor区域作为RP。下面具体介绍下:
RPN:
rpn的处理是从最后一层卷积特征图51*39*256开始的,以3*3的滑动框口在feature map上滑动,其中padding=2,stride=1。
假定这个3*3的窗口是原图上不同的anchor通过spp得到,每个anchor就代表了我们想要得到的RP了。具体是将每个3*3的中心点映
射到原图某个位置,以该位置为中心,以1:1、1:2、2:1的面积区域crop出k个RP。然后针对feature map的每个中心点输出2k个cls分
类和4k个reg位置

985f
rpn两个loss层的说明: 
最后还有两个loss层,这里的class-loss指代的不再是前景背景loss,而是真正的类别loss了,这个应该就很好理解了。而
bbox-loss则是因为rpn提取的只是前景背景的预测,往往很粗糙,这里其实是通过ROI-pooling后加上两层全连接实现更精细的box
修正(引用)

如上所述,faster rcnn准确率更高,不过速度仍有更大的优化空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rcnn