openvino+linux(Ubuntu)+python+YOLOv5+pytorch

部署运行你感兴趣的模型镜像

openvino在linux上配合yolov5的使用  python版本 pytorch

目录

openvino在linux上配合yolov5的使用  python版本

1、流程:

2、预测代码更改:

3、主要参考文章

4.报错踩坑集合

4.1  mportError: libpython3.9.so.1.0: cannot open shared object file: No such file or directory

4.2  QObject::moveToThread: Current thread (0xb7f210) is not the object's thread (0x188cc30). Cannot move to target thread (0xb7f210)

4.2.1  ERROR: Could not install packages due to an OSError: [Errno 2] 没有那个文件或目录: '/home/amov/anaconda3/envs/yolov5/lib/python3.9/site-packages/PyQt5-5.15.7.dist-info/METADATA'

4.3    [ WARN:0@0.868] global /io/opencv/modules/videoio/src/cap_v4l.cpp (889) open VIDEOIO(V4L2:/dev/video0): can't open camera by index 未解决

4.4    Cannot find reference 'inference_engine' in 'imported module openvino

4.5    DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here. Deprecated in NumPy 1.20; for more details and guidance: NumPy 1.20.0 Release Notes — NumPy v1.24.dev0 Manual (Type.boolean, np.bool),

4.6 Failed to create plugin /home/amov/anaconda3/envs/yolov5/lib/python3.9/site-packages/openvino/libs/libopenvino_intel_gpu_plugin.so for device GPU

4.7    infer_request_handle=exec_net.start_async(request_id=request_id,inputs={input_layer: blob})   File "ie_api.pyx", line 1105, in openvino.inference_engine.ie_api.ExecutableNetwork.start_async ValueError: Incorrect request_id specified!


1、流程:

训练YOLOv5模型-----转化pt文件为onnx-----转化为xml+bin-----放入预测代码中

2、预测代码更改:

1.CPU、GPU的调动选择 

 2.模型路径

 3.名称类型(要预测的种类)

 4.异步模式是否开启(如果使用MP4文件记得改0为mp4路径并且关闭异步模式)

  3、主要参考文章

【pytorch】将yolov5模型通过openVINO2022部署至生产环境(一):python版本+异步模式_颢师傅的博客-优快云博客_python yolov5 部署

   pt文件转化直接使用命令 没有使用代码 

​​​​​​https://blog.youkuaiyun.com/zhou_438/article/details/112846704  这篇文中的这个也是可以的

这篇文中的这个也是可以的

4.报错踩坑集合

4.1  mportError: libpython3.9.so.1.0: cannot open shared object file: No such file or directory

OpenVINO: export failure: libpython3.9.so.1.0: cannot open shared object file: No such file or direc_高精度计算机视觉的博客-优快云博客 做了 好像没什么用

Error: “ImportError: libpython3.9.so.1.0: Cannot Open Shared...

官方解决方案

https://blog.youkuaiyun.com/sunmingyang1987/article/details/104816336?ops_request_misc=&request_id=&biz_id=102&utm_term=ImportError:%20libpython3.9.so.1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-104816336.142^v46^pc_rank_34_default_3&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/sunmingyang1987/article/details/104816336?ops_request_misc=&request_id=&biz_id=102&utm_term=ImportError:%20libpython3.9.so.1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-104816336.142%5Ev46%5Epc_rank_34_default_3&spm=1018.2226.3001.4187

https://blog.youkuaiyun.com/sunmingyang1987/article/details/104816336?ops_request_misc=&request_id=&biz_id=102&utm_term=ImportError:%20libpython3.9.so.1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-104816336.142^v46^pc_rank_34_default_3&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/sunmingyang1987/article/details/104816336?ops_request_misc=&request_id=&biz_id=102&utm_term=ImportError:%20libpython3.9.so.1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-104816336.142%5Ev46%5Epc_rank_34_default_3&spm=1018.2226.3001.4187

这两条是有用的

4.2  QObject::moveToThread: Current thread (0xb7f210) is not the object's thread (0x188cc30). Cannot move to target thread (0xb7f210)

https://blog.youkuaiyun.com/m0_59496782/article/details/122833159?ops_request_misc=&request_id=&biz_id=102&utm_term=QObject::moveToThread:%20Current&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-122833159.142^v47^pc_rank_34_default_2,201^v2^control&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/m0_59496782/article/details/122833159?ops_request_misc=&request_id=&biz_id=102&utm_term=QObject::moveToThread:%20Current&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-122833159.142%5Ev47%5Epc_rank_34_default_2,201%5Ev2%5Econtrol&spm=1018.2226.3001.4187

https://blog.youkuaiyun.com/ZHUO__zhuo/article/details/124183843?ops_request_misc=&request_id=&biz_id=102&utm_term=QObject::moveToThread:%20Current&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-124183843.142^v47^pc_rank_34_default_2,201^v2^control&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/ZHUO__zhuo/article/details/124183843?ops_request_misc=&request_id=&biz_id=102&utm_term=QObject::moveToThread:%20Current&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-124183843.142%5Ev47%5Epc_rank_34_default_2,201%5Ev2%5Econtrol&spm=1018.2226.3001.4187

文二中方法一可行 注意要先换pip、conda源,不然真的慢。清华源有时候会有问题,可以多加两个。

解决方案:QObject::moveToThread: Current thread (***) is not the object‘s thread_江南蜡笔小新的博客-优快云博客

重装时同时降低了opencv-python版本,小于等于安装的opencv版本

https://blog.youkuaiyun.com/qq_43619461/article/details/121784848?ops_request_misc=&request_id=&biz_id=102&utm_term=QObject::moveToThread:%20Current&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-9-121784848.142^v47^pc_rank_34_default_2,201^v2^control&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/qq_43619461/article/details/121784848?ops_request_misc=&request_id=&biz_id=102&utm_term=QObject::moveToThread:%20Current&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-9-121784848.142%5Ev47%5Epc_rank_34_default_2,201%5Ev2%5Econtrol&spm=1018.2226.3001.4187

这篇文章中推荐降python。网上主流就是降opencv/重装pyqt、opencv-python。降python之后很多要重新配置,很麻烦。

4.2.1  ERROR: Could not install packages due to an OSError: [Errno 2] 没有那个文件或目录: '/home/amov/anaconda3/envs/yolov5/lib/python3.9/site-packages/PyQt5-5.15.7.dist-info/METADATA'

为重装中遇到问题 已解决

ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: ‘c:\\users_Wizard Wangjiang的博客-优快云博客 

ERROR: Could not install packages due to an OSError: [ Errno 2] No such file or directory: ***_每天只睡23小时的博客-优快云博客 理论上这个也行 我是直都删了装过

4.3    [ WARN:0@0.868] global /io/opencv/modules/videoio/src/cap_v4l.cpp (889) open VIDEOIO(V4L2:/dev/video0): can't open camera by index 未解决

https://blog.youkuaiyun.com/DSK_981029/article/details/111143231?ops_request_misc=&request_id=&biz_id=102&utm_term=%5B%20WARN:0@0.868%5D%20global%20/io/ope&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-111143231.142^v47^pc_rank_34_default_2,201^v2^control&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/DSK_981029/article/details/111143231?ops_request_misc=&request_id=&biz_id=102&utm_term=%5B%20WARN:0@0.868%5D%20global%20/io/ope&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-111143231.142%5Ev47%5Epc_rank_34_default_2,201%5Ev2%5Econtrol&spm=1018.2226.3001.4187

https://blog.youkuaiyun.com/weixin_29523195/article/details/111984371?ops_request_misc=&request_id=&biz_id=102&utm_term=%5B%20WARN:0@0.868%5D%20global%20/io/ope&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-111984371.142^v47^pc_rank_34_default_2,201^v2^control&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/weixin_29523195/article/details/111984371?ops_request_misc=&request_id=&biz_id=102&utm_term=%5B%20WARN:0@0.868%5D%20global%20/io/ope&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-111984371.142%5Ev47%5Epc_rank_34_default_2,201%5Ev2%5Econtrol&spm=1018.2226.3001.4187

也尝试过给摄像头加权限。应当是程序问题。YOLOv5可以正常调用摄像头进行检测 

之后就不用摄像头了干脆 把输入源改成了视频

https://blog.youkuaiyun.com/u011888840/article/details/106146285/?ops_request_misc=&request_id=&biz_id=102&utm_term=%5B%20WARN:0@0.868%5D%20global%20/io/ope&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-106146285.142^v47^pc_rank_34_default_2,201^v2^control&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/u011888840/article/details/106146285/?ops_request_misc=&request_id=&biz_id=102&utm_term=%5B%20WARN:0@0.868%5D%20global%20/io/ope&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-106146285.142%5Ev47%5Epc_rank_34_default_2,201%5Ev2%5Econtrol&spm=1018.2226.3001.4187

4.4    Cannot find reference 'inference_engine' in 'imported module openvino

调用SDK的时候一直报错,代码编译不通过 无法import openvino.inference /runtime

最后解决是更改了文件名称 原来叫openvino,改成openvino111就跑通了

python 绝对路径 import_米饭的白色的博客-优快云博客_import 绝对路径 尝试过绝对路径import 可能操作不正确 没起作用 理论上应该起作用的

还有说法是把openvino移动到YOLOv5根目录下。链接中方法理论上是可以的,但是我没什么用

使用OpenVINO遇到No name 'IENetwork' in module 'openvino.inference_engine'解决_Einstellung的博客-优快云博客

4.5    DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here. Deprecated in NumPy 1.20; for more details and guidance: NumPy 1.20.0 Release Notes — NumPy v1.24.dev0 Manual (Type.boolean, np.bool),

无害警告

4.6 Failed to create plugin /home/amov/anaconda3/envs/yolov5/lib/python3.9/site-packages/openvino/libs/libopenvino_intel_gpu_plugin.so for device GPU

[CLDNN ERROR]. clGetPlatformIDs error -1001同时出现这个

理论上是因为显卡及其驱动问题 导致的 但是因为在openvino中本来就可以不使用GPU

把GPU的调用去掉就好了

https://blog.youkuaiyun.com/ssyy5233225/article/details/103363835?ops_request_misc=&request_id=&biz_id=102&utm_term=RuntimeError:%20Failed%20to%20create&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-103363835.142^v46^pc_rank_34_default_3&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/ssyy5233225/article/details/103363835?ops_request_misc=&request_id=&biz_id=102&utm_term=RuntimeError:%20Failed%20to%20create&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-103363835.142%5Ev46%5Epc_rank_34_default_3&spm=1018.2226.3001.4187

Error: Failed to Create Plugin, Invalid Vendor Type 官方文档

4.7    infer_request_handle=exec_net.start_async(request_id=request_id,inputs={input_layer: blob})   File "ie_api.pyx", line 1105, in openvino.inference_engine.ie_api.ExecutableNetwork.start_async ValueError: Incorrect request_id specified!

代码bug 在开启异步模式的时候 定义帧号码出现了问题 解决方法是关闭了异步模式 (视频也不能调用异步模式),把异步的全部改成false

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

<think>我们根据用户需求,配置Ubuntu 22.04系统下支持GPU的Python3.10环境,用于运行YOLOv8和PaddleOCR。 步骤包括:安装NVIDIA驱动、CUDA、cuDNN,创建Python3.10虚拟环境,安装PyTorch(GPU版)和PaddlePaddle(GPU版),然后安装YOLOv8和PaddleOCR。 参考引用: [^1] 提到安装CUDA12.4和Ubuntu22.04,并提到如果'nvidia-smi'命令找不到,需要安装驱动。 [^2] 提到使用conda创建环境(但用户要求Python3.10,且我们也可以使用venv)。 [^3] 提到在Ubuntu22.04安装yolov5的非conda方法,包括安装驱动和指定版本的PyTorch(CUDA11.3版本),但我们现在需要安装的是yolov8,且CUDA版本为12.4。 注意:用户要求Python3.10,且使用GPU加速。我们选择CUDA12.4(因为驱动535支持,且PyTorch和PaddlePaddle都支持CUDA12)。 具体步骤: 1. 安装NVIDIA驱动(如果未安装): 根据[^1]和[^3],如果运行`nvidia-smi`提示未找到,则需要安装驱动。我们可以安装推荐版本535(支持CUDA12.4): ```bash sudo apt update sudo apt install nvidia-driver-535 ``` 安装完成后重启系统。 2. 安装CUDA 12.4: 参考[^1]中的方法,使用以下命令安装: ```bash sudo apt install cuda-toolkit-12-4 ``` 3. 安装cuDNN(与CUDA12.4兼容的版本): 从NVIDIA官网下载或使用apt安装(注意版本匹配): ```bash sudo apt install libcudnn8=8.9.7.29-1+cuda12.4 ``` 4. 创建Python3.10虚拟环境(使用venv): 确保系统已安装Python3.10: ```bash sudo apt install python3.10 python3.10-venv ``` 创建虚拟环境: ```bash python3.10 -m venv yolov8_paddleocr source yolov8_paddleocr/bin/activate ``` 5. 安装PyTorch(支持CUDA12.1,因为PyTorch官方目前最高支持到CUDA12.1,但CUDA12.4是向后兼容的,所以可以使用12.1的PyTorch): 注意:PyTorch的CUDA12.1版本可以运行在CUDA12.4的驱动上。根据PyTorch官网(https://pytorch.org/get-started/locally/),安装命令为: ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 ``` 6. 安装YOLOv8: ```bash pip install ultralytics ``` 7. 安装PaddlePaddle GPU版本(支持CUDA12): 根据PaddlePaddle官网(https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/install/pip/linux-pip.html),选择CUDA12.0的版本(注意:PaddlePaddle目前最高支持到CUDA12.0,但CUDA12.4驱动向下兼容): ```bash python -m pip install paddlepaddle-gpu==2.5.2.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html ``` 8. 安装PaddleOCR: ```bash pip install paddleocr ``` 9. 验证环境: - 验证PyTorchYOLOv8依赖)是否可用GPU: ```python import torch print(torch.cuda.is_available()) # 应该输出True ``` - 验证PaddlePaddle是否可用GPU: ```python import paddle paddle.utils.run_check() # 应该输出类似信息:PaddlePaddle works well on 1 GPU. ``` 10. 测试YOLOv8和PaddleOCR: - YOLOv8测试: ```python from ultralytics import YOLO model = YOLO('yolov8n.pt') results = model('https://ultralytics.com/images/bus.jpg') # 使用GPU推理 ``` - PaddleOCR测试: ```python from paddleocr import PaddleOCR ocr = PaddleOCR(use_angle_cls=True, lang='en', use_gpu=True) # 使用GPU result = ocr.ocr('https://paddleocr.bj.bcebos.com/ppstructure/docs/ppstructure_demo.jpg', cls=True) ``` 注意:由于CUDA版本较高,而PyTorch和PaddlePaddle可能未发布对应CUDA12.4的包,但通过使用兼容的版本(PyTorch的CUDA12.1和PaddlePaddle的CUDA12.0),在驱动为535(支持CUDA12.4)的系统上可以正常运行。 常见问题: - 如果驱动安装后`nvidia-smi`显示驱动版本535,但CUDA版本显示为12.4,则说明驱动支持CUDA12.4。 - PyTorch安装后,如果`torch.cuda.is_available()`返回False,请检查PyTorch是否安装了GPU版本,以及CUDA驱动是否匹配。 引用说明: [^1] 提供了安装CUDA12.4和驱动的参考。 [^2] 提供了使用conda创建环境的方法,但我们这里使用venv。 [^3] 提供了安装驱动和PyTorch的示例,但注意其安装的是CUDA11.3版本的PyTorch,而我们这里需要安装支持CUDA12的版本。 因此,我们按照上述步骤配置环境。 生成相关问题:</think>### 在 Ubuntu 22.04 上配置 YOLOv8 和 PaddleOCR 的 GPU 支持环境(Python 3.10) 以下是完整的配置流程,基于 NVIDIA 驱动 535 + CUDA 12.4 + cuDNN 8.9.7 的组合: #### 1. 安装 NVIDIA 显卡驱动 ```bash sudo apt update sudo apt install nvidia-driver-535 # 推荐版本 sudo reboot ``` 验证安装: ```bash nvidia-smi # 应显示 GPU 信息和 CUDA 版本 12.4 ``` #### 2. 安装 CUDA 12.4 和 cuDNN ```bash # 安装 CUDA 12.4 sudo apt install cuda-toolkit-12-4 # 安装 cuDNN 8.9.7 (需 NVIDIA 开发者账号) sudo apt install libcudnn8=8.9.7.29-1+cuda12.4 ``` 验证 CUDA: ```bash nvcc --version # 应显示 CUDA 12.4 ``` #### 3. 创建 Python 3.10 虚拟环境 ```bash sudo apt install python3.10-venv python3.10 -m venv ~/yolov8_paddleocr source ~/yolov8_paddleocr/bin/activate ``` #### 4. 安装 PyTorch (YOLOv8 依赖) ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 ``` 验证 GPU 支持: ```python # test_cuda.py import torch print(torch.cuda.is_available()) # 应输出 True ``` #### 5. 安装 YOLOv8 ```bash pip install ultralytics ``` 测试 YOLOv8 GPU 推理: ```python from ultralytics import YOLO model = YOLO('yolov8n.pt').to('cuda') # 显式指定 GPU results = model('https://ultralytics.com/images/bus.jpg') ``` #### 6. 安装 PaddleOCR (GPU 版) ```bash # 安装 PaddlePaddle GPU 版本 pip install paddlepaddle-gpu==2.5.2.post120 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html # 安装 PaddleOCR pip install paddleocr ``` 测试 PaddleOCR GPU 推理: ```python from paddleocr import PaddleOCR ocr = PaddleOCR(use_angle_cls=True, lang='en', use_gpu=True) # 启用 GPU result = ocr.ocr('https://paddleocr.bj.bcebos.com/ppstructure/docs/ppstructure_demo.jpg', cls=True) ``` #### 7. 环境验证脚本 ```python # env_test.py import torch from paddle import fluid from ultralytics import YOLO from paddleocr import PaddleOCR print(f"[PyTorch] CUDA available: {torch.cuda.is_available()}") print(f"[PaddlePaddle] GPU devices: {fluid.core.get_cuda_device_count()}") # 测试 YOLOv8 yolo_model = YOLO('yolov8n.pt').to('cuda') print("[YOLOv8] GPU inference test passed") # 测试 PaddleOCR ocr = PaddleOCR(use_gpu=True) print("[PaddleOCR] GPU initialization passed") ``` #### 常见问题解决 1. **驱动冲突**: ```bash sudo apt purge nvidia-* # 清除旧驱动 sudo apt install nvidia-driver-535 ``` 2. **CUDA 版本不匹配**: 确保 PyTorch 安装命令使用 `cu121`(CUDA 12.1),兼容 CUDA 12.4[^1] 3. **PaddleOCR GPU 不可用**: 检查是否安装 `paddlepaddle-gpu` 而非 CPU 版本,并指定 `use_gpu=True` 4. **虚拟环境问题**: ```bash sudo apt install python3.10-dev python3.10-venv ``` > 关键提示:YOLOv8 依赖 PyTorch,PaddleOCR 依赖 PaddlePaddle,两者可共存于同一环境[^2]。CUDA 12.4 驱动向后兼容 PyTorch (CUDA 12.1) 和 PaddlePaddle (CUDA 12.0)[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值