基于openvino和python环境实现yolox图像检测:踩坑记录

算法部署 专栏收录该内容
6 篇文章 0 订阅

基于openvino和python环境实现yolox图像检测:踩坑记录

最近看到openvino在Github上开源了一部分openvino_contrib,计划支持ARM架构CPU,就想着学学Openvino,想着单刷树莓派,正好yolox宣称吊打yolo系列,有支持各种加速引擎,果断拿来试试,然后就苦逼了,但最终填坑,所以想着记录一下,和大家分享一下。

先甩个openvino_contrib和yolox地址:
Github:openvino_contrib
Github:yolox

第一步:openvino安装

安装openvino,网上有很多现成的教程,其实都是翻译官网教程,最好是按着官网装,因为有些教程结合自己的系统加了一下设置,可能不太适合初装者,基本步骤就是:

 下载安装包——安装——添加环境变量——安装openvino依赖——安装demo依赖——运行demo验证安装成功

安装教程如下
Ubuntu安装openvino官方教程

我是在anaconda的base环境下安装的,记得安装命令前加sudo,不然就装在usr目录下了;记得添加环境变量;在最后跑官方demo_squeezenet的时候,提醒我没有protobuf和test-generator,直接pip install就可以,按理说应该在install_dependencies的时候安装好,问题不大,自己装上就行,装好之后可执行第二步,以下为自己踩过的坑。

注意:

(1)目前的openvino版本还不支持python3.8,base环境最好是3.6,3.7,如果用了3.8版本,安装也能通过
demo测试,但后续做自己的项目会报各种错误,主要是没法解决,我就是重装了anaconda替换了之前的3.8版本。
(2)在base环境下安装的python版本要和以后虚拟环境下的python版本一致,否则也会报错如下,直接创建了和base一样的虚拟环境,还好目前主流的深度学习算法都要求3.6,3.7就行。

ImportError: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory

坑来了: 我在base环境下怎么都无法import cv2,也无法from openvino.inference_engine import IECore,会报以下错误

ImportError: /opt/intel/openvino_2021/python/python3.6/openvino/inference_engine/ie_api.so: undefined symbol: _ZN15InferenceEngine7details14CNNNetworkImplC1ERKNS_11ICNNNetworkE`

我上网翻了无数有关的解答,又说python版本不对的,有说libtbb位置不对的,我基本都试了,都没解决,我一度怀疑Openvino没装好,反复装卸,通过demo测试,都不行,直到创建了一个虚拟环境才实现调用。

第二步:安装yolox环境并运行Openvino demo

(1)从上面的github链接里下载yolox项目,根据requriements安装环境依赖;
(2)采用openvino自带的mo.py将yolox的pth格式模型转换成xml格式,我用的是yolox转换后会生成三个文件bin文件,xml文件和mapping文件,demo运行的时候只需要xml文件;
(3)运行demo,因为demo要调用yolox库函数,我直接把openvino_inference.py文件和检测图片放在项目根目录下了,在终端执行(usr替换自己的用户名)

`python openvino_inference.py -m /home/*usr*/PycharmProjects/YOLOX-main/demo/OpenVINO/python/converted_output/yolox_s.xml -i dog.jpg`
结果如下

检测结果

(4)如果想要使用Pycharm开发环境的话,除了要加载虚拟环境编译器,还需要
a)把openvino导入到python环境中去,按照安装路径opt/intel/openvino(版本号)/python/python3.7找到openvino文件,拷贝到虚拟环境site-packages下去,给出我的参考路径
/home/usr(你的用户名)/anaconda3/envs/yolox/lib/python3.7/site-packages
b)sudo find / -name
pycharm.sh找到pycharm.sh文件,找到文件路径后cd到该目录下,运行./pycharm.sh
c)修改一下openvino_inference.py里的arg参数项目,把required选项注释掉,下面添加deafault=‘模型路径’和’图片路径’,变成默认路径,点击run就可以了!

感想

(1)个人觉得openvino的开源社区做的不太友好,不知道是用的人少还是自己太菜,想找个问题的答案都找不到,学习时间成本有点高,毕竟各大厂都出加速引擎了,都可以跟着教程走一走,我折腾了两天,差点放弃。
(2)base环境下调用cv2和engine其实没有解决,不影响目前使用,但以后在arm上创建虚拟环境可能不太方便,这个问题还是得考虑一下根源和解决办法,要是有大神看到指点一下就好了。
(3)计划接着验证一下openvino的引擎推理速度和在arm上部署的难度和效果。

  • 5
    点赞
  • 6
    评论
  • 5
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

<p class="MsoNormal" style="text-align: left; mso-pagination: widow-orphan; background: white;" align="left"><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">YOLOX</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">是旷视科技新近推出的高性能实时目标检测网络,性能超越了<span lang="EN-US">YOLOv3/YOLOv4 /YOLOv5</span>。</span></p> <p class="MsoNormal" style="text-align: left; mso-pagination: widow-orphan; background: white;" align="left"><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">YOLOX</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">使用</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;"> PyTorch</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">开发,采用了<span lang="EN-US">Anchor-free</span>机制、解耦头、<span lang="EN-US">Multi Positives</span>、先进的标签分配策略强数据增广等前沿技术。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;"> </span></p> <p class="MsoNormal" style="text-align: left; mso-pagination: widow-orphan; background: white;" align="left"><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">本课程将手把手地教大家使用</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;">labelImg</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">标注使用</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;">YOLOX</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">训练自己的数据集,完成一个多目标检测实战项目,可检测图像视频中的足球梅西两个目标类别。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;"> </span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 宋体; color: #222226; mso-font-kerning: 0pt;"> </span></p> <p class="MsoNormal" style="text-align: left; mso-pagination: widow-orphan; background: white;" align="left"><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">本课程分别在</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;">Windows</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;"></span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;">Ubuntu</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">系统上做项目演示。包括:安装</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;">YOLOX</span><span style="mso-bidi-font-size: 10.5pt; font-family: '微软雅黑',sans-serif; mso-bidi-font-family: Arial; color: #222226; mso-font-kerning: 0pt;">、标注自己的数据集、准备自己的数据集(自动划分训练集验证集)、修改配置文件、训练自己的数据集、测试训练出的网络模型性能统计。</span><span lang="EN-US" style="mso-bidi-font-size: 10.5pt; font-family: 'Arial',sans-serif; mso-fareast-font-family: 微软雅黑; color: #222226; mso-font-kerning: 0pt;"> </span></p> <p class="MsoNormal"><span lang="EN-US"> <img src="https://img-bss.csdnimg.cn/202107250855573279.jpg" alt="图片检测效果" /></span></p> <p><img src="https://img-bss.csdnimg.cn/202107250856252439.png" alt="课程内容" /></p>
评论 6 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

进击の攻城狮

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值