RCNN的理解

一、IOU的理解

物体检测时需要定位出物体的bounding box,与此同时还要识别出bounding box中的物体是什么。因此对于bounding box的定位精度有个重要新概念IOU(算法标注和人工标注的数据肯定不能百分之百匹配)如图。

IOU定义了两个bounding box的重叠度。

矩形框A、B的重叠度IOU计算方法:IOU=(A∩B)/(A∪B)

A、B矩形框的重叠面积与他们面积的并集之比。

二、非极大值抑制

对于RCNN来说,会从图中找出多个可能是物体的矩形框,然后为这些矩形框做类别分类概率,如下图,定位一个车辆,检测出多个可能是车辆的矩形框,我们此时需要判断哪些框有用哪些无用。

非极大值抑制:假设检测出6个框,分别叫ABCDEF,根据分类器的分类概率进行排序,假设从大到小的概率为ABCDEF

  第一步、将概率最大的框A,分别与BCDEF框计算出IOU是否大于某个阈值(阈值是设定的)

  第二步、假设BC与A的IOU大于阈值,则丢去BC,然后标记A是我们保留的

  第三步、此时剩下DEF,从DEF中选择概率最大的D,让EF分别与D计算IOU值,如果大于阈值则丢去,标记D为我们保留的

  第四步、不断重复,找到所有被保留下来的矩形框

三、RCNN

算法思想:1.找出候选框   2.用CNN对其提取特征向量  3用SVM进行特征向量分类如图

RCNN思想

3.1搜索候选框

当给出一张图片时,我们需要搜索出所有可能是物体的区域,采用的算法是Selective Search,通过该算法,找到2000多个候选框。从上图可知,候选框都是矩形,但是大小不同,根据步骤,接下来是进行cnn特征提取,但是我们知道,CNN对输入图片的大小是固定的,因此对于候选框我们需要缩放到固定大小。方法:

1).各向异性缩放

不管图片长宽比例,不管是否扭曲,只管缩放到cnn要求的比例。图(D)

2).各向同性缩放

考虑到图片扭曲会对分类精度有影响,提出各向同性缩放

a.将bounding box的边界向外延伸,使图片成正方形,然后裁剪。如果延伸到原来图片的外边界,则用bounding box中的颜色补齐。图B

b.先将bounding box中的图片裁剪出来,然后用固定的背景颜色填充成正方形(背景颜色是bounding box的像素颜色均值)图C


得到指定大小的图片后,我们用IOU为这些候选框打标签,如果用算法selective search挑选出来的候选框与与人工标注的候选框的IOU大于0.5,则该候选框标注为物体,否则标注为背景类别。

3.2.网络初始化

直接用Alexnet的网络,然后连参数也是直接采用它的参数,作为初始的参数值,然后再fine-tuning训练

假设要检测的物体类别有N类,那么我们就需要把上面预训练阶段的CNN模型的最后一层给替换成N+1个输出的神经元(加1,表示还有一个背景),然后这一层直接采用参数随机初始化的方法,其它网络层的参数不变;接着就可以开始继续SGD训练了。开始的时候,SGD学习率选择0.001,在每次训练的时候,我们batch size大小选择128,其中32个正样本、96个负样本。

推荐阅读更多精彩内容