目标检测:RCCN网络详解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Superstar02/article/details/102759871

目标检测:

目标检测就是在给定的图片中精确找到物体所在位置,,并标注出物体的类别(定位+识别)。由于物体的尺寸变化范围很大、摆放角度多变、姿态不定,而且物体有很多种类别,可以在图片中出现多种物体、出现在任意位置。因此,目标检测是一个比较复杂的问题。用CNN网络的大概思路如下:
在这里插入图片描述

检测分类:

在这里插入图片描述

Rich feature hierarchies for accurate object detection and semantic segmentation

简述:

CNN中把任务当成分类问题+回归问题来做,即先不管是什么物体,只要bounding box 与ground truth 的IOU大于某个阈值,就认为是正样本,小于某个阈值为负样本,然后直接训练,然后直接给它ground truth,然后用当前框位置与ground truth的欧式距离作为loss,去学习什么是object以及object在哪里呢。但不同位置,不同大小的目标区域,一步一步来检测,这种学习的复杂度太高。

R-CNN(Region CNN,区域卷积神经网络)是利用深度学习进行目标检测的开山之作,采用RegionProposal方法实现目标检测问题。算法可以分为四步(1)候选区域选择,(2)CNN特征提取,(3)分类,(4)边界回归。

模型:

在这里插入图片描述
  1. 输入图像
  2. 每张图像生成1K-2K个候选区域(使用Region Proposal传统方法)
  3. 对每个候选区域,使用深度网络提取特征。
  4. 将特征送入每一类的SVM 分类器,判别是否属于该类。
  5. 使用回归器精细修正候选框位置。

详解:

(1)候选区域选择:
  使用Selective Search(选择性搜索)方法对一张图像生成约2000个候选区域,基本思路如下:
  step0:使用一种过分割手段,将图像分割成小区域,集合R
  step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…} (其中相似度根据颜色、纹理、尺寸、交叠等相似度综合得出。)
  step2:找出相似度最高的两个区域,将其合并为新集,添加进R
  step3:从S中移除所有与step2中有关的子集
  step4:计算新集与所有子集的相似度
  step5:跳至step2,直至S为空
  Region Proposal,通过上述Selective Search的方法,输出所有曾经存在过的区域,即所谓候选区域,即可理解为将图片划分成约2k个网格。
(2)CNN特征提取:
  将(1)中得出的建议提取的目标图像归一化为227×227(作者抽取了一个 4096 维的特征向量,采用的是AlexNet,需要标准化的输入),标准卷积神经网络根据输入执行诸如卷积或池化的操作以获得固定维度输出。
(3)分类:
  对每一类目标,使用一个线性SVM二类分类器进行判别。输入为深度网络(如上图的AlexNet)输出的4096维特征,输出是否属于此类。
(4)边界回归:
  通过边界回归框回归(缩写为bbox)获得精确的区域信息。

训练:

采用在 ImageNet 上已经训练好的模型,然后在 PASCAL VOC 数据集上进行微调(fine-tune)。因为 ImageNet 的图像高达几百万张,利用卷积神经网络充分学习浅层的特征,然后在小规模数据集做规模化训练,从而可以达到好的效果。
  R-CNN 将候选区域与 GroundTrue 中的 box 标签相比较,如果 IoU > 0.5,说明两个对象重叠的位置比较多,于是就可以认为这个候选区域是 Positive,否则就是 Negetive.
  训练策略是:采用 SGD 训练,初始学习率为 0.001,mini-batch 大小为 128.

总结:

R-CNN 采用 Selective Search 技术生成 Region Proposal,在缺乏训练数据时,通过ImageNet 上先进行预训练,然后利用成熟的权重参数在 PASCAL VOC 数据集上进行 fine-tune(微调);通过结合使用来自计算机视觉(SVM分类)和深度学习的经典工具(自下而上的区域建议和卷积神经网络)来实现这些结果是很重要的。

附件:

IoU定义:物体检测时需要定位出物体的bounding box,与此同时还要识别出bounding box中的物体是什么。因此对于bounding box的定位精度有个重要新概念IOU(算法标注和人工标注的数据肯定不能百分之百匹配)如图:
在这里插入图片描述
IOU定义了两个bounding box的重叠度。矩形框A、B的重叠度IOU计算方法:IOU=(A∩B)/(A∪B)

猜你喜欢

转载自blog.csdn.net/Superstar02/article/details/102759871
今日推荐