一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情。
RCNN
计算机视觉是一个跨学科的领域,随着卷积神经网络的出现,再次推动了计算机视觉各个任务向前发展。还有无人驾驶也再次对计算机视觉任务提出新的要求。
在计算机视觉一个主要任务就是目标检测,以目标检测为基础的实例分割、姿态估计和跟踪也是当下主流的研究方向。
多目标检测问题要比图像分类复杂得多,图像分类问题,往往图像中只有一个我们感兴趣的类别,而目标检测问题中,图像中有多少个我们感兴趣目标我们并不知道,而且我们不但要判断有多少个要检测目标,这些目标分别属于什么类别,而且还需要给出其位置所在,我们需要拥有边界框将目标物体括起来来表示目标物体的位置。
虽然距离 2014 年提出 RCNN 网络已经过去快 8 年了,不过现在的目标检测 2 stage 网络大概 pipeline 还是准寻这当年 RCNN 基本思想。
解决目标检测一般思路
多目标检测,也就是一张图像中,可能存在多个目标(我们感兴趣)的物体,在目标检测任务,或者说多目标检测,我们需要对图像中出现的目标,不但要说出图像中的目标所属的类别,还要给出其位置信息。那么一个比较朴素想法,既然我们分类已经做的很好,我们能不能将目标检测问题转化为分类问题。
- 提取候选框,也就是将一张大图片变为若干张小图像
- 然后对小图像做一个分类任务
RCNN 网络基本思想
- 对输入图像提取 2k 候选区域
- warped region 对候选区域进行一次缩放
- 通过 CNN 计算特征
OverFeat 在之前,有关 OverFeat 在之前也介绍过,大家可以翻阅一下之前录制的视频
候选框的生成
利用 selective Search 算法通过图像分割的方法得到一些原始区域,然后通过一定策略将这些原始区域进行合并,得到一个层次化的区域结果,而这些结构就包括可能需要的物体。
selective search 从概念上来看属于图像分割,通过使用阶层聚类算法,产生物体候选区域,通常会认为同一个物体,其纹理或者颜色具有一定相似性,也就是利用颜色、纹理、大小和形状相似性来选择候选区域。
提取候选框的特征
我们通常利用 selective search 会生成 2k 候选框,然后将这些候选框进行缩放一个统一的大小尺寸(warped region),论文中是 227x227 接着将候选区域输入事先训练好的神经网络获取 4096 维度特征,得到 2000x4096 相当做 2k 分类任务,
将基于卷积神经网络后直接将特征图进行展平后,并没有输入到全连接层,那么 2000 x 4096
分类器
SVM 是 2 分类分类器,这里简单地说一下,之前的确下了很多功夫,今天来看过时的东西,我们还是简单了解一下,时代在变,大家学习重点也在不断迁移,我们今天在数学上,计算机的出现,让我们可以少在计算技巧花一些功夫。2000x4096 特征与 20 个 SVM 组成的权值矩阵 4096x20 相乘,获取 2000x20 为矩阵,在矩阵中,每一列也就是每一类进行非极大值抑制剔除权重重叠候选框,
非极大值抑制(NMS)
可能该模型能够找到同一物体的多个边界盒。非极大值抑制有助于避免对同一实例的重复检测。在我们得到一组相同对象类别的匹配边界框后。按置信度分数对所有边界框进行排序。
非极大值抑制剔除重叠建议框,IoU(Intersection over Union) 也就是两个集合 A 和 B 他们交集比上他们并集。
- 寻找得分最高的目标
- 计算其他目标与该目标的 IoU 值
- 删除所有 IoU 值大于给定阈值的目标
回归算法来精修候选框
对 NMS 处理后剩余的建议框进一步筛选。接着分别用 20 个回归器对上述 20 个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的 bounding box,预测得到 bounding box x 方向的偏移量和 y 方向的偏移量,以宽度和高度的缩放因子,
将不包含目标作为负例样本,并非所有的负例样本都同样难以识别,也就是对于负例样本识别有的负例样本容易识别,如某一个负例并不包含目标一部分或者,如果在负例样本中包括一些噪音或者目标一部分,可能这样负例样本就不能容易事
这样难于识别负例样本增加识别难度,容易造成误识别。