目标检测技术在图像和视频流中识别和定位对象方面发挥着重要作用。它通过输出一系列包围图像中对象的边界框,以及每个框的类别标签和置信度分数来实现。当需要识别场景中感兴趣的对象,但不需要知道对象的确切位置或其确切形状时,目标检测是一个不错的选择。
使用预训练的Ultralytics YOLO模型进行目标检测
Ultralytics YOLO模型是目标检测任务中的一个优秀选择。这些模型默认情况下是预训练的,例如yolo11n.pt,并且是在COCO数据集上进行预训练的。模型的大小、平均精度(mAP)、速度以及参数数量等性能指标都是选择合适模型时需要考虑的因素。例如,YOLO11n模型在640像素的输入下,mAP val为39.5,CPU ONNX的速度为1.5毫秒,参数数量为6.5M,FLOPs为21.5亿。
训练和验证YOLO模型
训练YOLO模型需要准备数据集,并使用Ultralytics YOLO库加载预训练的模型或从YAML文件创建新模型。然后,通过执行Python中的train方法或CLI中的yolo detect train命令来训练模型。例如,可以使用以下Python代码来训练YOLO11n模型100个周期:
from ultralytics import YOLO
model = YOLO("yolo11n.yaml")
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
训练完成后,可以使用.val()方法或yolo detect val命令来验证模型在COCO数据集上的准确性。这将提供诸如mAP50-95、mAP50等指标。
模型导出
Ultralytics YOLO允许将模型导出到各种格式,如ONNX、TensorRT、CoreML等,以确保在不同平台和设备上的兼容性。例如,可以使用以下Python代码将YOLO11n模型导出到ONNX格式:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")
导出模型后,可以直接在导出的模型上进行预测或验证。更多关于导出的详细信息,请参考导出页面。
为什么选择Ultralytics YOLO进行目标检测
Ultralytics YOLO以其在目标检测、分割和姿态估计方面的最新性能而受到青睐。以下是一些关键优势:
- 预训练模型:利用在COCO和ImageNet等流行数据集上预训练的模型,加快开发速度。
- 高准确度:实现了令人印象深刻的mAP分数,确保可靠的目标检测。
- 速度:针对实时推理进行优化,非常适合需要快速处理的应用。
- 灵活性:将模型导出到各种格式,如ONNX和TensorRT,以便在多个平台上部署。