目标检测算法(一)RCNN

深度学习的目标检测:

数据驱动进行表示学习

根据训练数据自适应构建特征提取器

缺点

需要大量有标注数据

学习过程和所学到的表示难以解释

高度非线性

RCNN关键词:

1候选框 selective research

2对于候选框的分类与回归

流程:

image--->产生近2000个候选框--->对每个候选框输入到卷积网络--->CNN后的特征分别放入BBOX回归和SVM二分类器

目标检测算法(一)RCNN

RCNN

RCNN使用CNN提取特征,不使用滑动窗口

RCNN用有监督预训练解决表示学习需要大量有标注数据问题

生成少量候选区域减少计算量

RCNN存在的问题:

由于候选框大小不一致,卷积后的特征map也是大小不一致的,所以不能够共享网络。

两阶段检测器:1.生成可能包含物体的候选区域 2.对候选区域进行进一步分类与校准,得到最终的结果。 未能实现端到端

Select Search算法:

目标检测算法(一)RCNN

分割的形式将像素分割成许多小块,如果相邻两个小块相似程度很高,进行合并(形成多个区域)


1.多个小区域集合R,初始化相似集合为空集S

2.计算相邻区域之间的相似度,放入s,集合s保存一个区域对以及他们之间的相似度。

3.找出s中相似度最高的区域对,将他们合并,从s中删除与他们相关的相似度和区域对,放入集合s中,并将这个新区域放入R中。重复这个步骤,直至S为空。

4.从R中找出所有区域的boundingbox,这些bounding box 就是物体可能的区域。

相相似度度量:

1.颜色相似度

2.纹理相似度

3.尺寸相似度

4.填充相似度

以上相似度度量方式计算出来的值都会被归一化到区间[0,1]。

使用SVM进行分类:

  使用SS算法生2000个左右的候选框,对候选框框出的图像进行缩放至固定大小。

将固定大小的图像输入到CNN生成固定长度的特征向量。使用CNN生成的特征向量进行分类。

RCNN中的SVM是一个二分类器。

当bounding box只含有部分物体时,如何定义正负样本?使用IOU原则(intersection-over-union)

  IOU:用来描述两个框的重合度。(可以理解成预测出来的框与原来图片标注的框的重合度)

  IOU=(box1∩box2)/(box1∪box2)当生成的候选框包含原图标注框(ground-truth)部分内容时,需要一个阈值以判断该region proposal属于正、负样本。当IOU大于某一个阈值时,为正样本。小于某一个阈值,为负样本。对于同一个物体可能产生多个候选框,使用非极大抑制去除冗余框。

为每一个类别训练一个SVM分类器。根据论文中CNN输出的特征2000个227*227的候选框图像

即2000*4096这样的特征向量矩阵与4096*N点乘。N是分类类别数目,因为要训练N个SVM,每个SVM包含4096个权值。

边框回归:

边框四元组(x,y,w,h)x,y用于标定框的中心位置。w,h用于记录框的大小。

边框回归:主题思想就是对于输入的proposal窗口P,寻找一种关系使得P接近Ground Truth窗口G.得到G'.

边框回归的做法:平移与缩放。

参考https://blog.csdn.net/zijin0802034/article/details/77685438非常详细。