本博客针对目标检测方面的经典论文,参考现有博客等资料和自己的感想,进行一点总结,方便自己以后看笔记。
首先要明确以下几个术语,方面我们理解:IoU、NMS、One-Stage、Two-Stage
如下图所示,IoU即表示(A∩B)/(A∪B),交并比(可以理解为目标框和锚框的重合度)
NMS是非极大值抑制,为了减少选框(region proposals)的数量。例如一个物体可能有多个选框,但是我们需要一个物体只有一个最优框,于是使用NMS来抑制冗余的框。
举一个例子:某个物体最终得到了A,B,C,D,E,F六个框,按照打分从高到低刚好也是A,B,C,D,E,F。挑选出得分最高的A,然后遍历剩下的候选集,依次计算相对于A的IOU,如果IOU>阈值,则抛弃对应的框(例如:IOU(A,B)>阈值,则抛弃B),否则放回候选集。遍历完后,如果候选集还有元素且元素个数大于1,继续挑选出候选集中得分最高的(例如上一轮只抛弃了B,候选集中是C,D,E,F,那么现在得分最高的的是C),然后遍历候选集,再依次计算(同上),知道候选集中没有元素,或者只剩一个元素。那么留下的就是最优的框。(直观上理解还是会有多个框,我的理解是IOU>阈值就抛弃,杜绝了在同一个区域内重复出现多个框,但是一幅图中可能有多个同类型的目标,例如上图就有两张脸,剩下的多个框一定程度上是标注的多个目标)
One-Stage比Two-Stage少了一步候选框选取(即少了一个RPN网络,Region Proposals Networks),RPN网络的作用主要是判断当前锚框是前景还是背景。少了一个RPN网络,肯定运算速度变快了,但是由于缺少对前景、背景的判断,导致样本中负例太多了,因此准确度会有所下降。如下图所示,其实只是少了一个RPN网络相关东西。可参考https://blog.csdn.net/JNingWei/article/details/80039079
https://blog.csdn.net/weixin_55775980/article/details/116055272
R-CNN是目标检测的开山之作,将CNN、深度学习引入了目标检测中。它的流程如下:
R-CNN的不足:
参考链接:https://zhuanlan.zhihu.com/p/38946391
在Fast R-CNN中,CNN的输入不是来自图像的候选(Region Proposals)区域,而是来自(完整的)实际图像本身;输出不是最后一个扁平层,而是之前的卷积(映射)层。如此生成的卷积映射,使用RoI Pooling (RoI=Regions of interests)来生成对应于每个候选区域的扁平固定长度的Rol,然后传递给一些全连接(FC)层。
ROI pooling:ROI Pooling的作用是对不同大小的region proposal,从最后卷积层输出的feature map提取大小固定的feature map。简单讲可以看做是SPPNet的简化版本,因为全连接层的输入需要尺寸大小一样,所以不能直接将不同大小的region proposal映射到feature map作为输出,需要做尺寸变换。
因此可以看出Fast RCNN主要有3个改进:
Faster R-CNN主要引进了一个RPN网络,代替了前者(Rcnn 和 Fast Rcnn)的SS选择性搜索算法。主要步骤如下:
主要是第二步不太一样,其他步骤都差不多。Faster RCNN抛弃了传统的滑动窗口和SS方法,直接使用RPN生成检测框,这也是Faster R-CNN的巨大优势,能极大提升检测框的生成速度。
如上图,可以看到RPN网络实际分为2条线,上面一条通过softmax分类anchors获得positive和negative分类(softmax判定positive与negative,背景与前景),下面一条用于计算对于anchors的bounding box regression偏移量,以获得精确的proposal。而最后的Proposal层则负责综合positive anchors和对应bounding box regression偏移量获取proposals,同时剔除太小和超出边界的proposals。其实整个网络到了Proposal Layer这里,就完成了相当于目标定位的功能。
提到Faster R-CNN,就不得不提到Anchor,其实RPN最终就是在原图尺度上,设置了密密麻麻的候选Anchor(原论文中设置了9个anchors)。然后用cnn/softmax去判断哪些Anchor是里面有目标的positive anchor,哪些是没目标的negative anchor,所以,仅仅是个二分类而已!
anchors英文翻译为锚点、锚框,是用于在feature maps的像素点上产生一系列的框,各个框的大小由scale和ratio这两个参数来确定的,比如scale =[128],ratio=[0.5,1,1.5] ,则每个像素点可以产生3个不同大小的框。这个三个框是由保持框的面积不变,来通过ratio的值来改变其长宽比,从而产生不同大小的框。
可以参考该知乎博客:https://zhuanlan.zhihu.com/p/31426458
Mask R-CNN 是凯明大神提出的,主要用于“目标检测”、“目标实例分割”、“目标关键点检测”等。
整个Mask R-CNN算法的思路很简单,就是在原始Faster-rcnn算法的基础上面增加了FCN (Fully conv networks,用于语义分割的经典算法)来产生对应的MASK分支。即Faster-rcnn + FCN,更细致的是 RPN + ROIAlign + Fast-rcnn + FCN。Mask R-CNN算法步骤:
其实只有第四步和第五步不同。
将ROI Pooling 替换成了ROI Ailgn而已。因为ROI Pooling 是量化操作,四舍五入的那种,在目标检测中没有影响,但是在实例分割中影响很大,具体解释可以参考https://blog.csdn.net/WZZ18191171661/article/details/79453780
最后再加一个Mask branch分支。
Mask R-CNN可参考https://blog.csdn.net/remanented/article/details/79564045
YOLO是One-Stage算法,去掉了RPN网络,即去掉了前景和背景的分类层,速度变快了,但是负样本增多了。
结合下面这张图,就比较好理解了
YOLO算法的缺点:
1、位置精确性差,且对于小目标物体以及物体比较密集的也检测不好,比如一群小鸟(因为它是划分网格的嘛,划分为7*7)。
2、YOLO虽然可以降低将背景检测为物体的概率,但同时导致召回率较低(这就是没有RPN网络的缺点了,背景图太多了)。
参考链接:
https://blog.csdn.net/xiaohu2022/article/details/79211732
https://blog.csdn.net/u014380165/article/details/72616238
https://www.cnblogs.com/smiorboy/p/11880903.html
SSD网络是继YOLO之后的one-stage目标检测网络,是为了改善YOLO网络设置的anchor设计的太过于粗糙而提出的,其设计思想主要是多尺度多长宽比的密集锚点设计和特征金字塔(Pyramidal Feature Hierarchy),对小目标的检测有较好的效果。先看SSD的网络结构:
Defalut box生成规则:
为提高目标的识别准确度,该网络预设了多种尺度的目标检测框(Defalut box),每个目标检测框获得的feature map通过softmax分类+bounding box regression获得真实目标的位置。Defalut box是以feature map上每个点的中点为中心(offset=0.5),生成一系列同心的Defalut box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置),使用m(SSD300中m=6)个不同大小的feature map 来做预测,最底层的 feature map 的 scale 值为 Smin=0.2,最高层的为Smax=0.95,其它层有公式计算。
LOSS:
最后,将经过NMS后的BB,计算相应的default box与目标类别的confidence loss以及相应的位置回归。
Hard Negative Mining技术:
一般情况下negative default boxes数量是远大于positive default boxes数量,如果随机选取样本训练会导致网络过于重视负样本(因为抽取到负样本的概率值更大一些),这会使得loss不稳定。因此需要平衡正负样本的个数,我们常用的方法就是Hard Ngative Mining,即依据confidience score对default box进行排序,挑选其中confidience高的box进行训练,将正负样本的比例控制在positive:negative=1:3,这样会取得更好的效果。如果我们不加控制的话,很可能会出现Sample到的所有样本都是负样本(即让网络从这些负样本中找正确目标,这显然是不可以的),这样就会使得网络的性能变差。
参考博客:
https://www.cnblogs.com/MY0213/p/9858383.html
https://blog.csdn.net/qq_42732137/article/details/106120464
https://blog.csdn.net/weixin_39749553/article/details/88086486