R-CNN
2014年由Ross Girshick提出
算法流程
输入图像,使用Selective Search方法生成1K~2K个候选区域
对每个候选区域,使用深度网络提取特征
将特征送入每一类的SVM分类器,判别是否属于该类,对每一类进行非极大值抑制剔除重叠建议框
使用回归器精细修正候选框位置
Fast R-CNN
同样使用VGG16作为网络的backbone,与R_CNN相比,训练速度快9倍,测试推理快213倍,准确率从62%提升至66%
算法流程
输入图像,使用Selective Search方法生成1K~2K个候选区域
将图像输入网络得到相应的特征矩阵,把候选框投影到特征图上获得相应的特征矩阵
每个特征矩阵通过ROI pooling层缩放到$7 \times 7$大小的特征矩阵,接着将特征矩阵展平,通过一系列全连接层得到预测结果
Fast R-CNN多任务损失
Faster R-CNN
2015年提出,同样使用VGG16作为网络的backbone,推理速度在GPU上达到5fps
算法流程
将图像输入网络得到相应的特征矩阵
使用RPN结构生成候选框,将候选框投影到特征图上获得相应的特征矩阵
每个特征矩阵通过ROI pooling层缩放到$7 \times 7$大小的特征矩阵,接着将特征矩阵展平,通过一系列全连接层得到预测结果
Region proposal network
在特征矩阵上使用$3 \times 3$的滑动窗口,投影到原图上,选取三种尺度($128^2, 256^2, 512^2$)、三种比例($1:1, 1:2, 2:1$)的anhor,每个位置在原图上都对应有9个anchor
对于一张$1000 \times 600 \times 3$的图像,大约有$60 \times 40 \times 9$个anchor,忽略跨越边界的anchor,剩下大约6K个anchor。RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图像只剩2K个候选框。