目标检测进化史

1object as anchor

(1) 核心思想

  • Anchor-based 方法:通过在图像中预定义一组锚点(Anchor),并将目标检测问题转化为对锚点的分类和回归问题。
  • 典型方法:Faster R-CNN、SSD、YOLOv2/v3 等。

(2) 具体实现

  • 锚点生成:在图像的每个位置生成多个不同尺度和长宽比的锚点。
  • 分类与回归:对每个锚点进行分类(判断是否包含目标)和回归(调整锚点的位置和大小)。

(3) 优点

  • 高精度:通过多尺度和多长宽比的锚点,能够较好地覆盖各种目标。
  • 成熟稳定:Anchor-based 方法是目标检测领域的经典方法,具有丰富的理论和实践基础。

(4) 缺点

  • 计算开销大:需要生成大量的锚点,导致计算开销较大。
  • 超参数敏感:锚点的尺度和长宽比需要根据数据集进行调整,超参数敏感。
  • 后处理:复杂大量的后处理

2 object as point

核心思想

  • Anchor-free 方法:将目标检测问题转化为对目标中心点的预测问题,而不是依赖于预定义的锚点。
  • 典型方法CenterNetFCOS 等。

(2) 具体实现

  • 中心点预测:直接预测目标的中心点位置。
  • 尺寸回归:通过回归预测目标的宽度和高度。

(3) 优点

  • 简化设计:不需要预定义锚点,简化了模型设计。
  • 计算效率高:减少了锚点生成和匹配的计算开销。

(4) 缺点

  • 对小目标不敏感:由于直接预测中心点,对小目标的检测效果可能较差。
  • 重叠目标不敏感:重叠物体的中心可能会重叠,导致难以区分
  • 后处理复杂:需要额外的后处理步骤(如非极大值抑制)来去除重复检测

3 object as query

Query Token 的高维空间可以看作是一个 语义特征空间,其中每个维度或者不同dimension的某种组合对应某种抽象语义特征(如类别、大小、颜色、形状等)。具体来说:

  • 类别:通过分类头(Classification Head),Query Token 能够预测目标的类别。
  • 大小:通过回归头(Regression Head),Query Token 能够预测目标的边界框大小。
  • 颜色:通过交叉注意力机制,Query Token 能够从图像特征中学习到目标的颜色信息。
  • 形状:通过交叉注意力机制,Query Token 能够从图像特征中学习到目标的形状信息。

这些抽象语义特征以参数的形式被编码到 Query Token 的高维空间中,并通过训练过程不断更新

本质上object as query的decoder 是在学习一个表征(decoder query token),该表征可以很好地区分不同类别、大小、颜色、形状等抽象特征,这些抽象语义特征以参数的形式被编码到token 的高维空间中,通过学习代理任务(学习object 类别、位置,大小)的方式来进行更新

总结

Object as AnchorObject as Point 再到 Object as Query ,目标检测方法的发展确实呈现出一定的 稀疏化 趋势:

###(1) 稀疏化的体现

  • Object as Anchor:需要生成大量的锚点,计算开销较大。
  • Object as Point:直接预测目标的中心点,减少了锚点生成和匹配的计算开销。
  • Object as Query :通过 Transformer 模型生成一组查询,进一步减少了计算开销(此处的计算开销主要是指原来的多个anchor 后处理来说的)。

###(2) 稀疏化的优势

  • 计算效率高:稀疏化方法能够减少不必要的计算,提高计算效率。
  • 模型设计简化:稀疏化方法简化了模型设计,减少了超参数的数量, 但是transformer类型的计算复杂度相对同等的conv显得较高。同时稀疏化的检测方法更难解释

###(3) 稀疏化的挑战

  • 训练难度大:稀疏化方法可能需要更多的训练数据和计算资源。

  • 对小目标不敏感:稀疏化方法可能对小目标的检测效果较差。

  • Object as Anchor:通过预定义锚点进行目标检测,计算开销大但精度高。

  • Object as Point:通过预测目标中心点进行目标检测,简化设计但对小目标不敏感。

  • Object as Query:通过 Transformer 模型生成查询进行目标检测, 对于数据均衡性要求较高,灵活性高但训练难度大。

目标检测方法的发展确实呈现出一定的稀疏化趋势,但稀疏化方法也面临一些挑战(如训练难度大、对小目标不敏感等)。未来,目标检测领域可能会继续探索更高效、更灵活的表示方法,以平衡计算效率和检测精度。

本文为原创文章,未经作者允许禁止转载。

相关推荐
小鸡吃米…7 分钟前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫44 分钟前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)1 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan1 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维1 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS1 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd1 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
m0_650108241 小时前
VGGT-Long:突破千米级长 RGB 序列单目 3D 重建的极限
自动驾驶·机器人导航·vggt·3d视觉基础模型·千米级单目3d重建·通用模型·分块-对齐-闭环-全局优化
njsgcs2 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
io_T_T2 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python