YOLO的anchor base的过程理解

发布时间:2026/10/30 15:39:42

YOLO的anchor base的过程理解 YOLO 的核心思想既然目标检测是要框出物体那我干脆先在图上放一堆大小、比例各异的“空框”然后让神经网络去判断哪个空框里有东西如果有这个空框需要放大还是缩小多少才能完美贴合那个东西YOLO 中 Anchor 机制运作的具体四大步骤1. anchor诞生K-Means 聚类在早期的目标检测如 Faster R-CNN中Anchor 的大小和长宽比是工程师凭直觉手写的比如 1:1, 1:2, 2:1。但从 YOLOv2 开始作者加入了一个非常聪明的步骤让数据自己说话。在训练模型之前YOLO 会扫描你整个训练集里所有的真实标签框Ground Truth。它使用 K-Means 聚类算法把这些框按照宽高的比例进行分类。如果你的数据集是测车牌的聚类出来的 Anchor 就会全是“扁平”的长方形如果是测行人的出来的就会全是“瘦高”的矩形。通常YOLO 会在不同的特征图层大尺度、中尺度、小尺度上各分配 3 种大小的 Anchor总共 9 个量身定制的基准框。2. 全图网格铺设提取完图片特征后YOLO 会把输入图像划分成S×SS \times SS×S的网格比如13×1313 \times 1313×13,26×2626 \times 2626×26,52×5252 \times 5252×52。规则 每一个网格单元Grid Cell都会默认生成刚才聚类出来的 3 个 Anchor。分工 如果一个物体的中心点落在了某个网格里那么这个网格以及它身上的这 3 个 Anchor就全权负责预测这个物体。YOLO 的第一步就是像切豆腐一样把原图切成S×SS \times SS×S的网格比如经典的7×77 \times 77×7或13×1313 \times 1313×13。3. 训练核心规则哪个网格包含中心点哪个网格负责从上面的图中可以看到那只狗的“中心点”落在了左下方的某一个特定网格内。此时YOLO 的规矩是全图其他所有的网格都不用管这只狗只有包含了狗中心点的这个网格才对检测这只狗负全责。匹配“正样本” (IoU 竞争)在训练算 Loss 时YOLO 分配责任的方式与 DETR 的“匈牙利匹配”完全不同YOLO 靠的是重合度竞争 (IoU)图片里有一只真实的狗中心点落在了坐标为 (5, 5) 的网格里。该网格带有 3 个大小不同的 Anchor。系统分别计算这 3 个 Anchor 与真实的狗的边框交并比IoU。赢家通吃 IoU 最大的那个 Anchor比如一个胖胖的 Anchor 最贴近狗的形状被选为正样本。网络会拼命训练这个 Anchor 对应的通道让它输出框的分类和微调坐标更准。剩下的两个 Anchor虽然也在这个网格里但被标记为忽略或负样本当作背景惩罚。负责预测狗的那个网格本身带有几个预设好的 Anchor比如一个高瘦的一个矮胖的。在图中黑框 当前负责预测的网格Grid Celliii。蓝框 (B bounding box candidates)就是这个网格里预设好的那几个 Anchor 模具。红框 (Truth bounding box) 真实数据集中狗的实际位置。系统会计算每一个蓝框Anchor和红框真实框的交并比IoU。那个形状最贴近红框、IoU 最高的蓝框就会被选拔出来作为“负责人Responsible Predictor”。其他落选的蓝框直接被标记为背景不参与这只狗的坐标微调。4. 预测基于 Anchor 的“微调” (回归公式)这是 Anchor 机制的数学核心。神经网络直接预测宽高的绝对绝对坐标是极难收敛的因为屏幕像素从 0 到 1920 跨度太大。有了 Anchor 作为基准网络只需要预测偏移量Offset。假设某个 Anchor 的预设宽是pwp_wpw​高是php_hph​。网络只需输出 4 个微调参数tx,ty,tw,tht_x, t_y, t_w, t_htx​,ty​,tw​,th​。最终在图上画出来的预测框边界(bx,by,bw,bh)(b_x, b_y, b_w, b_h)(bx​,by​,bw​,bh​)计算如下bxσ(tx)cxb_x \sigma(t_x) c_xbx​σ(tx​)cx​byσ(ty)cyb_y \sigma(t_y) c_yby​σ(ty​)cy​bwpw⋅etwb_w p_w \cdot e^{t_w}bw​pw​⋅etw​bhph⋅ethb_h p_h \cdot e^{t_h}bh​ph​⋅eth​σ(tx)\sigma(t_x)σ(tx​)和σ(ty)\sigma(t_y)σ(ty​)用 Sigmoid 函数把网络预测的中心点偏移量限制在0∼10 \sim 10∼1之间确保这个预测框的中心点绝对不会跑出当前网格 (cx,cyc_x, c_ycx​,cy​) 的范围。etwe^{t_w}etw​和ethe^{t_h}eth​用指数函数对 Anchor 的预设宽高(pw,ph)(p_w, p_h)(pw​,ph​)进行缩放。预测出tw0t_w 0tw​0时正好等于预设宽度tw0t_w 0tw​0则放大tw0t_w 0tw​0则缩小。被选中的 Anchor 尺寸可能和真实的红框差不多但肯定不完美。接下来神经网络要输出微调参数tx,ty,tw,tht_x, t_y, t_w, t_htx​,ty​,tw​,th​把这个 Anchor 完美地贴合到真实目标上。这张图完美展示了前面提到的数学公式是如何在图上生效的网格坐标(cx,cy)(c_x, c_y)(cx​,cy​) 虚线网格的左上角坐标。这是基准原点。预设 Anchor 的宽高(pw,ph)(p_w, p_h)(pw​,ph​) 图中的虚线框。这是我们通过 K-Means 聚类得出的初始模具大小。网络预测的中心点偏移(σ(tx),σ(ty))(\sigma(t_x), \sigma(t_y))(σ(tx​),σ(ty​))注意中心点那个紫色的圆点。网络输出的tx,tyt_x, t_ytx​,ty​经过 Sigmoid (σ\sigmaσ) 函数后值被死死卡在0∼10 \sim 10∼1之间。这意味着无论网络怎么瞎猜预测框的中心绝对飞不出这个网格图中中心点距离网格左上角偏移了大概0.50.50.5和0.70.70.7。网络预测的宽高缩放(etw,eth)(e^{t_w}, e^{t_h})(etw​,eth​)紫色的实线框bw,bhb_w, b_hbw​,bh​就是最终预测出来的框。它是通过将预设虚线框的宽高(pw,ph)(p_w, p_h)(pw​,ph​)乘以一个指数缩放因子得到的。通过这套巧妙的几何变换YOLO 把一个极难预测的全局绝对像素坐标变成了一个只需在网格内微调、在 Anchor 基础上缩放的简单回归任务。时代变迁Anchor 的落幕 (Anchor-Free 时代)既然你之前在问 Ultralytics 框架YOLOv8, YOLOv10 等这里必须补充一个极其重要的技术迭代虽然 Anchor 极大地降低了神经网络预测坐标的难度但它有一个致命缺陷计算量大且强依赖超参数调优聚类尺寸一旦没搞好模型直接崩盘。因此从 YOLOv8 开始官方已经彻底抛弃了 Anchor 机制全面转向了 Anchor-Free无锚框架构。现在的 YOLO 不再预设模板而是直接学习将中心点映射到物体上、下、左、右四条边的绝对距离Task-Aligned Assigner 策略。这种思想其实在某种程度上也是受到了 DETR 等新一代架构“去掉人工先验规则”的启发。
延伸阅读

更多相关文章

2026/10/30 15:39:38

STM32嵌入式期末速成:从环境搭建到高分模板的完整攻略

每个学期末,总有一批人被嵌入式系统这门课折磨得睡不着觉。尤其是STM32,上课听老师讲寄存器、讲库函数、讲中断优先级,感觉听懂了,一到实验室面对Keil的编译报错和板子上的硬件故障,整个人直接傻掉。我当年也是这么过来…

2026/10/30 15:39:36

吉林大学Java课程设计:纯原生MUD服务器实现解析

简介:本资源是吉林大学软件学院Java课程设计的实践项目成果,面向高校计算机相关专业学生及Java初学者,提供MUD(多用户地下城)类多人在线文字游戏的简化模拟实现,助力理解网络编程、多线程协作与基础游戏逻辑…

2026/10/30 15:39:36

算力用满,才是绿色算力——一站式端到端算力服务

2026年度国家绿色算力设施推荐申报即将截止。根据五部门联合印发的《关于组织开展2026年度国家绿色算力设施推荐工作的通知》,申报材料须于2026年11月16日前完成报送。对不少企业而言,绿色算力评价最容易让人聚焦在“电从哪来”——绿电比例够不够、可再…

2026/10/30 15:39:36

Vue 3 + Element Plus:表格「行内可编辑单元格」组件设计与实战

列表页里「点一下就能改数据」是很常见但细节很多的需求。很多人第一反应是在el-table 的插槽里塞个el-input ,功能是能跑通,但一旦遇到下面这些场景就会很痛苦:数字列要 限制只能输数字、限制小数位 ;点击进入编辑、 回车确认、E…

2026/10/30 15:39:36

Java飞机大战小游戏源码实战:Swing碰撞检测与面向对象设计

简介:一份基于Java实现的飞机大战小游戏完整项目源码,适合Java编程初学者、课程设计学生以及游戏开发入门者,用来学习图形界面编程、游戏循环机制、事件监听与碰撞检测等核心技能。项目基于Eclipse构建,源码与编译文件齐全&#x…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑