香橙派pip部署ultralytics YOLOv8
香橙派pip部署ultralytics YOLOv8
配置部署
cd到桌面或工作目录
cd 工作目录地址
创建虚拟环境
virtualenv --system-site-packages -p /usr/bin/python3 venv
激活虚拟环境
source venv/bin/activate
配置pip清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
换了源之后,如遇部分冷门库没有的,则可以通过修改pypi官方库安装
https://pypi.org/simple
安装依赖
pip install timm==0.9.8 thop efficientnet_pytorch==0.7.1 einops grad-cam==1.4.8 dill==0.3.6 albumentations==1.3.1 pytorch_wavelets==1.3.0
安装ultralytics
pip install ultralytics
测试
测试yolo命令推理
目前YOLO可在不依赖Python环境的情况下,终端使用yolo单行命令实现全部功能,详见:https://docs.ultralytics.com/usage/cli/
①先去官网下载官方的预训练模型(yolov8n.pt)和测试图片(bus.jpg),同样将下载的文件放到ultralytics_yolov8目录下。
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt
https://ultralytics.com/images/bus.jpg
② 使用yolo单行命令执行简单推理测试(注意前面下载的文件路径)
# 第一个参数是指任务[detect, segment, classify]
# 第二个参数是模式[train, val, predict, export, track)]
# model 参数指向模型文件所在路径
# source 参数指向预测媒体对象文件所在路径
yolo detect predict model=yolov8n.pt source=bus.jpg
测试程序
import cv2
from ultralytics import YOLO
from cv2 import getTickCount, getTickFrequency
# 加载 YOLOv8 模型
model = YOLO("yolov8n.pt") # 这里选择你训练的模型
# 获取摄像头内容,参数 0 表示使用默认的摄像头
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 30)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# 设置适当的缓冲区大小可以减少数据传输的延迟。较小的缓冲区可以减少延迟,但可能会导致数据不连续
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
while cap.isOpened():
loop_start = getTickCount()
success, frame = cap.read() # 读取摄像头的一帧图像
if success:
results = model.predict(source=frame) # 对当前帧进行目标检测并显示结果
annotated_frame = results[0].plot()
# 中间放自己的显示程序
loop_time = getTickCount() - loop_start
total_time = loop_time / (getTickFrequency())
FPS = int(1 / total_time)
# 在图像左上角添加FPS文本
fps_text = f"FPS: {FPS:.2f}"
font = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 1
font_thickness = 2
text_color = (0, 0, 255) # 红色
text_position = (10, 30) # 左上角位置
cv2.putText(annotated_frame, fps_text, text_position, font, font_scale, text_color, font_thickness)
cv2.imshow('img', annotated_frame)
# 通过按下 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release() # 释放摄像头资源
cv2.destroyAllWindows() # 关闭OpenCV窗口
使用在线秒表工具实测情况
左边是笔记本电脑屏幕,右边是香橙派5屏幕

运行后即显示实时识别的界面,无任何优化的情况,目前延时1s左右,fps:1至2帧。
表现得特别卡且延迟较高。

参考资料
香橙派5 RK3588 RKNN开发环境配置 YOLOv8模型转换NPU部署推理 (2024.11)_rk3588 yolov8环境部署-CSDN博客
【香橙派开发板测试】:在黑科技Orange Pi AIpro部署YOLOv8深度学习纤维分割检测模型_香橙派部署yolov8-CSDN博客

浙公网安备 33010602011771号