637|2

68

帖子

3

TA的资源

一粒金砂(中级)

【Raspberry Pi 5 测评】部署YOLO11实时物体检测模型 [复制链接]

【Raspberry Pi 5 测评】部署YOLO11实时物体检测模型

【Raspberry Pi 5 测评】部署YOLO11实时物体检测模型
一、YOLO11概述
二、YOLO11主要功能
三、创建Python虚拟环境
四、激活Python虚拟环境
五、安装ultralytics包
六、体验YOLO11模型
七、绘制推理结果
九、参考链接

一、YOLO11概述

YOLO11 是 UltralyticsYOLO 是实时物体检测器系列中的最新产品,以最先进的精度、速度和效率重新定义了可能实现的目标。在之前YOLO 版本令人印象深刻的进步基础上,YOLO11 在架构和训练方法上进行了重大改进,使其成为广泛的计算机视觉任务的多功能选择。
wd_235839s06xxbiwurh0ggxu.png

二、YOLO11主要功能

  • 增强型特征提取: YOLO11 采用改进的骨干和颈部架构,增强了特征提取能力,从而实现更精确的目标检测和复杂任务性能。
  • 优化效率和速度: YOLO11 引入了完善的架构设计和优化的训练管道,提供更快的处理速度,并在准确性和性能之间保持最佳平衡。
  • 参数更少,精度更高:随着模型设计的进步,YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),同时使用的参数比YOLOv8m 减少了 22%,从而在不影响精度的情况下提高了计算效率。
  • 跨环境适应性: YOLO11 可在各种环境中无缝部署,包括边缘设备、云平台和支持NVIDIA GPU 的系统,确保最大的灵活性。
  • 支持的任务范围广泛:无论是对象检测、实例分割、图像分类、姿态估计,还是面向对象检测 (OBB),YOLO11 都能应对各种计算机视觉挑战。

三、创建Python虚拟环境

树莓派上默认使用的是Python3,不允许直接使用pip安装软件包,直接使用pip install会报错:
wd_235839i5stqq4m43sg4bt9.png
并且提示使用python3 -m venv path/to/venv的方式创建虚拟环境。
接下来,使用如下命令创建一个虚拟环境,用于后续的yolo11下载和运行:
python3 -m venv yolo11env

四、激活Python虚拟环境

执行如下命令,将会激活Python虚拟环境:
source yolo11env/bin/activate
激活后,命令提示符最前面会有一个括号,显示当前虚拟环境名称。
wd_235839rlswzw09p69xjxek.png

五、安装ultralytics包

执行如下命令,安装ultralytics包:
pip install ultralytics
执行过程中会下载并安装很多依赖的软件包。
wd_235839r30zgxvv30n3pfe0.png

六、体验YOLO11模型

安装完ultralytics包之后,就可以在当前Python虚拟环境中体验YOLO11模型了。
首先,输入python命令并回车,打开一个交互式Python命令行。
wd_235839y2rz84912lhk270r.png
输入如下代码,下载YOLO11模型:
from ultralytics import YOLO

model = YOLO("yolo11n.pt")
wd_235839vqbbfbxldg66fbdb.png
接下来,就可以使用YOLO11模型进行推理了:
wd_235839dvqdsdrcmcrc1rrm.png
可以看到,推理耗时 357.3 毫秒,识别到了4个人和1个巴士,图片保存到了/home/xu/bus.jpg。
图片实际画面如下:
wd_235840p6sck393tpwo1t3j.jpg

七、绘制推理结果

结合OpenCV绘制矩形框和文本的功能,可以写一段代码,将推理结果绘制出来,并保存为图片:
from ultralytics import YOLO
import cv2
import sys

# 1. 加载预训练模型(YOLOv8 官方模型)
model = YOLO("yolo11n.pt")

# 2. 读取输入图片
image_path = sys.argv[1]
image = cv2.imread(image_path)

# 3. 运行目标检测
results = model.predict(image, save=False) # save=False 避免自动保存覆盖

# 4. 提取检测结果并绘制矩形框
for result in results:
boxes = result.boxes # 获取边界框信息
for box in boxes:
# 提取坐标 (xyxy 格式: 左上右下)
x1, y1, x2, y2 = map(int, box.xyxy[0])
# 提取类别和置信度
cls_id = int(box.cls[0])
conf = float(box.conf[0])
cls_name = model.names[cls_id]

# 绘制矩形框
cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 添加类别和置信度标签
label = f"{cls_name} {conf:.2f}"
cv2.putText(image, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

# 5. 保存结果图片
output_path = image_path.split('.')[0] + "output.png"
cv2.imwrite(output_path, image)
print(f"检测结果已保存到 {output_path}")
运行以上脚本,输出output.jpg文件,内容如下:
wd_235840t552bdqweq5uhux0.png

九、参考链接

  1. YOLO11介绍: https://docs.ultralytics.com/zh/models/yolo11/
  2. OpenCV-Python接口说明: https://docs.opencv.org/4.x/d7/d16/tutorial_py_table_of_contents_core.html
  3. ultralytics快速入门: https://docs.ultralytics.com/zh/quickstart/

最新回复

>>>推理耗时 357.3 毫秒 一秒钟差不多3-4帧?   详情 回复 发表于 2025-2-20 19:19

回复
举报

7500

帖子

2

TA的资源

版主

树莓派5视频跑yolo11能达到多少帧率,我感觉可以测测


回复

7763

帖子

2

TA的资源

五彩晶圆(高级)

>>>推理耗时 357.3 毫秒

一秒钟差不多3-4帧?

个人签名

默认摸鱼,再摸鱼。2022、9、28


回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 4

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表