python 写一个yolov11预测的例子,并输出预测结果框的坐标和分类
时间: 2024-11-20 19:42:08 浏览: 283
在Python中,利用YOLOv11做物体检测通常涉及到深度学习库如TensorFlow或PyTorch。这里我们假设已经安装了相关的依赖并加载了一个预训练模型。以下是一个简化的例子,使用Darknet框架(YOLOv11基于Darknet),请注意实际操作可能需要更复杂的环境配置:
```python
import cv2
from models import yolov11 # 假设这是自定义的YOLOv11模块
# 加载预训练的YOLOv11模型
model = yolov11.load_darknet_model('yolov11.cfg', 'yolov11.weights')
def predict_image(image_path):
# 读取图片
image = cv2.imread(image_path)
# 转换到网络所需的输入格式
image = preprocess_input(image)
# 进行前向推理
boxes, confidences, classes = model.predict(image)
# 解析预测结果
for box, confidence, class_id in zip(boxes, confidences, classes):
x, y, w, h = box
label = f"Class {class_id}: {confidence * 100:.2f}%"
top_left = (int(x), int(y))
bottom_right = (int(x + w), int(y + h))
# 在原图上画出边框和标签
cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)
cv2.putText(image, label, (top_left[0], top_left[1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
# 显示预测结果
cv2.imshow("Object Detection", image)
cv2.waitKey(0) # 等待按键
cv2.destroyAllWindows()
predict_image('input_image.jpg')
```
在这个示例中,`preprocess_input`函数负责将图像调整成模型所需的输入格式,`boxes`, `confidences`, 和 `classes` 分别代表预测的边界框、置信度分数和类别。注意这只是一个简化版本,实际部署时可能还需要考虑其他因素,比如非最大抑制(NMS)等。
阅读全文