目标检测经典网络之R-CNN

一、目标检测(Object detection)

图像识别是输入一张图像,输出该图像对应的类别。

目标检测输入是一张图像,但输出不单单是图像的类别,而是该图像中所含的所有目标物体以及它们的位置,通常使用矩形框来标识物体的位置。

大部分的目标检测方法流程是:生成区域候选框,对这些区域框提取特征(SIFT 特征 、HOG 特征、CNN),使用图像识别方法(SVM、CNN),得到所有分类成功的区域后,通过非极大值抑制(Non-maximum suppression)输出结果。

二、候选框(bounding boxes)

区域候选框的生成主要有两种方法,一种是穷举法;一种是选择性搜索。

穷举法:也叫滑窗法。使用不同大小的窗口在图片上从左到右,从上到下滑动,每次滑动就是一个候选框,由于是全局搜索而且要考虑窗口的长宽比,计算量大、效率低下。

选择搜索(Selective Search):首先,使用图像分割(边缘等特性)算法,分割出许多小区域;然后,根据这些小区域之间相似性(颜色、纹理等)进行区域合并,不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做bounding boxes(外边矩形)就生成了候选框。

三、R-CNN:Region-CNN

整体结构:

利用Selective Search算法生成Region proposal -> warped region缩放到统一大小 -> CNN -> FC -> linear SVM、regression 

训练过程细节:

1、先预训练AlexNet,使用的是ImageNet数据集,按照分类任务有监督pre-training;

2、微调(fine-tuning),使用的是pascal-VOC数据集

      输入为warped region proposal,输出为21维类向量。(与pre-training网络的唯一改变是由输出1000类改为输出21类)。包括20类目标和背景。把与ground truth的IoU>0.5的region proposal作为正例,其余为负例,即背景。每个batch里包含32个正例,96个负例共128个。学习率为0.001,是pre-training的1/10,为了不破坏训练的结果。

3、训练SVM分类器

训练某类别的SVM,与该类目标的groud-truth的IoU>0.3的region proposal 的特征向量作为正例,其余作为负例。

4、训练bounding box regression

测试步骤:

1、使用selective search得到测试样本的候选框,处理得到warped region

2、送入到模型进行类别预测和回归

3、将预测结果按照概率大小排序,采用NMS,也就是选出概率最大的region,然后删除和它的region的IoU超过指定阈值的其他region,重复这个步骤直到没有候选框。筛选出最终得到的检测框。

发布了28 篇原创文章 · 获赞 19 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章