RCNN的演变

详细信息可参考: http://zh.gluon.ai/chapter_computer-vision/rcnn.html

1. 早期传统的目标检测或者图像分类,对整个图像或者图像滑窗截取的方式,计算对应的特征,获取特征的方式使用梯度计算,比如hog,lbp,sift,orb,surf等进行特征描述,获取特征后,把特征放入分类器,进行特征分类。如果是整幅图像放进去,就能够实现特征分类,如果是滑窗截取的方式就是目标检测。

 

2. 接着是r-cnn(其中r表示region)的出现,在传统图像处理的思路上,主要考虑到使用卷积神经网络来提取图像特征,这样就省去了传统图像特征描述子对特征的提取了。同样也存在对图像不同区域的选择,区域选择的方法是启发式搜索(selection search)的方法,通过该方法获取图像中不同区域框(会对不同框resize到相同尺寸),然后使用卷积神经网络获取特征,对获取的特征使用svm进行框的分类,因此也就确定了框的位置。

 

3. 接着是fast-rcnn的出现,在rcnn的基础上,目的为了解决使用启发式搜索导致的大量重叠框的出现问题,如果每个框都进行卷积的话会比较浪费资源,所以fast-rcnn先对图像提取特征,然后在特征图上使用selection search的方法选取区域。这样就节省了大量重叠区域的卷积开销。另外把之前的多个svm二分类转化为了单个多分类softmax。

 

又因为每个selection search选取的区域大小是不一致的,如果使用resize到相同尺寸的方法,会导致卷积神经网络无法反向传播求导,所以此处使用的是ROI pooling的方式,将框分割到相同大小的尺寸,方便之后进入全连接层实现分类和框的回归。

 

ROI pooling解释:对卷积之后的特征,使用selection search方法获取框,在框上面划分成n x m 大小的格子,然后对每个格子中选取最大的值保留,作为该格子的唯一值。最终就变成了n x m 大小的框。

 

实例说明:

4. 接着是faster-rcnn的出现,在fast-rcnn的基础上,为了解决selection search这个传统图像检测中框选择运行比较慢的问题,把selection search部分使用了region proposal network(rpn)方法来代替。

(两幅图表示的意思一样,一个是中文一个是英文而已)

region proposal network(rpn):以特征图上的每个像素点生成n个大小形状不同的框,成为锚框(anchor box)。这个n个框的生成依赖于预定的生成框的大小和比例决定。

 

我们对生成的每个锚框进行卷积提取特征,然后进行bounding box regression判断与真实框的距离,以及进行二分类判断是否为前景框。将初步判定为存在物体的目标框送入ROI pooling中,处理后使用全连接提取特征,最后进行softmax分类,和微调(refine)检测框,使其生成更精确的目标框。

 

5. 接着是mask-rcnn的出现,在faster-rcnn的基础上,在mask-rcnn中添加了全卷积神经网络分支。训练时需要添加像素级别的类别和位置信息,以此提高目标检测准确率。

另外,mask-rcnn还提出了使用ROI align来替换ROI pooling层,这是因为对于像素级别的预测,如果出现像素偏差就会导致掩码预测出现问题,而ROI pooling的操作必然会导致这样的问题,为了解决这个问题,提出了ROI align。ROI align就是在划分区域时取消ROI pooling类似的量化操作,使用双线性差值对的方式获取浮点座标对应的像素值,从而使得整个特征聚集过程转化为一个连续的操作。

 

ROI align操作说明:假设首先经过卷积神经网络操作,然后经过区域提议网络操作之后feature map中regin proposal network获取不同anchor大小的框,假设其中一个框的大小为20.78 * 20.78,接着到达ROI align层,需要把feature map 切割成7 * 7大小的块(ROI align中的pool_size为7 * 7 ),那么每块的大小为20.78 / 7 = 2.97,即没一小块的大小为2.97 * 2.97,然后在这个2.97 * 2.97 大小的块中平分n个点,比如平分4个份等,取每一份的中心点,获取方式是使用双线性插值的方法,这样就会得到四个点,对这四个点取最大值,就成为了7 * 7大小的其中一块的像素值。可参考下面两图,第一个为示意图,第二个为实际取值图。

 

RCNN整体发展的总结:

  • R-CNN对图像选取若干提议区域,然后用卷积神经网络对每个提议区域做前向计算抽取特征,再用这些特征预测提议区域的类别和边界框。
  • Fast R-CNN对R-CNN的一个主要改进在于只对整个图像做卷积神经网络的前向计算。它引入了兴趣区域池化层,从而令兴趣区域能够抽取出形状相同的特征。
  • Faster R-CNN将Fast R-CNN中的选择性搜索替换成区域提议网络,从而减少提议区域的生成数量,并保证目标检测的精度。
  • Mask R-CNN在Faster R-CNN基础上引入一个全卷积网络,从而借助目标的像素级位置进一步提升目标检测的精度。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章