- 速度:推理速度再次提升,适合实时场景,比如无人驾驶、监控摄像头等。
- 精度:在小目标识别上,YOLO11的表现更加稳定,几乎不会漏掉任何关键细节。
- 轻量化:模型更加轻便,对显卡要求没那么高,甚至普通笔记本都能轻松跑起来。
YOLO11提供了更直观的Python接口,只需要几行代码,就能跑出目标检测的结果。温馨提示:YOLO11的训练数据集依然是COCO或自定义数据集,如果要进行Fine-tune,建议熟悉一下数据预处理的流程。
pip install yolov11 opencv-python numpy torch torchvision
可以从官方的YOLO11仓库下载预训练好的权重文件:
wget https://yolo11-models.com/yolo11_pretrained.pth
新建一个Python文件,比如 yolo11_test.py,写入以下代码:
import torch
from yolov11 import YOLO
# 加载预训练模型
model = YOLO('yolo11_pretrained.pth')
# 检查是否成功加载
print("YOLO11模型加载成功!")
接下来,我们写一个简单的目标检测脚本,检测一张图片里的物体。
import cv2
from yolov11 import YOLO
# 加载模型
model = YOLO('yolo11_pretrained.pth')
# 读取图片
image = cv2.imread('test_image.jpg')
# 目标检测
results = model.predict(image)
# 绘制检测框
for box in results['boxes']:
x1, y1, x2, y2 = box['bbox']
label = box['label']
confidence = box['confidence']
cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(image, f"{label}: {confidence:.2f}", (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
# 显示结果
cv2.imshow('YOLO11 Detection', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
python yolo11_test.py
图片窗口中,你会看到每个目标都被标上了边框,还标出了它们的标签和置信度。温馨提示:如果你的图片中有大量小目标,可以尝试调整模型的输入尺寸,提升小目标的检测效果。YOLO11不仅适合在实验室里玩玩,它在实际场景中也有很多应用。
如果你有一个摄像头,可以试试将YOLO11接入实时画面,检测移动物体:
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
results = model.predict(frame)
for box in results['boxes']:
x1, y1, x2, y2 = box['bbox']
label = box['label']
confidence = box['confidence']
cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2)
cv2.putText(frame, f"{label}: {confidence:.2f}", (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cv2.imshow('YOLO11 Realtime Detection', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
总结:YOLO11的强大之处在于,它不仅仅是一个高效的目标检测工具,更是一个易用的Python库。