ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

深度学习:目标检测算法——YOLO 系列演进

深度学习:目标检测算法——YOLO 系列演进

引言

分类只回答"图里有什么",检测还要回答"在哪、有几个"。从自动驾驶识别行人,到工厂流水线挑次品,目标检测是计算机视觉最能直接产生商业价值的任务之一。本篇用一条主线——YOLO 如何把检测做到实时——串起整个领域的演进,并给你一份拿来即用的 YOLOv8 训练脚本。


一、两阶段与单阶段对比

目标检测的两大范式,本质是"精度 vs 速度"的取舍:

范式代表流程特点
两阶段(Two-stage)R-CNN / Fast / Faster R-CNN先提候选区域(Region Proposal),再分类+回归精度高、速度慢
单阶段(One-stage)YOLO / SSD / RetinaNet一步直接预测框和类别速度快、工程友好

Faster R-CNN用区域提议网络(RPN)替代了 Selective Search,把两阶段速度提了一个量级,但仍是"先找框再认物"。YOLO则把整张图当作一个回归问题,一次前向就出结果,把"实时"变成了可能。


二、YOLO 各版本关键改进

版本年份关键贡献一句话记忆点
YOLOv12015网格划分 + 单次回归实时检测的奠基者
YOLOv2/v32016/2018Anchor、Darknet-19/53、多尺度预测v3 终于能抓小目标
YOLOv42020Bag of Freebies/Specials、CSP、Mosaic训练技巧大礼包
YOLOv52020PyTorch 重写、工程化极佳工业落地首选之一
YOLOv82023无锚框 head、统一检测/分割/分类当前最易上手的版本

核心演进线索:

  1. 从有锚框到无锚框(Anchor-free):早期靠人工设定 anchor 尺寸,v8 改为直接预测框中心偏移,减少了超参敏感。

  2. 多尺度(FPN/PAN):让浅层负责大目标、深层负责小目标,缓解小物体漏检。

  3. 训练策略:Mosaic 增强、CIoU 损失等"免费"提升精度的技巧,是 v4 之后工程化的精髓。


三、精度与速度权衡

模型(量级)mAP@0.5(典型区间)推理速度 FPS(典型区间)场景
YOLOv8n~37%~150+边缘设备
YOLOv8s~44%~80通用实时
YOLOv8m/l~50%~40/20高精度服务端
Faster R-CNN~38%~5~15精度优先、不计较速度

注:数值随数据集与硬件浮动,非本机实测,仅作量级参考。选型铁律——边缘要 n/s,服务端要 m/l。


四、YOLOv8 自定义训练实战

Ultralytics 把 YOLO 封装得极简,下面是一份可直接跑的示例(需pip install ultralytics)。

4.1 数据格式(YOLO txt)

每张图对应一个.txt,每行:class_id center_x center_y width height(坐标均归一化到 0~1)。目录结构:

dataset/ images/train/ images/val/ labels/train/ labels/val/ data.yaml data.yaml: path: ./dataset train: images/train val: images/val nc: 2 names: ['cat', 'dog']

4.2 训练与推理

from ultralytics import YOLO ​ # 加载预训练权重(nano 版,适合快速验证) model = YOLO("yolov8n.pt") ​ # 训练: imagen 增强、余弦调度都在内部默认开启 results = model.train( data="dataset/data.yaml", epochs=100, imgsz=640, batch=16, name="exp1", ) ​ # 验证 metrics = model.val() print(metrics.box.map) # mAP ​ # 推理 pred = model("test.jpg") pred[0].show() # 可视化框

这套流程覆盖了标注转换、训练、验证、推理部署的完整闭环,是工业落地最快的入口。


五、DETR 等新范式

Transformer 也杀进了检测。DETR(Detection Transformer)用集合预测 + 二分图匹配,彻底去掉了 anchor 和 NMS,端到端更优雅,但训练慢、小目标弱。后续的Deformable DETR用可变形注意力解决了收敛慢的问题。当前格局:YOLO 系仍是实时场景霸主,DETR 系在端到端/无 NMS 场景有独特优势,二者在互相借鉴(如 YOLO 也引入注意力模块)。


六、选型建议

  • 要实时、要落地:YOLOv8(n/s 上边缘,m/l 上服务端)。

  • 精度优先、不计较帧率:Faster R-CNN / Cascade R-CNN。

  • 想要端到端无 NMS:上 DETR 系。

  • 数据极少:先用 COCO 预训练权重做迁移(呼应第 13 篇),再在你的数据集上微调。


总结

目标检测的十年,是"把框预测做得更快更准"的十年。YOLO 用单阶段范式把实时变成标配,v8 的无锚框 head 又把工程门槛降到最低。本文的 Ultralytics 实战代码可直接套你的数据——先把预训练权重跑通,再谈优化。

考资料

  1. Redmon, J., et al. (2016).You Only Look Once: Unified, Real-Time Object Detection(YOLOv1).

  2. Redmon, J., & Farhadi, A. (2018).YOLOv3: An Incremental Improvement.

  3. Ultralytics YOLOv8 官方文档:YOLO Object Detection & Segmentation | Ultralytics

  4. Carion, N., et al. (2020).End-to-End Object Detection with Transformers(DETR).

返回列表