从R-CNN到YOLO,2020 图像目标检测算法综述

论坛 期权论坛     
选择匿名的用户   2021-5-23 01:19   25   0
<div id="js_content">
<p style="text-align: center">点击上方,选择<strong>星标</strong>或<strong>置顶</strong>,不定期资源大放送<img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4710d53a48cecb99c2673bb348aa496d">!</p>
<blockquote>
  <p style="text-align: center">阅读大概需要15分钟<img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-747e0c213e55c3fafa9e56190fcbeedc"><br></p>
  <p style="text-align: center">Follow小博主,每天更新前沿干货<img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-18f89a38f159a47485f282ab6e9362f9"></p>
</blockquote>
<p style="text-align: left">作者丨江户川柯壮&#64;知乎</p>
<p style="text-align: left">来源丨https://zhuanlan.zhihu.com/p/242424344</p>
<p><strong>导读</strong></p>
<p>本文从Two-stage和One-stage两个类别出发,详细的介绍总结了9种重要的图像目标检测算法,并总结了目标检测模型的改进思路。深度好文,建议先点击在看收藏,之后慢慢品读!</p>
<p style="text-align: justify">基于CNN 的目标检测是通过CNN 作为特征提取器,并对得到的图像的带有位置属性的特征进行判断,从而产出一个能够圈定出特定目标或者物体(Object)的限定框(Bounding-box,下面简写为bbox)。和low-level任务不同,目标检测需要预测物体类别及其覆盖的范围,因此需关注高阶语义信息。传统的非CNN 的方法也可以实现这个任务,比如Selective Search 或者DPM。在初始的CNN 中,也采用了传统方法生成备选框。</p>
<p style="text-align: justify"><strong>Contents</strong></p>
<ol><li><p style="text-align: left"><strong>R-CNN</strong></p></li><li><p style="text-align: left"><strong>SPP-net</strong></p></li><li><p style="text-align: left"><strong>Fast R-CNN</strong></p></li><li><p style="text-align: left"><strong>Faster R-CNN</strong></p></li><li><p style="text-align: left"><strong>YOLO v1~v3</strong></p></li><li><p style="text-align: left"><strong>SSD</strong></p></li><li><p style="text-align: left"><strong>FPN</strong></p></li><li><p style="text-align: left"><strong>RetinaNet</strong></p></li><li><p style="text-align: left"><strong>Mask R-CNN</strong></p></li></ol>
<h2>传统目标检测方法</h2>
<p style="text-align: justify">Selective Search</p>
<p style="text-align: justify">Deformable Part Model</p>
<h2>基于CNN 的目标检测</h2>
<p style="text-align: justify"><strong>1. Two-stage 方法</strong></p>
<p style="text-align: justify">所谓Two-stage 的方法,指的是先通过某种方式生成一些备选框,然后对备选框里的内容进行分类,并修正备选框的位置的方法。由于包含了region proposal 和detection 两个步骤,因此称为two-stage(两阶段)方法。最开始的CNN 目标检测就是两阶段的。</p>
<ul><li><p style="text-align: justify">R-CNN<strong></strong></p></li></ul>
<p style="text-align: justify">R-CNN 是最早利用CNN 实现目标检测任务的方法,由rbg(Ross Girshick)等人提出。这里的R 指的是Region,R-CNN 即“Regions with CNN features”,即对不同的区域进行CNN 特征提取和分类。</p>
<img src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-4b3481e8c35976979cfefc522f0a2591">
<p style="text-align: center">图1.1: R-CNN 方法pipeline</p>
<p style="text-align: justify">鉴于CNN 在整图分类任务中的优异性能,很自然的想法是将其用于目标检测领域,将CNN 强大的数据驱动的特征提取能力迁移到比整图分类更细致和复杂的任务中。R-CNN 的思路相对容易理解,它主要有以下几个步骤:</p>
<p style="text-align: justify">1. 通过Selective Search(SS)方法筛选出一些备选的区域框(Region proposal)。</p>
<p style="text-align: justify">2. 将这些备选的proposal 缩放到指定尺寸,用于输入CNN 进行分类(根据某种规则将各个proposal 分成正负样本)。其目的在于通过训练CNN,得到每个region proposal 的定长特征向量。</p>
<p style="text-align: justify">3. 用每个proposal 中提取的特征向量训练SVM,得到最终的分类结果。</p>
<p style="text-align: justify">4. 利用非极大值抑制(Non-Maximun Suppresion) 方法,对最终得到的bbox 进行筛选。</p>
<p style="text-align: justify">5. 分类完成后,对bbox 进行回归,修正bbox 中的坐标的值,得到更精确的bbox。</p>
<p style="text-align: justify">详细来说,第一步中,SS 可以得到大量的备选框,这些框中都有可能有某个类别的目标,因此都需要进行后续的处理。这个步骤是不区分类别的。第二步骤中,由于第一步SS 得到的proposal 没有指定大小和比例(长宽比),因此用普通的CNN(R-CNN 中用的是AlexNet)无法得到一样长度的特征向量。R-CNN 采取的对策是直接用缩放的方式将所有proposal 强行整理成同样的大小。这里的缩放并不确
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP