197、YOLOv8改进实战:AutoAnchor自动锚框生成与Anchor-Free动态分配对比实验 📅 2026/8/9 11:06:56 197、YOLOv8改进实战:AutoAnchor自动锚框生成与Anchor-Free动态分配对比实验上个月调一个工业缺陷检测模型,换了新数据集,训练到一半loss突然崩了。翻日志发现anchor的wh比分布和真实框的分布差了两个数量级,模型在前期疯狂震荡。这种坑踩过不止一次,每次换数据集都要手动算anchor,烦不胜烦。YOLOv8虽然号称Anchor-Free,但它的TaskAlignedAssigner里其实还藏着anchor的影子——只是换了个马甲叫“先验框”。今天就把AutoAnchor自动锚框生成和真正的Anchor-Free动态分配掰开揉碎,做个硬核对比实验。先搞清楚YOLOv8的anchor到底在哪很多人以为YOLOv8是纯Anchor-Free,这是误解。打开ultralytics/nn/tasks.py里的parse_model函数,找到Detect层。YOLOv8的检测头输出的是四个分支:分类、回归、分类的IoU感知、回归的分布。回归分支预测的是相对grid cell的偏移量,但这个偏移量不是直接回归到真实框,而是基于一组预设的anchor wh比例。看这段代码,在loss.py的TaskAlignedAssigner里:# 这里踩过坑:anchor_wh是模型预设的,不是动态生成的anchor_wh=/