目标检测-RCNN系列个人理解

写在前面:

免责声明

本文纯属个人对技术的探讨,欢迎大家讨论学习。具体引用和相关代码会在文章后面给出,不用做任何商用。

由于个人能力有限,存在诸多不足,欢迎指正。

 

 

目标检测------object detection

 

1. 简介

这篇文章并非纯技术向讨论,深入到文章中。笔者更想用通俗的白话语言将个人学习感悟和困惑记录下来,主要是把英文文献或者专业术语描述出来,增强个人理解,查漏补缺,适用于面试和技术讨论。

 

2.目标检测小知识

2.1 什么是目标检测

简单来说,给定一张图片,经过分析后,给出两个答复:what & where

 

图1.目标检测定义示例图

2.2 常用数据集

常用数据集有

VOC2007、VOC2012:20类,场景相对简单,11,530张图片,27,450物体,图像内容相对单一,图片遮挡较少,适合初学者。

COCO:91类,复杂场景,328,000图像,2,500,000物体,图像比较复杂,

图2:COCO数据集示例图

从个人的角度出发,现在不管是写论文,还是具体项目当中实测,都已经从VOC转向了COCO,这个数据集在当前时间来说,具有权威性(日期:2021年5月12日)

2.3. 目标检测流程

相对来说,目前已经比较固定

输入图像--->目标潜在位置筛选--->候选框提取--->候选区域分类--->结果

更加形象的例子如下图所示:

图3:目标识别流程

2.4. 目标检测分类

目前目标检测主要分为两类,two-stage和one-stage,根据个人项目经验,one-stage已经称为了主流,因为快。。。

图4:目标检测分类

目前来讲,two-stage精度高,速度慢

one-stage 速度快 精度略低,大势所趋

 

3.经典RCNN系列

3.1 R-CNN

 

 

图5: R-CNN

R-CNN使用传统的目标识别做法。

在第一步:候选区域提取这里,R-CNN把每一个候选区都抠出来,然后对每一个候选区域做特征提取,再使用SVM分类器做分类。

缺点:基本上每一张图片都会产生2000多个候选区域,一是工作量比较大,而是这两千多个区域的重叠度比较大。

有一说一环节:作为初代的R-CNN,在现在看起来有一些缺点,无可厚非。

 

3.2. Fast R-CNN

图6: Fast R-CNN

重点说一下fast R-CNN的改进

从图6当中也可以看出,不同于R-CNN,Fast R-CNN先对整副图片,使用CNN提取特征区域,然后在相对比较小的feature map上提取特征。

但是这样会产生一个问题,每一个候选区域大小不一样,提取出来的特征维度不一样。

Fast R-CNN做了一个特别天才的改动:

分类器换成全连接层,比如神经网络。因为全连接层的输入节点数是固定的。

具体实现:

Fast R-CNN将最后一个卷积层的SSP Layer改为 Roi Pooling Layer;另外提出了多任务损失函数(Multi-task Loss),将边框回归直接加入到CNN网络中训练,同时包含了候选区域分类损失和位置回归损失。

Rol Pooling Layer: 实际上是SPP Layer的简化版,SPP Layer对每个候选区域使用了不同大小的金字塔映射,即SPP Layer采用多个尺度的池化层进行池化操作; 而Roi Pooling Layer只需要将不同尺度的特征图下采样到一个固定的尺度(例如7*7)。例如对于VGG16网络conv5_3有512个特征图,虽然输入图像的尺寸是任意的,但是通过Roi Pooling Layer 后,均会产生一个7*7*512维度的特征向量作为全连接层的输入,即Roi Pooling Layer 只采用单一尺度进行池化。如下图所示:

 

图7. RoI pooling操作

 

SPP层和RoI pooling层使得网络对输入图像的尺寸不再有限制,同时RoI pooling解决了SPP无法进行权值更新的问题。RoI pooling层有两个主要作用:第一个:将图像中的RoI区域定位到卷积特征中的对应位置;第二个:将这个对应后的卷积特征区域通过池化操作固定到特定长度的特征,然后将该特征送入全连接层。

3.3 Faster RCNN

图8 Faster R-CNN

没什么想说的,

RCNN作为比较早的技术,我们重点关注的是它定下来的框架和结构。

后续我会继续发文,主要研究anchor-free这方向。(因为今年比较热门)

参考引用

1.樱花书 & 西瓜书

2.https://blog.csdn.net/fengbingchun/article/details/87091740

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值