图像识别——目标检测入门之 R-CNN

Posted 百度校园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像识别——目标检测入门之 R-CNN相关的知识,希望对你有一定的参考价值。

点击菜单栏“粉丝福利”
拿小度,兑手机!
作者:罗火火 来源:人工智能学习圈
R-CNN
整体训练流程如图:
图像识别——目标检测入门之 R-CNN

1

选出潜在目标候选框(ROI)

objectness, selective search, category-independent object proposals等很多论文都讲述了候选框提取的方法,R-CNN 使用 selective search 的方法选出 2000 个潜在物体候选框。

2

训练一个好的特征提取器

R-CNN 的提出者使用卷积神经网络 AlexNet 提取 4096 维的特征向量,实际上使用 VGGNet/GoogLeNet/ResNet 等也都可以。发现,AlexNet等网络要求输入的图片尺寸是固定的,而步骤(1)中的 ROI 尺寸大小不定,这就需要将每个 ROI 调整到指定尺寸,调整的方法有多种,可参见图示,其中(a)是原始 ROI 图片,(b)是包含上下文的尺寸调整,(c)是不包含上下文的尺寸调整,(d)是尺度缩放。

图像识别——目标检测入门之 R-CNN
不同压缩方法图示
接下来,为了获得一个好的特征提取器,一般会在 ImageNet 预训练好的模型基础上做调整(因为 ImageNet 预测的种类较多,特征学习相对完善),唯一的改动就是将 ImageNet 中的 1000 个类别的输出改为(C+1)个输出,其中 C 是真实需要预测的类别个数,1 是背景类。新特征的训练方法是使用随机梯度下降(stochastic gradient descent,即 SGD),与前几章介绍的普通神经网络的训练方法相同。
提到训练,就一定要有正样本和负样本,这里先抛出一个用于衡量两个矩形交叠情况的指标:IOU(Intersection Over Union)。IOU 其实就是两个矩形面积的交集除以并集,如下图所示。一般情况下,当 IOU>=0.5 时,可以认为两个矩形基本相交,所以在这个任务中,假定两个矩形框中,1 个矩形代表 ROI,另一个代表真实的矩形框,那么当 ROI 和真实矩形框的 IOU>=0.5 时则认为是正样本,其余为负样本。
至此,R-CNN 的第二步特征提取器可以开始训练了,不过在训练过程中要注意,需要对负样本进行采样,因为训练数据中正样本太少会导致正负样本极度不平衡。最终在该步得到的是一个卷积神经网络的特征提取器,其特征是一个 4096 维特征向量。
图像识别——目标检测入门之 R-CNN
IOU 图示

3

训练最终的分类器

这里为每个类别单独训练一个 SVM 分类器。这里面有个小技巧,SVM 的训练也需要选择正负样本,R-CNN 的提出者做了一个实验来选择最优 IOU 阈值,最终仅仅选择真实值的矩形框作为正样本。
注意 :正负样本的选择比较有讲究,Fast R-CNN 和 Faster R-CNN 是根据 IOU 的大小选取正负样本

4

训练一个回归模型

为每个类训练一个回归模型,用来微调 ROI 与真实矩形框位置和大小的偏差,如图

图像识别——目标检测入门之 R-CNN
R-CNN 中的 ROI 结果微调
下面是所有检测问题都会用到的一块代码:IOU 的计算。
图像识别——目标检测入门之 R-CNN
预测阶段有如下几个步骤:
(1)同样地,使用 selective search 方法先选出 2000 个 ROI。
(2)所有 ROI 调整为特征提取网络所需的输入大小并进行特征提取,得到 2000个 ROI 对应的 2000 个 4096 维的特征向量。
(3)将 2000 个特征向量分别输入到 SVM 中,得到每个 ROI 预测的类别。
(4)通过回归网络微调 ROI 的位置。
(5)最终使用非极大值抑制(Non-Maximum Suppression,NMS)方法对同一个类别的 ROI 进行合并得到最终检测结果。NMS 的原理是得到每个矩形框的分数(置信度),如果两个矩形框的 IOU 超过指定阈值,则仅仅保留分数大的那个矩形框。

以上就是 R-CNN 的全部过程。
原文链接: https://zhuanlan.zhihu.com/p/136690881

以上是关于图像识别——目标检测入门之 R-CNN的主要内容,如果未能解决你的问题,请参考以下文章

图像识别之目标检测

目标检测系列 Mask R-CNN—FPN

深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数

目标检测之YOLO V1

[Python图像识别] 四十五.目标检测入门普及和ImageAI“傻瓜式”对象检测案例详解

目标检测算法之Fast R-CNN算法详解