跳转至内容

YOLOv7 与 YOLOv8:实时目标detect的演进

计算机视觉领域的发展轨迹由快速迭代和架构突破所定义。该领域历史上最具里程碑意义的两项成果是 YOLOv7(2022年中发布)和 YOLOv8——Ultralytics 发布。这两款模型在问世时均刷新了技术前沿(SOTA),却在模型设计理念与开发者体验层面呈现出截然不同的哲学取向。

YOLOv7 基于锚点的检测器在"自由袋"方法优化上的巅峰,其核心聚焦于可训练架构策略。反之YOLOv8 以用户为中心的生态系统方法,转向无锚点架构,优先考虑易用性、模型部署能力,并统一支持分割与姿势估计 等多样化任务。

性能对比

下表展示了YOLOv7 YOLOv8 性能指标。YOLOv8 保持或超越前代模型准确率(mAP)的同时,YOLOv8 更优越的效率,尤其体现在参数数量和浮点运算次数(FLOPs)方面。

模型尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(毫秒)
速度
T4 TensorRT10
(毫秒)
参数
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv7:基于锚点的强大模型

YOLOv7 于2022年7月发布,YOLOv7 突破实时目标检测的速度与精度极限。该模型引入了多项架构创新,致力于优化梯度传播路径。

主要架构特性

YOLOv7 扩展高效层聚合网络(E-ELAN)。该架构通过控制最短与最长的梯度路径,使模型能够学习更多样化的特征,同时确保网络在不破坏梯度流的情况下有效收敛。

该模型还采用了基于拼接的模型缩放技术,可同时调整卷积层的深度与宽度。尽管效果显著,但这种架构依赖锚框参数,需要为定制数据集计算最优锚框才能实现最佳性能。相较于新型无锚框方法,这为训练过程增添了一层复杂性。

训练复杂性

YOLOv7 需要特定的研究导向型存储库结构,并在训练过程中手动管理辅助目标。用户常需手动调整超参数,才能使"自由组合袋"(MixUp )在较小数据集上正常运行。

YOLOv8:统一生态系统与锚点无关设计

Ultralytics YOLOv8 范式转变,从纯研究工具升级为企业级框架。它简化了从数据标注到部署的整个机器学习生命周期。

了解更多关于 YOLOv8

架构创新

YOLOv8 先进的无锚框模型。通过消除对预定义锚框的需求YOLOv8 检测头,并提升了对形状或长宽比异常物体的泛化能力。

  1. C2f模块:取代前代的C3模块,C2f模块(受ELAN启发)融合了高级特性与上下文信息,在保持轻量化的同时提升梯度流。
  2. 解耦头部: YOLOv8 物体检测、分类和回归任务YOLOv8 为不同分支。这种分离使模型能够更快、更准确地收敛。
  3. 任务多样性:与主要作为检测模型YOLOv7不同YOLOv8 图像分类姿势估计 定向边界框检测(旋转框检测)以及实例分割

详细对比:开发者为何选择Ultralytics

YOLOv7 性能出色的模型,但YOLOv8 以及更新的YOLO26)Ultralytics 为开发者和研究人员提供了显著优势。

1. 易用性与生态系统

YOLOv7 主要作为研究仓库YOLOv7 。训练该模型通常需要克隆特定的GitHub仓库,按照严格的结构组织文件夹,并运行复杂的CLI 。

相比之下Ultralytics 可作为Python 使用(pip install ultralytics)。 Ultralytics Platform 通过提供用于数据集管理和训练监控的图形化界面,进一步简化了这一过程。这种"零基础到专家"的体验,显著降低了人工智能开发的入门门槛。

2. 训练效率和内存

现代人工智能中最关键的因素之一是资源利用率。Transformer模型通常需要大量CUDA ,且训练过程可能耗时数日。Ultralytics YOLO 经过优化,可显著提升训练效率

YOLOv8 动态YOLOv8 马赛克增强技术,并在最后几个 epoch 关闭该功能以提升精度。结合优化的数据加载器,该方案使用户能在消费级GPU上运行更大批量处理,相较YOLOv7 transformer替代方案(如RT-DETR)更具优势。

3. 部署与导出

将模型PyTorch 迁移到生产设备,通常是整个流程中最困难的部分。YOLOv8 通过统一的导出模式 YOLOv8 这一过程。

开发者只需一行代码,即可YOLOv8 导出YOLOv8 :

  • ONNX 以实现通用的跨平台兼容性。
  • TensorRT 在NVIDIA 实现最高推理速度。
  • CoreML 用于集成到iOS macOS 应用程序中。
  • TFLite 适用于Android 树莓派的移动端和边缘部署。

导出示例

Python YOLOv8 非常顺畅:

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)

代码示例:统一API

Ultralytics Python 支持您轻松切换模型架构。通过同一接口,您既可加载YOLOv8 ,也可加载YOLOv7 (为兼容旧版而保留支持)。

from ultralytics import YOLO

# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Display the results
results[0].show()

# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")

理想用例

何时使用 YOLOv7

  • 传统基准测试:若您正在复现2022/2023年间那些专门针对E-ELAN架构进行对比的学术论文。
  • 特定高分辨率输入: 字段 yolov7-w6 变体模型专为1280像素输入进行优化,尽管Ultralytics 现已支持处理 P6/1280 分辨率 原生支持。

何时使用 YOLOv8

  • 边缘计算: 诸如...之类的模型 yolov8n 非常适合 在树莓派上运行 或Jetson Nano,因其参数数量少且运行速度快。
  • 多任务应用场景:若您的应用需要在追踪人员的同时识别其姿势估计 骨架),YOLOv8 姿势估计 是理想选择。
  • 工业自动化:对于延迟至关重要的高吞吐量生产线,可轻松导出至 TensorRT 的YOLOv8 。
  • 快速原型制作: Ultralytics 使团队能够快速迭代数据集和模型,无需管理复杂的基础设施。

展望未来:YOLO26的力量

虽然YOLOv7 对比YOLOv7 YOLOv8的优势,但该领域仍在持续发展。对于今日启动新项目的开发者而言,YOLOv26代表着这一进化的巅峰。

YOLO26在YOLOv8 NMS。通过消除非最大抑制(NMS)后处理,YOLO26在复杂场景中实现了更简洁的部署逻辑和更低的延迟。其搭载的MuSGD优化器借鉴了大型语言模型(LLM)训练技术,确保训练过程中获得更稳定的收敛效果。

此外,通过移除分布焦点损失(DFL),YOLO26CPU上提升高达43%,使其成为GPU不可用的边缘AI应用场景中的首选方案。针对特定任务,该模型引入了专属优化方案:例如采用残差对数似然估计(RLE)实现姿势估计 专属角度损失函数用于 旋转框检测

若需最前瞻、高效且精准的解决方案,我们建议您了解YOLO26


评论