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

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

1、流程:

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

2、预测代码更改:

1.CPU、GPU的调动选择

2.模型路径

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

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

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

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

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 objects thread (0x188cc30). Cannot move to target thread (0xb7f210)

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

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

这篇文章中推荐降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

为重装中遇到问题 已解决

理论上这个也行 我是直都删了装过

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

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

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

4.4 Cannot find reference inference_engine in imported module openvino

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

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

尝试过绝对路径import 可能操作不正确 没起作用 理论上应该起作用的

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

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: (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的调用去掉就好了

官方文档

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

经验分享 程序员 微信小程序 职场和发展