R-CNN

R-CNN

目标检测+深度学习开山之作

CVPR'14

paper:Rich feature hierarchies for accurate object detection and semantic segmentation

亮点

  • 使用selection search(region proposal)生成候选框
  • 使用AlexNet提取特征
  • 使用SVM对CNN提取的特征进行分类
  • 使用Bounding box回归出更加精确的框

网络结构

整个流程

  • 输入一张图片(任意大小)
  • 在图像上应用selection search方法得到2000个候选框
  • 对候选框进行裁剪、缩放得到227*227大小的图像块
  • 使用预训练好的AlexNet作为特征提取器
  • 使用训练好的SVM作为分类器
  • 使用NMS除去重复的框
  • 使用训练好的bounding box 回归修正候选框

Selection Search

划分为小块,对相邻的块计算图像相似度,合并相似的块,重复这个过程,最后得到候选框。

指标包括颜色、纹理、区域大小和区域的合适度

图像处理

填充后再裁剪

裁剪后再填充

直接缩放到目标尺寸

论文对比发现直接缩放到目标尺寸+在图像周围填充16个像素(基于上下文)效果比较好。(也可以根据原始图像的像素决定填充的像素数)

特征提取

使用fine-tune,保留AlexNet前五层。AlexNet在大型的数据集上训练。

fune-tune

分类器

使用SVM*预测种类数量个分类器。

NMS

非极大抑制

按照得分排序,除去和最大得分框IOU大于阈值的框,不断筛选。

预测框修正

附录C

输入\((G, P)\)\(G\)是GT bounding box,\(P\)是predict bounding box。

\(P\)除去了那些和任何GT都不沾边的框,这些框拿来训练没意义。

\(t^i_*\)是由\(G\)\(P\)计算得到的,包括中心点偏移量和长宽的缩放比例。

hard negative mining

hard negative mining

主要由样本量引起。

方法:把难以训练的样本放入训练集中进行训练。

在文中特征提取部分和分类器部分使用有点区别,fine-tunning阶段是由于CNN对小样本容易过拟合,需要大量训练数据,故对IoU限制宽松: IoU>0.5的建议框为正样本,否则为负样本; SVM这种机制是由于其适用于小样本训练,故对样本IoU限制严格:Ground Truth为正样本,与Ground Truth相交IoU<0.3的建议框为负样本。

缺点

select search只能在CPU上处理,速度慢

每次输入2000+个候选框,有大量的重复计算,速度很慢

特征提取、分类、边框回归是三个部分分别训练

需要额外的存储空间

posted @ 2021-08-17 17:10  xiaowk5516  阅读(61)  评论(0编辑  收藏  举报