一文读懂候选边界框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

相关文章
|
10月前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
1690 1
|
22天前
|
计算机视觉
RT-DETR改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
RT-DETR改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
73 20
RT-DETR改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
|
22天前
|
计算机视觉
RT-DETR改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量
RT-DETR改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量
47 1
RT-DETR改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量
|
23天前
|
计算机视觉
YOLOv11改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
YOLOv11改进策略【Neck】| PRCV 2023,SBA(Selective Boundary Aggregation):特征融合模块,描绘物体轮廓重新校准物体位置,解决边界模糊问题
55 11
|
23天前
|
计算机视觉
YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量
YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量
73 4
|
3月前
|
机器学习/深度学习 算法 计算机视觉
超越YOLOv10/11、RT-DETRv2/3!中科大D-FINE重新定义边界框回归任务
中科大研究团队提出了一种新型目标检测器D-FINE,通过重新定义边界框回归任务,实现超越YOLOv10/11和RT-DETRv2/3的性能。D-FINE采用细粒度分布细化(FDR)和全局最优定位自蒸馏(GO-LSD)技术,显著提高了定位精度和检测速度。在COCO数据集上,D-FINE-L/X分别达到54.0%/55.8%的AP,并在NVIDIA T4 GPU上以124/78 FPS运行。
151 13
|
10月前
|
传感器 编解码 算法
Anchor-free应用一览:目标检测、实例分割、多目标跟踪
Anchor-free应用一览:目标检测、实例分割、多目标跟踪
183 0
RxSwift特征序列Single、Maybe、Completable的使用
RxSwift特征序列Single、Maybe、Completable的使用
266 1
|
机器学习/深度学习 人工智能 资源调度
深度学习应用篇-计算机视觉-目标检测[4]:综述、边界框bounding box、锚框(Anchor box)、交并比、非极大值抑制NMS、SoftNMS
深度学习应用篇-计算机视觉-目标检测[4]:综述、边界框bounding box、锚框(Anchor box)、交并比、非极大值抑制NMS、SoftNMS
深度学习应用篇-计算机视觉-目标检测[4]:综述、边界框bounding box、锚框(Anchor box)、交并比、非极大值抑制NMS、SoftNMS
|
算法 计算机视觉
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(二)
3D检测经典 | 第一个Anchor-Free、第一个NMS-Free 3D目标检测算法!!!(二)
127 0