一文读懂候选边界框Selective Search、AnchorBased、Anchor Free

简介: 目标检测中定位检测框的一种技术

目标检测是计算机视觉中的一项重要任务,主要目的是在图像或视频中识别并定位感兴趣的对象。为了实现这一目标,目标检测算法通常会生成一系列候选边界框,这些框包围了图像中可能存在的目标对象。候选边界框技术对于减少目标检测的计算复杂度和提高检测精度至关重要。以下是一些我目前遇到的目标检测候选边界框技术:

  1. Selective Search
  2. Anchor based
  3. Anchor Free(扩展阅读)

1.Selective Search算法(SS算法)

1.1 流程

1.使用一种分割手段,将图像分割为1k-2k个小区域
2.查看现有的小区域,按照合并规则合并可能性最高的相邻两个区域。重复直至整张图像合并成一个区域位置。
3.输出区域

1.2 合并规则

1.颜色(颜色直方图)相近
2.纹理(梯度直方图)相近
3.合并后总面积较小的
    为了保证合并的操作尺度较为均匀,避免一个大区域陆续合并小区域
    如a-b-c-d-e-f=>ab-cd-ef=>abcd-efgh=>abcdefgh
    而不是a-b-c-d-e-f=>ab-c-d-e-f=>abcd-e-f=>abcdef
4.合并后,总面积在其BBOX中所占比例最大的

✨ 2 Anchor Based

🍔 2.1 思想

在同一个像素点上,生成多个不同大小和比例的候选框(基于Anchor),覆盖几乎所有位置和尺度,每个参考框负责检测与其交并比大于阈值 (训练预设值,常用0.5或0.7) 的目标,然后通过偏移量进行位置精修完成目标检测。

💕 2.2 Anchor生成

anchor也叫做==锚,预先设置目标可能存在的大概位置==,然后再在这些预设边框的基础上进行精细化的调整。而它的本质就是为了解决标签分配的问题。

==生成步骤:==

  1. 用锚的==尺寸来设定边框的大小==,用锚的==长宽比来设定边框的形状==,生成Anchor模板。
  2. 用==网络提取特征图的点来定位边框的位置==。

🎃 2.3 Anchor模板

如下图所示,==由不同大小和长宽比的矩形组成==:
11.png
细数的话可以看见上图有9个矩形,其实这就是最常用的anchor,由尺寸sizes,和宽高比例ratios生成。

其中==尺寸sizes有两种决定方式==:

  1. 人工设计,比如Faster R-CNN取sizes=[128., 256., 512.]
  2. K-means聚类,比如YOLO系列

==高宽比ratios一般就是[0.5, 1., 2.]。==

这样的结构会==重复应用在特征图每个点上,因此称为Anchor模板==。

🎃 2.4 定位

12.png
如图所示,点S(grad_x, grad_y)代表网格一个点,我们以红框中的anchor为例,其高为h,宽w,那么定位后该anchor在该网格的坐标就是(grad_x+h/2,grad_y+w/2),其余anchor都做着这样的操作。

✨ 4 Anchor Free

将==目标检测问题转化为关键点检测问题==。 而按照关键点将基于Anchor Free的目标检测为两类:

  1. 角点检测
  2. 中心点检测

❤️ 3.1 角点检测

通过==定位目标物体的几个关键点来限定它的搜索空间,然后通过角点组合预测中心到边界的距离,形成检测框==。
13.png
经典论文cornerNet:https://arxiv.org/pdf/1808.01244v2.pdf:是Anchor free技术路线的开创之作,该网络提出了一种新的对象检测方法,将网络对目标边界框的检测转化为一对关键点的检测(即左上角和右下角),通过将对象检测为成对的关键点,而无需设计Anchor box作为先验框。

CornerNet只关注边缘和角点,缺乏目标内部信息,容易产生FP;该网络还是需要不少的后处理,比如如何选取分数最高的点,同时用offset来微调目标定位,也还需要做NMS。

一开始选择角点的原因:因为角点相比中心点更有利于训练的,比如说左上角的点,只会和两条边相关,而中心点要和四条边相关。但似乎后面更多的采用中心点的方式。

🥚🍳 3.2 中心点检测

参考文章CenterNet

相关文章
|
移动开发 文字识别 算法
论文推荐|[PR 2019]SegLink++:基于实例感知与组件组合的任意形状密集场景文本检测方法
本文简要介绍Pattern Recognition 2019论文“SegLink++: Detecting Dense and Arbitrary-shaped Scene Text by Instance-aware Component Grouping”的主要工作。该论文提出一种对文字实例敏感的自下而上的文字检测方法,解决了自然场景中密集文本和不规则文本的检测问题。
1949 0
论文推荐|[PR 2019]SegLink++:基于实例感知与组件组合的任意形状密集场景文本检测方法
|
5月前
|
计算机视觉
【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?
【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?
【CV大模型SAM(Segment-Anything)】如何保存分割后的对象mask?并提取mask对应的图片区域?
|
3月前
|
数据采集 机器学习/深度学习 算法
5.2.3 检测头设计(计算预测框位置和类别)
这篇文章详细介绍了YOLOv3目标检测模型中的检测头设计,包括预测框是否包含物体的概率计算、预测物体的位置和形状、预测物体类别的概率,并展示了如何通过网络输出得到预测值,以及如何建立损失函数来训练模型。
|
6月前
|
传感器 编解码 算法
Anchor-free应用一览:目标检测、实例分割、多目标跟踪
Anchor-free应用一览:目标检测、实例分割、多目标跟踪
143 0
|
6月前
|
XML 前端开发 算法
canvas从基础了解 -- 到算法标注框实现
canvas从基础了解 -- 到算法标注框实现
|
算法 计算机视觉
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(二)
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(二)
103 0
|
机器学习/深度学习 自动驾驶 算法
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(一)
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(一)
219 0
|
网络架构
YOLOv5抛弃Anchor-Base方法 | YOLOv5u正式加入Anchor-Free大家庭
YOLOv5抛弃Anchor-Base方法 | YOLOv5u正式加入Anchor-Free大家庭
278 0
|
并行计算 算法 数据可视化
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致(二)
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致(二)
89 0
|
机器学习/深度学习 固态存储 计算机视觉
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致(一)
Anchor-Free即插即用标签分配 | 平滑标签分配+动态IoU匹配解决标签分配不一致(一)
172 0