R-CNN:region convolutional neural network
将一张完整图片分成若干区块,依次喂给CNN网络,得出分类结果,和回归坐标(x,y,w,h)。
1、R-CNN产生边界框坐标以减少定位误差;所以一个区域输入,它的输出可能不完美地围绕给定的对象,输出坐标(x,y,w,h)旨在完美地定位给定区域中的对象。
2、R-CNN没有明确地产生表示对象是否在区域中的置信度得分,而是巧妙地产生一组类别得分,其中一个类是“背景”。这最终起到了类似的作用,例如,如果一个区域的类得分是Pbackground = 0.10,它可能包含一个对象,但如果它的Pbackground = 0.90,那么该区域可能不包含一个对象。
Fast R-CNN
CNN :事先训练出一个可以提取特征图的模型
RoI :将一张完整图片通过CNN投影到较小的特征图中,特征图中的每一层对应于原始图像中的较大区域,最后依次进行全连接获得分类结果,通过NMS和IoU去筛选出结果。
RoI Pooling:添加max poolling 可以让模型适应不同尺寸图片的输入
Faster R-CNN
Faster:在RoI获得之后列进行快速二进制分类
对于每个ROI,它检查该区域是否包含对象。接着和fast R-CNN一致
YOLO v3:You only look once
1,每个anchor定义了多分类,上边的网络都是二分类的叠加
2,把一整图片划为NxM个gridcell,假若每个区块的有a个anchor且为b分类,并标出所有对应的groundtruth为n*m(a*(b+1+4))喂入网络进行训练
3,预测:先进行NMS,使用所有anchor中Pc最大的anchor作为参考,并和它进行IoU运算,大于某个值需剔除,剩余的再选出最大Pc的anchor做参考循环剔除(anchor 是指grid cell对应的所有anchor,它们之间不需对比,可直接保留)
IoU(Intersection over Union)
NMS(Non-Maximal Suppression)
SSD:single shot multibox detector
新概念:default box,是指在feature map的每个小格(cell)上都有一系列固定大小的box,假设每个feature map cell有k个default box(对应卷积核),那么对于每个default box都需要预测c个类别score和4个offset,那么如果一个feature map的大小是m*n,也就是有m*n个feature map cell,那么这个feature map就一共有(c+1+4)*k*m*n个box(实际code是用k个3*3卷积核对该层feature map进行卷积,比如卷积核数量为c*k对应confidence输出,表示每个default box的confidence,就是类别;卷积核数量为4*k对应localization输出,表示每个default box的坐标,针对每一层会使用不同数量的卷积核)。作者的实验也表明default box的shape数量越多,效果越好。
default-box和YOLO中的anchor很像,在yolo中anchor只用在最后一个卷积层,但default-box是应用在多个不同层的feature map上,运作在VGG16上的SSD最终可以达到8732个box
SSD详解