香橙派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屏幕
image-20250216144055232

运行后即显示实时识别的界面,无任何优化的情况,目前延时1s左右,fps:1至2帧。

表现得特别卡且延迟较高。

image-20250216143749411

参考资料

香橙派5 RK3588 RKNN开发环境配置 YOLOv8模型转换NPU部署推理 (2024.11)_rk3588 yolov8环境部署-CSDN博客

【香橙派开发板测试】:在黑科技Orange Pi AIpro部署YOLOv8深度学习纤维分割检测模型_香橙派部署yolov8-CSDN博客

在树莓派4B上部署yolov8环境完成高帧率检测任务_yolov8 树莓派-CSDN博客

posted @ 2025-02-16 14:52  Dapenson  阅读(1189)  评论(0)    收藏  举报