/ ai资讯

YOLOv10:引领无NMS实时目标检测的新纪元

发布时间:2024-11-13 17:45:53

来自中国清华大学的研究人员推出了YOLOv10,这是一种具有卓越进步的创新模型,展示了在计算机视觉领域的重要突破。这次发布体现了让AI既易于使用又功能强大的承诺,标志着重大进展和改进。

YOLO(You Only Look Once)系列一直是实时目标检测的基准,成功平衡了计算成本和检测性能。尽管在架构设计和优化策略方面取得了进展,但对非最大值抑制(NMS)的依赖阻碍了端到端部署,影响了推理延迟。YOLOv10通过消除NMS并优化模型架构推进了效率和性能的边界。

在这些进展的背景下,OpenSistemas在AI领域脱颖而出,特别是在训练、测试和部署如YOLOv10这样的模型方面。凭借对前沿技术的深刻理解和专长,OpenSistemas能够充分利用YOLOv10的功能,提升目标检测任务的精度和效率。这种合作象征着创新与实际应用的融合,推动了AI技术的可能性。

YOLOv10 的特别之处

YOLOv10的主要显著进步是消除了非最大值抑制(NMS)。NMS是许多目标检测模型中用于消除检测到同一对象的冗余边界框的后处理步骤。它通过保留得分最高的边界框并移除其他重叠显著的框来工作。尽管有效,但NMS增加了计算复杂性并增加了推理延迟,这会减慢实时应用的速度。

YOLOv10通过采用一致的双分配方法进行无NMS训练,改变了模型处理重叠检测的方式。通过将这一过程集成到模型的架构和训练策略中,YOLOv10减少了后处理的需要,大大缩短了推理时间。这种延迟的减少对于速度和效率至关重要的实时应用,如自动驾驶、监控和实时视频分析至关重要。消除NMS不仅简化了部署过程,还通过提高模型的效率和响应能力来提升其性能。

预训练模型

自从Ultralytics发布YOLOv5以来,我们已经习惯了每次YOLO发布时提供各种模型尺寸:nano、small、medium、large和xlarge。YOLOv10也不例外,清华大学的研究人员也提供了一系列预训练模型,可以用于各种目标检测任务。

所有这些模型在延迟和平均精度(AP)方面表现出优于之前YOLO版本的性能,如下图所示:

(图:各YOLO模型在延迟(左)和参数数量(右)方面的性能比较)

你可以在下表中查看实际性能:

(表:可用的YOLOv10预训练模型,来源:Ultralytics网站)

使用

我们将尝试使用原始的仓库:

git clone https://github.com/THU-MIG/yolov10
cd yolov10
pip install -e .

# Choose the size of your model I will use the XLarge version
wget https://github.com/THU-MIG/yolov10/releases/download/v1.1/yolov10n/s/m/b/l/x.pt

然后,使用方法类似于YOLOv8:

Python

from ultralytics import YOLOv10 # Note the "v10" in the end
# Load a model
model = YOLOv10('yolov10x.pt') # load an official model
# Predict with the model
model.predict(0) # predict on your webcam

CLI

yolo predict model=yolov10x.pt source=0 # predict with official model on webcam

Ultralytics框架的预测源也可用:

(图:可用于预测的源,来源:Ultralytics文档)

结果

(图:YOLOv10的目标检测示例。推理分辨率为384x640)

YOLOv8 vs YOLOv10: 推理延迟

比较YOLOv8和YOLOv10时,最显著的改进之一是推理延迟的减少。推理延迟,即模型处理图像并进行预测所需的时间,对于自动驾驶、视频监控和交互式AI系统等实时应用至关重要。

YOLOv8尽管高效且强大,但依赖于非最大值抑制(NMS)来过滤冗余边界框。这个额外步骤虽然有效地提高了检测准确性,但增加了计算开销并延长了整体推理时间。

而YOLOv10通过一致的双分配方法进行无NMS训练,消除了对NMS的需求。通过将这一过程集成到模型架构中,YOLOv10显著减少了推理过程中所需的计算步骤。这使得处理时间更快,延迟更低,使YOLOv10更适合高速实时应用。

在同一个视频上,我使用NVIDIA GeForce RTX 4060 Laptop GPU, 7940MiB,得到的日志显示差异非常大:

(图:YOLOv10在384x640分辨率下的推理延迟)

(图:YOLOv8在384x640分辨率下的推理延迟)

导出模型

如果你想了解导出模型的好处,可以查看这篇详细介绍速度改进的文章。类似于其他任务,如检测、分割和姿势估计,你可以使用Ultralytics框架导出YOLOv10模型。此过程包括将模型转换为ONNX、CoreML、TensorFlow Lite等格式,确保与各种平台和设备的兼容性。

这种多功能性允许在不同环境中更广泛的集成,从移动应用到边缘设备。与前辈一样,YOLOv10框架支持模型导出,便于在各种平台上无缝部署。

Python

from ultralytics import YOLOv10
# Load a model
model = YOLOv10('yolov10x.pt') # load an official model
model = YOLOv10('path/to/best.pt') # load a custom trained model

# Export the model
model.export(format='onnx')

CLI

yolo export model=yolov10x.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

结论

清华大学研究人员推出的YOLOv10,作为首个无NMS目标检测模型,代表了计算机视觉领域的重大进步。与YOLOv8相比,YOLOv10显著减少了推理延迟,使其更适合高速实时应用,如自动驾驶、视频监控和交互式AI系统。这种推理过程中计算步骤的减少突显了YOLOv10的效率和响应能力。

此外,YOLOv10采用了新的无NMS训练方法,对其各部分进行了微调以提高性能,并在速度和准确性之间达到了很好的平衡。这些升级使得模型的部署更容易,性能更强,速度更快,响应更迅速。

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com