经典目标检测算法

454 阅读2分钟

faster rcnn

faster rcnn巧妙地利用了anchor,仿佛搭建了一个楼梯,使预测值能够通过anchor这一先验候选框,不断修正,一级一级靠近GT。此外rpn的众多筛选手段也有效地解决了正负样本不平衡的问题。

backbone

通常会使用VGGNet或者ResNet50,101,通常下采样率16.

RPN

faster rcnn最大的亮点在于RPN模块,主要有以下几部分组成: 1)anchor的生成:在特征图上的每个像素点生成长宽比,尺度不同的9个anchors。 2)rpn卷积网络:预测anchor的类别(二分类),以及偏移量。这里需要注意的是anchor有真值和预测值两个概念。anchor的类别真值通过anchor和GT之间的IoU确定,偏移量真值是指anchor与GT之间的偏移量。每个anchor生成需要与对应的GT匹配,从而求得真值。而anchor的预测值是指通过卷积网络预测出的类别值以及偏移量(包括中心坐标偏移量和wh尺度偏移量)。 3)proposal的筛选:首先按照分类置信度得分排序,筛去top12000,再根据NMS筛选2000个,在从中筛选256个正负样本。保证了正负样本平衡。

ROI pooling

由于proposal的尺寸不同,需要统一到7*7,roi pooling有两次取整的过程,一是proposal的xy坐标取整,二是尺寸除以7时取整,两次取整影响回归精度。因而在mask rcnn 中用roi align,双线性插值求池化后的特征值,而xy不需要取整。

SSD

backbone

同样使用VGGNet,但在conv6处采用了空洞卷积,不改变特征图尺寸,增加了感受野。

priorbox

类似faster rcnn的anchor,ssd构建了priorbox作为先验候选框,并在多个特征图上生成不同尺度的priorbox(但是没有融合,仅构建了图像金字塔)。priorbox的真值匹配如faster rcnn 类似。在计算损失时,正样本参与定位损失计算,计算类别损失时,为了保证正负样本平衡,按照负样本损失排序,选出损失大的难样本,正负样本比为1:3.

yolov1

无锚模型

特征图

特征图上没有先验框,直接在每个区域预测类别,边框位置。

yolo v2