############目标检测之RCNN系列###########
RCNN(2014)
Fast R-CNN(2015)
Faster R-CNN(2015、2017、unified)
yolo(2016、unified)
SSD(2016)
yolo2(2017)
yolo3(2018)
RCNN必须将区域框中的图像缩放到统一大小(具体是先框再缩放再卷积提取特征);
SPPNet使用ROI池化(具体是先整体卷积提取特征再框再ROI池化),得到长度一样的特征,因为只卷积一次效率高很多;
(SPPNet无需输入固定尺寸的图像,都可以生成长度固定的特征向量;
因为它是相对自己本身的长宽分割的,如长宽厚度分别为h、w、c,得到特征的总是16c+4c+c=21c,其中h、w已经被消掉了;)
(SPPNet让图像只需一次卷积提取特征;)
(SPPNet独立于具体的CNN结构,即任何CNN都可以使用SPPNet来改进;)
(ROI池化是SPPNet提出的;Pyramid pooling和RoI Pooling啥关系?一回事)
RCNN和SPPNet共同点:都使用Selective Search得到区域框,最后都使用SVM分类,特征都写到磁盘,都是multi-stage pipeline
(这里的SVM是多分类的,即one-vs-rest linear SVM;)
(RCNN和SPPNet整体上可看成3个阶段;)
FAST-RCNN不再使用SVM分类,而是使用神经网络,这样就可以同时训练特征提取网络和分类网络,比SPPNet效率更高
FAST-RCNN相对SPPNet,同时完成了提取特征、判断类别、框回归三项工作(不考虑proposal是single-stage的),见论文fig1
(首先假设得到了一个image和多个RoI(通过SS获得),然后先后进行FCN和RoI Pooling;)
(对每个RoI都有一组softmax和bbox回归的loss;但前面用于提取特征的FCN只有一个,被整个image使用;)
(每个RoI被映射为长度相同的特征向量,也叫RoI Pooling;)
(每个RoI位置由左上角坐标和宽高确定;)
(FAST-RCNN整体上可看成2个阶段;)
FASTER-RCNN相对FAST-RCNN,RPN网络取代了Selective Search,其中每个位置对应9种尺寸的anchor box即锚框,最后也有框回归和分类;训练方式多种多样
RPN(Region Proposal Networks)是一种几乎cost-free的region proposal,是一个FCN卷积网络,同时预测是否物体以及物体边界;
RPN先训练好,再给Fast R-CNN提供区域框(也可以一起交替训练);
RPN和Fast R-CNN合并成FASTER-RCNN,就算是一个网络(共享卷积特征、attention mechanisms);
网络主体采用VGG-16或resnet等;后面的Fast R-CNN仍然有RoI pooling;
RPN告诉Fast R-CNN该看哪个地方(attention mechanisms);
(The RPN module serves as the ‘attention’ of this unified network.)
RPN输入为任意size的image,输出为矩形框(每个框有是否包含物体的得分objectness score);
RPN不管类别,只是FASTER-RCNN的第一阶段,原论文fig2是整体,fig3是rpn;
RPN中,有一个小窗口,以类似滑动窗口的方式,在经过卷积后的特征输出上滑动,得到box回归层reg和box分类层cls;
通常取k=9个anchor box(3个尺寸、3个比例);
(常见的比例有1:1、1:2、2:1,常见的尺寸有128128、256256、512*512;)
由于每组anchor box是上下左右对称出现,所以RPN是translation invariant的;
(MultiBox利用k-means生成更多anchor,模型更大,且它不是translation invariant的;)
RPN也是一种处理多scale的方式(其他方式还有图像金字塔,即图像缩放,但耗时),RPN基于pyramid of anchors;
(图像金字塔是图像缩放(即pyramid of filters),而RPN是图像不动,anchor在动;)
reg和cls以一定的比例构成loss训练RPN;以B