文章目录
1、R-CNN
- 1 SS(selective search)算法取候选框:graphcut分割图像产生候选框:优先合并四种区域:颜色(直方图)、纹理(梯度直方图)
- 2 对每个候选框非等比缩放到固定尺寸,再用独自的CNN提特征(2000左右)
- 3 SVM分类:每个类别对应一个svm,Iou>0.5正,<0.3负
- 4 bbox回归:这里仅对IOU>0.6的进行回归
- 5 测试
map
2、SPP net(spatial pyramid pooling)(将rcnn的pooling5改为spp+共享cnn)
- 共享卷积层前五个cnn layer
- 空间金字塔SPP(用44,22,11(原图) 网格叠在任意长宽的256个特征图上,对每一个小格取max分别得到16256+4256+1256固定长度的向量=5376
- 对特征图上目标位置与原图位置一致
(以上RCNN,SPP都是需要离线存储特征文件训练,非端到端)
3、fast R-CNN(+Roi pooling+端到端+多任务损失)
- 对特征图ss,得到Roi,再找对原图的映射区域
- ROI pooling(特殊的SPP空间金字塔池化,只取4*4个bin格子)
- 多任务损失
- 位置预测(平移——缩放)
- 位置预测(平移——缩放)
- 时间花在了roi的框的选择上
4、faster R-CNN通用检测框架
- Region Proposal Network
- cls loss(前景背景)
- bbox loss (初步定位回归)
- FCN(VGG+1*1)
- 4个loss
- 通用的框架,适合任何检测(几分类自己定义,看数据集怎么标记)
读论文Faster R-CNN:Towards Real-Time object detection with region proposal networks
- 作者思路更直接
- 先读整体,再读细节,读5遍,效率高的时候读
- 能力检测和培养
读原文
- 前算法问题在候选框的提取上花费时间(CPU-GPU)
- RPN,anchor,9个框3个比例
- caffe源码,matlab和python接口看起来简单些
- tensorflow重现,
- loss
- 二分类标签产生的框与标记的ground truth IOU>0,7是正,负例-IOU<0.3 ,这里将0.3到0.7之间的弃用
- 非极大值抑制,一张图中,为每个类别预测出区域的得分排序,分别求非最高分与最高分区域的IOU,如果>0.5则剔除,否则保留为下一个新候选集
- 排序top-N的proposal,回归调整框