Anchor-based(YOLOv5) VS Anchor-free(YOLOv8/v11)


先铺垫:把目标检测变成一个「套圈游戏」

我们先把复杂的技术问题,1:1映射成你能想象的生活场景:

技术概念 生活类比(套圈游戏) 你的门闸项目例子
输入图片 套圈游戏的「游戏画面/场地」 门闸摄像头拍的一张照片
目标(person/car/hand) 游戏场里的「奖品」 照片里的人、车、手、车牌
边界框(检测框) 套奖品的「圈」 把人/车/手套住的矩形框
模型 玩套圈游戏的「人」 负责找目标并画框的YOLOv5/v8
任务 用「圈」刚好套住每个「奖品」,圈的位置和大小要完美贴合 用矩形框刚好框住照片里的每个目标,位置和大小要准

一、详细讲:Anchor-based(YOLOv5)的流程------「有经验的玩家,用提前准备好的标准圈套」

YOLOv5是 「先给参考,再微调」 的思路,就像一个玩了1000次套圈的老手,手里有一套提前根据这个游戏场定制的「标准圈」,根本不用从零画圈。

我把它的预测流程拆成4步大白话+类比+技术对应+门控例子,你跟着走一遍就懂了:


第1步:提前定制「标准圈」(对应:聚类生成锚框)

这是Anchor-based最核心的"兜底步骤",也是和Anchor-free最大的区别。

大白话+类比:

玩家(模型)先不着急玩游戏,而是先观察这个游戏场(你的door_control数据集)里的奖品大小:

  • 他看了1000张门控照片里的奖品(23万张标注框),发现:
    • 大奖品(car):普遍是"200像素宽、100像素高"的长方形;
    • 中奖品(person):普遍是"80像素宽、160像素高"的瘦长方形;
    • 小奖品(hand/plate):普遍是"20像素宽、20像素高"的小正方形。
  • 于是他提前做了9种不同大小的"标准圈"
    • 3种大圈(套car):胖大圈、瘦大圈、正方形大圈;
    • 3种中圈(套person):胖中圈、瘦中圈、正方形中圈;
    • 3种小圈(套hand/plate):胖小圈、瘦小圈、正方形小圈。
  • 这9种圈,是专门为这个门控游戏场定制的,拿到别的游戏场(比如医疗影像)可能就没用了。
技术对应:
  • k-means聚类算法 ,对你的door_control数据集的23万张标注框做统计,生成9组锚框(Anchor boxes)
  • 锚框的格式是「宽, 高」,比如YOLOv5s默认的9组锚框(针对COCO数据集)是:[10,13], [16,30], [33,23], [30,61], [62,45], [59,119], [116,90], [156,198], [373,326]
  • 这9组锚框就是**"先验知识"**------提前告诉模型:"门控场景里的目标,大概就是这么大、这么宽高比"。
你的门控项目例子:

假设你的数据集里,hand的标注框90%都是「18-22像素宽,18-22像素高」,聚类后就会生成一组「20,20」的小锚框;car的标注框90%都是「180-220像素宽,80-120像素高」,聚类后就会生成一组「200,100」的大锚框。


第2步:把画面分成网格,每个网格放3个标准圈(对应:网格划分+锚框分配)

大白话+类比:

玩家(模型)把游戏画面(照片)分成3种大小的格子

  1. 大格子(13x13个) :格子很大,专门看远处的大奖品(car),每个大格子里放3个大标准圈
  2. 中格子(26x26个) :格子中等,专门看中距离的中奖品(person),每个中格子里放3个中标准圈
  3. 小格子(52x52个) :格子很小,专门看近处的小奖品(hand/plate),每个小格子里放3个小标准圈
技术对应:
  • YOLOv5把输入图片(比如640x640像素)分成3个尺度的特征图网格
    • 大尺度特征图:13x13网格(每个格子对应原图48x48像素),负责检测大目标;
    • 中尺度特征图:26x26网格(每个格子对应原图24x24像素),负责检测中目标;
    • 小尺度特征图:52x52网格(每个格子对应原图12x12像素),负责检测小目标;
  • 每个网格点(格子)预设3个锚框,对应该尺度的3种宽高比。
你的门控项目例子:
  • 一张640x640的门控照片,被分成52x52的小格子(每个格子12x12像素);
  • 假设hand在照片的左上角,刚好落在第「10,10」号小格子里;
  • 这个小格子里,提前放了3个小锚框:「18,18」「20,20」「22,22」,专门用来套hand。

第3步:模型只做「微调」------调整标准圈的位置和大小(对应:预测偏移量)

这是Anchor-based最核心的"预测逻辑"------不直接画圈,只微调标准圈

大白话+类比:

玩家(模型)看到第「10,10」号小格子里有hand(小奖品),他不用重新画圈,只需要拿起这个格子里的「20,20」小标准圈,做3件事:

  1. 挪位置:把圈往左边/右边/上边/下边挪一点(比如"往右上挪2像素"),让圈的中心点刚好对准hand的中心;
  2. 改大小:把圈放大/缩小一点(比如"宽放大1.1倍,高缩小0.9倍"),让圈的大小刚好贴合hand;
  3. 确认+分类:看看这个圈里是不是真的是hand("置信度90%"),是hand还是plate("类别:hand")。
技术对应:
  • 模型不直接预测边界框的绝对坐标(x1,y1,x2,y2) ,只预测4个「偏移量/增量」:
    1. Δx:锚框中心点往x轴方向挪多少;
    2. Δy:锚框中心点往y轴方向挪多少;
    3. Δw:锚框的宽放大/缩小多少倍;
    4. Δh:锚框的高放大/缩小多少倍;
  • 同时预测「置信度(有没有目标)」和「类别(person/car/hand)」;
  • 最后通过公式,把「锚框+偏移量」换算成最终的边界框绝对坐标。
你的门控项目例子:
  • 小格子里的标准锚框是「20,20」,中心点在格子中心(假设是「120,120」像素);
  • 模型预测:Δx=+2(往右挪2像素),Δy=+2(往上挪2像素),Δw=1.1(宽变22),Δh=0.9(高变18);
  • 最终得到的边界框:中心点「122,122」,宽22,高18------刚好套住hand!

第4步:筛选出最好的圈(对应:NMS非极大值抑制)

大白话+类比:

每个格子可能都微调了圈,最后有很多圈套在同一个hand上,玩家只留最准的那个(置信度最高的),扔掉其他重复的圈。

技术对应:

用NMS(非极大值抑制)算法,过滤掉重叠度高、置信度低的框,只保留每个目标的最优检测框。


二、详细讲:Anchor-free(YOLOv8/v11)的流程------「新手玩家,空手直接画圈」

YOLOv8是**「从零开始,直接画圈」的思路,就像一个第一次玩套圈的新手,手里没有任何标准圈**,完全靠自己看画面,直接空手画圈。

它的流程也是4步,但每一步都和Anchor-based有本质区别:


第1步:没有提前准备的标准圈(对应:无锚框先验)

大白话+类比:

新手玩家(模型)完全不看之前的游戏场数据,手里什么圈都没有,直接空着手看画面------不管hand之前是20x20还是car是200x100,他都不知道,全靠这次看照片自己摸索。

技术对应:
  • 没有聚类生成的锚框;
  • 没有预设的目标尺度、宽高比;
  • 完全没有"先验知识",100%靠训练数据学习目标的分布。
你的门控项目例子:

哪怕你的数据集里90%的hand都是20x20,模型也不知道------它第一次见这张照片里的hand,只能自己猜"这个hand应该多大"。


第2步:把画面分成网格,每个网格只负责「找中心点」(对应:中心点预测)

大白话+类比:

新手玩家(模型)还是把画面分成网格,但每个格子里不放标准圈,只做一件事:"看看这个格子是不是某个奖品的中心点"。

  • 比如他看到第「10,10」号小格子里,有hand的中心,就记下来:"这个格子是hand的中心点,精确位置在格子右上2像素处"。
技术对应:
  • YOLOv8把输入图片分成网格(和YOLOv5类似,也是3个尺度);
  • 每个网格点预测:
    1. 目标中心点的概率:这个格子是不是某个目标的中心;
    2. 中心点的精确坐标:微调网格点的位置,得到目标中心的绝对坐标;
  • 注意:这里完全不涉及"圈的大小",只找中心点。
你的门控项目例子:
  • 第「10,10」号小格子的中心是「120,120」像素;
  • 模型预测:"这个格子是hand的中心点,精确位置是「122,122」(往右上挪2像素)"。

第3步:直接画圈------预测宽高的绝对值/比例(对应:直接预测宽高)

这是Anchor-free最核心的"预测逻辑"------没有参考,直接从零画圈

大白话+类比:

新手玩家(模型)确定了hand的中心点是「122,122」之后,直接用手比划出圈的大小

  • 他盯着hand看,自己猜:"这个hand的宽应该是22像素,高应该是18像素";
  • 没有任何标准圈做参考,完全靠自己的感觉(从训练数据里学的规律)画圈;
  • 同时确认:"这是hand,置信度90%"。
技术对应:
  • 模型直接预测目标的宽高绝对值(或者相对全图的比例),没有任何锚框做参考;
  • 同时预测「类别」;
  • 最后把「中心点坐标+宽高」直接组合成最终的边界框。
你的门控项目例子:
  • 模型确定中心点是「122,122」;
  • 直接预测:"宽22,高18";
  • 最终边界框:中心点「122,122」,宽22,高18------和Anchor-based结果一样,但过程完全不同。

第4步:筛选圈(NMS)

和Anchor-based完全一样,只留最准的圈。


三、终极对比:一张表看懂所有区别

对比维度 Anchor-based(YOLOv5) Anchor-free(YOLOv8/v11)
核心思路 先给参考(标准圈),再微调 从零开始,直接画圈
有没有提前准备的"标准圈"(锚框) 有!用数据集聚类生成9组锚框,是"先验知识" 没有!完全靠训练数据自己学
预测逻辑 只预测「标准圈的偏移量」(挪位置、改大小) 直接预测「中心点坐标+宽高绝对值」
对数据集的依赖 低!哪怕小目标(hand)样本少,有标准圈兜底,不会画错大小 高!小目标样本少的话,模型没见过,容易画成极小/极大的圈,漏检率高
调参难度 低!核心调参只有"锚框大小、置信度阈值",社区有通用最优解 高!要调"正负样本分配、损失权重"等,无通用解,必须反复试错
部署适配成本 低!结构简单,算子通用,所有推理框架都支持 高!结构复杂,有特殊算子,很多边缘设备不支持

四、给你的门控项目的总结

  • YOLOv5(Anchor-based) :就像有经验的老员工,手里有现成的"工作手册(锚框)",哪怕遇到没见过的小情况(hand样本少),也能按手册兜底,稳得一批------适合你的已稳定生产的门控项目
  • YOLOv8(Anchor-free) :就像刚毕业的高材生,上限很高,但没有工作手册,全靠自己摸索,需要大量时间培训(调参、大数据集)------适合新项目预研,不适合你的已落地生产项目
相关推荐
JicasdC123asd2 小时前
快速跨阶段部分网络改进YOLOv26特征提取效率与梯度流动双重优化
人工智能·yolo·目标跟踪
阿拉斯攀登2 小时前
【无人售货柜・RK+YOLO】篇 5:RK3576 部署第一步!YOLO 模型转 RKNN 全流程,新手必避的量化大坑
yolo
君不见~3 小时前
在YOLO11中引入LWGA轻量分组注意力模块(AAAI 2026),实现涨点,保姆级别教程
yolo·yolo11·yolo改进·yolo涨点
duyinbi75173 小时前
感受野坐标注意力卷积改进YOLOv26双向空间加权与自适应通道建模协同突破
人工智能·yolo·目标跟踪
阿拉斯攀登4 小时前
【无人售货柜・RK+YOLO】篇 6:安卓端落地!RK3576 + 安卓系统,YOLO RKNN 模型实时推理保姆级教程
android·人工智能·yolo·目标跟踪·瑞芯微·嵌入式驱动
Cpsu4 小时前
EdgeCrafter:实时目标检测任务新SOTA
人工智能·yolo·目标检测·计算机视觉
JicasdC123asd20 小时前
密集残差瓶颈网络改进YOLOv26特征复用与梯度传播双重优化
网络·yolo·目标跟踪
JicasdC123asd1 天前
密集连接瓶颈模块改进YOLOv26特征复用与梯度流动双重优化
人工智能·yolo·目标跟踪
duyinbi75171 天前
局部特征提取改进YOLOv26空间移位卷积与轻量化设计双重突破
人工智能·yolo·目标跟踪