YOLO11是由Ultralytics公司开发的一系列计算机视觉模型。截至YOLO11发布之时,该模型在所有Ultralytics模型中准确度最高。在Microsoft COCO基准测试中,系列中最大的YOLO11x模型据报道达到了54.7%的mAP得分,而最小的YOLO11n模型在同一数据集上的得分为39.5%。YOLO11支持与YOLOv8相同的任务类型,包括对象检测、分类、图像分割、关键点检测和定向边界框(Oriented Bounding Box, OBB)检测。
要开始使用YOLO11,可以查看关于如何在自定义数据集上训练YOLOv8的指南。要了解其他人如何使用YOLO11,可以浏览Roboflow Universe,寻找其他YOLO11模型、数据集和灵感。此外,除了使用Roboflow托管的API进行部署外,还可以使用Roboflow Inference,这是一个开源的推理解决方案,支持CPU和GPU,让能够立即访问从NVIDIA Jetson(例如Jetson Nano或Orin)到ARM CPU设备的各种设备。使用Roboflow Inference,可以在设备上自托管并部署模型。
部署模型的第一步是将模型权重上传到Roboflow。训练完YOLOv8模型后,将拥有一组训练好的权重,这些权重可以用于与托管API端点一起使用。可以使用Roboflow pip包中的deploy()函数将模型权重上传到Roboflow Deploy,以便在云端使用训练好的权重。要上传模型权重,首先在Roboflow上创建一个新项目,上传数据集,并创建一个项目版本。然后,编写一个Python脚本,使用以下代码:
import roboflow
roboflow.login()
rf = roboflow.Roboflow()
project = rf.workspace().project(PROJECT_ID)
project.version(DATASET_VERSION).deploy(model_type="yolo11", model_path=f"{HOME}/runs/detect/train/")
将PROJECT_ID替换为项目ID,将DATASET_VERSION替换为与项目关联的版本号。完成上述代码运行后,模型将在Roboflow项目仪表板的部署页面上可供使用。
接下来,安装推理库。可以使用Inference Docker容器或pip包进行部署。这里使用pip包。首先运行:
pip install inference
然后,创建一个新的Python文件,并添加以下代码:
from inference import get_model
import supervision as sv
import cv2
image_file = "image.jpeg"
image = cv2.imread(image_file)
model = get_model(model_id="model-id")
# 在选择的图像上运行推理,图像可以是url、numpy数组、PIL图像等
results = model.infer(image)[0]
# 将结果加载到监督检测api中
detections = sv.Detections.from_inference(results)
# 创建监督注释器
bounding_box_annotator = sv.BoundingBoxAnnotator()
label_annotator = sv.LabelAnnotator()
# 使用推理结果注释图像
annotated_image = bounding_box_annotator.annotate(
scene=image, detections=detections)
annotated_image = label_annotator.annotate(
scene=annotated_image, detections=detections)
# 显示图像
sv.plot_image(annotated_image)
在上面的代码中,设置Roboflow工作空间ID、模型ID和API密钥(如果想使用在工作空间中训练的自定义模型)。还可以设置想要运行推理的图像的URL。这可以是一个本地文件。