主要从以下几个部分理解anchor的概念:

  • 1. 什么是anchor?
  • 2. anchor的意义
  • 3. Faster R-CNN的Anchor Box
  • 4 总结

1. 什么是anchor?

就是在图像上预设好的不同大小,不同长宽比的参照框。

等同于:预定义边框 就是一组预设的边框,在训练时,以真实的边框位置相对于预设边框的偏移来构建训练样本。 这就相当于,预设边框先大致在可能的位置“框“出来目标,然后再在这些预设边框的基础上进行调整。

发展历程:为了尽可能的框出目标可能出现的位置,预定义边框通常由上千个甚至更多,在深度学习之前,通常使用各种形状的“滑动窗口”,在原图像滑动,来产不同位置不同形状的预设边框。到了深度学习时期,由于对图像特征提取技术的进步,可以使用Anchor Box在图像的不同位置生成边框,并且能够方便的提取边框对应区域的特征,用于边框位置的回归。

定义:一个Anchor Box可以由:边框的纵横比和边框的面积(尺度)来定义,相当于一系列预设边框的生成规则,根据Anchor Box,可以在图像的任意位置,生成一系列的边框。由于Anchor box 通常是以CNN提取到的Feature Map 的点为中心位置,生成边框,所以一个Anchor box不需要指定中心位置。

总结来说就是: 在一幅图像中,要检测的目标可能出现在图像的任意位置,并且目标可能是任意的大小和任意形状。

  1. 使用CNN提取的Feature Map的点,来定位目标的位置。
  2. 使用Anchor box的Scale来表示目标的大小。
  3. 使用Anchor box的Aspect Ratio来表示目标的形状。

常用的Anchor Box定义
Faster R-CNN 定义 三组纵横比ratio = [0.5,1,2 ] 和 三种尺度scale = [8,16,32],可以组合处9种不同的形状和大小的边框。
YOLO V2 V3 则不是使用预设的纵横比和尺度的组合,而是使用k-means聚类的方法,从训练集中学习得到不同的Anchor。
SSD 固定设置了5种不同的纵横比ratio=[1,2,3,1/2,1/3], 由于使用了多尺度的特征,对于每种尺度只有一个固定的scale。

2. anchor的意义

Anchor Box的生成是以CNN网络最后生成的Feature Map上的点为中心的(映射回原图的坐标)

以Faster R-CNN为例,使用VGG网络对对输入的图像下采样了16倍,也就是Feature Map上的一个点对应于输入图像上的一个(16 imes 16)的正方形区域(感受野)。根据预定义的Anchor,Feature Map上的一点为中心 就可以在原图上生成9种不同形状不同大小的边框,如下图:

从上图也可以看出为什么需要Anchor。根据CNN的感受野,一个Feature Map上的点对应于原图的(16 imes 16)的正方形区域,仅仅利用该区域的边框进行目标定位,其精度无疑会很差,甚至根本“框”不到目标。 而加入了Anchor后,一个Feature Map上的点可以生成9中不同形状不同大小的框,这样“框”住目标的概率就会很大,就大大的提高了检查的召回率;再通过后续的网络对这些边框进行调整,其精度也能大大的提高。

3. Faster R-CNN的Anchor Box

Faster R-CNN中的Anchor有3种不同的尺度({128 ,256 ,512 }),3种形状也就是不同的长宽比(W:H = {1:1,1:2,2:1}),这样Feature Map中的点就可以组合出来9个不同形状不同尺度的Anchor Box。

Faster R-CNN进行Anchor Box生成的Feature Map是原图下采样16倍得到的,这样不同的长宽比实际上是将面积为(16 )的区域,拉伸为不同的形状,如下图:


不同的ratio生成的边框的面积是相同的,具有相同的大小。三种不同的面积(尺度),实际上是将上述面积为(16)的区域进行放大或者缩小。
(128)是(16)放大8倍;(256)是放大16倍;(512)则是放大32倍。如下图:

4 总结

Anchor box 实际上就是用来生成一系列先验框的规则,其生成的先验框有以下三部分构成:

  1. CNN提取的Feature Map的点,来定位边框的位置。
  2. Anchor box的Scale来表示边框的大小
  3. Anchor box的Aspect Ratio来表示边框的形状

one stage中的目标检测
是直接在最后提取的Feature map上使用预定义的Anchor生成一系列的边框,最后再对这些边框进行回归。
two stage中的目标检测
提取的Feature map上使用预定义的Anchor生成一系列的边框,这些边框经过RPN网络,生成一些的ROI区域。将提取到的ROI输入到后续网络中进行边框回归,这就比one stage的方法多了一步,所以精度和耗时上都有所增加。
最后
在使用Anchor生成边框的时候,要注意其定义在那种尺度上,最好将生成的边框使用归一化的坐标表示,在使用的时候,乘以原图像的尺度就行了。

目标检测中anchor的概念相关推荐

  1. 目标检测中Anchor的本质分析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨东林钟声@知乎 来源丨https://zhuanlan.zhihu.com/p/84398108 ...

  2. 目标检测中Anchor如何映射到原图

    Anchor在目标检测中是比较常见的,引入Anchor主要是为了让检测更精准,当然现在有很多Anchor Free的方法也达到了较好的结果,但是最近项目中用的是基于Anchor的方法,但是置于Anch ...

  3. 【深度学习】目标检测中 IOU 的概念及计算

    在目标检测当中,有一个重要的概念就是 IOU.一般指代模型预测的 bbox 和 Groud Truth 之间的交并比. 何为交并比呢? I O U = A ∩ B A ∪ B IOU = \frac{ ...

  4. 目标检测中的anchor-base与anchor-free

    前言 本文参考目标检测阵营 | Anchor-Base vs Anchor-Free 如何评价zhangshifeng最新的讨论anchor based/ free的论文? - 知乎 基础知识 | 目 ...

  5. 目标检测中的anchor-based 和anchor free

    目标检测中的anchor-based 和anchor free anchor-free 和anchor-based 区别 深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题.在单阶段检测 ...

  6. anchor free 目标检测_《目标检测》系列之二:目标检测中的Anchor机制回顾

    前段时间,YOLOv4&v5大火,很多人忽视了yolov5在anchor上的一些细节变化,因此,本文从Faster RCNN着手,逐步分析SSD.YOLOv4&v5的anchor机制. ...

  7. 目标检测中的Anchor

    前言: 在计算机视觉四大基本任务(检测.分类.定位.分割)中,图像的目标检测受到的了研究者们越来越多的关注.今天我们就来聊一聊在目标检测中一项重要的机制--Anchor.Anchor机制在凯明大神提出 ...

  8. CVPR2020 | MAL:联合解决目标检测中的定位与分类问题,自动选择最佳anchor

    点击上方"AI算法修炼营",选择"星标"公众号 精选作品,第一时间送达 本文是收录于CVPR2020的工作,其实文章在去年就挂在了网上,整体思路还算不错.具体来 ...

  9. 深度卷积神经网络在目标检测中的进展

    作者:travelsea 链接:https://zhuanlan.zhihu.com/p/22045213 来源:知乎 近些年来,深度卷积神经网络(DCNN)在图像分类和识别上取得了很显著的提高.回顾 ...

最新文章

  1. restful可以转发么_DRF使用超链接API实现真正RESTful
  2. java 4大作用域_JavaWeb的四大作用域详解
  3. python数组切片效率_python – 对numpy数组切片进行采样的最快方法是什么?
  4. 计算机系统注册表的由来,计算机系统注册表
  5. Kotlin入门(13)类成员的众生相
  6. 使用GDAL对静止卫星圆盘数据进行校正(以FY2为例子)
  7. Android SD卡操作
  8. 墨者学院——投票系统程序设计缺陷分析
  9. python移动文件到新的文件夹并重命名
  10. 支付宝和淘宝网的一些伦理道德问题
  11. 使用esp32-s2模拟实现usb多点触摸
  12. 常见的分布期望及其方差
  13. 886n虚拟服务器ip,tl-wr886n怎么配置ip带宽控制
  14. 含泪整理最优质鲜肉VRay材质球素材,你想要的这里都有
  15. 梦幻星空html,如何使用HTML5的canvas来画一个梦幻星空,快来学习一下吧 | 龙奔网...
  16. 教孩子学习乘法和除法,我算是绞尽脑汁了
  17. Culling技术的一些介绍
  18. sqlite3数据库损坏修复方法(windows下)
  19. 数据结构括号是否匹配
  20. Hadoop在windows下本地调试报错:Exception in thread “main“ java.lang.ExceptionInInitializerError

热门文章

  1. php博客系统答辩ppt,基于PHP实现的WEB图片共享系统-php(开题报告+源程序+论文+答辩PPT+文献综述)...
  2. 如何跳出令人窒息的职场死循环
  3. 2020年chx的计算机保研之路系列(3)——中科院计算所(获得offer)
  4. MathType中文版公式编辑器操作激活教程
  5. Unable to install breakpoint in
  6. jQuery - fadeIn淡入效果
  7. smbpasswd命令常用选项
  8. C++打印图片的方法
  9. ospfdr选举规则_OSPF如何选举DR/BDR规则
  10. SAP vf11发票冲销