工业派-配置Intel神经计算棒二代(NCS2)

最近两天在工业派ubuntu16.04上配置了Intel神经计算棒二代——Intel Neural Compute Stick,配置过程之艰辛我都不想说了,实在是太折磨人。不过历尽千辛万苦,总算让计算棒可以在工业派ubuntu16.04系统上跑了,还是蛮欣慰的。

 注:以下所说的计算棒默认说的是计算棒二代,不是计算棒一代

下面简单记录一下我在配置计算棒过程中遇到的一些坑

一、运行官方demo遇到的坑

1.一定要按照官网来安装配置加速棒!一定要按照官网来安装配置加速棒!一定要按照官网来安装配置加速棒!不要在网上瞎几把找帖子,我是深有体会,很多都写的不明不白,只有官网的配置教程才是最简单的,不会让你掉进更多坑!(教程前面的一些概述一定要认真看,上面写明了一些软硬件配置要求)

附上一些重要链接:

官网配置教程:https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_raspbian.html

最新OpenVINO™Toolkit软件包下载:https://download.01.org/opencv/2019/openvinotoolkit/     

下载下来的安装包形式:l_openvino_toolkit_raspbi_p_<version>.tgz

注:博主工业派系统是ubuntu16.04,虽然不是树莓派官方系统,但是树莓派也是32位的linux系统,所以在工业派上配置计算棒和在树莓派上配置计算棒是一样的操作(最主要原因还是工业派官方支持计算棒)

注:工业派的bash.bashrc路径为:/etc /bash.bashrc ,bash.bashrc文件主要用于设置登录时控制台输出的信息

2.前车之鉴,如图一所示,建议软件安装包使用最新版2019_R1.1,不推荐安装2018_R5。博主最先尝试使用了2018_R5,在后面配置计算棒的时候发现,会报错如图二所示,一直无法解决,换成2019_R1.1版本后就没有这个问题了!

                             图一

                                                         图二

 3.cmake版本号一定要正确,如三图所示,官网教程明确说明 cmake 版本号一定要大于等于3.7.2

                                                        图三

如果cmake版本号低于3.7.2,则在后面执行命令:cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino/deployment_tools/inference_engine/samples  时会报图四所示错误!

                                                         图四

这里官网也有点坑,如图五所示,如果按照官网命令 sudo apt install cmake  来安装cmake,会发现安装的cmake版本号会低于3.7.2,博主一开始就忽略了这里,后面绕了一圈才发现是自己前面这里的cmake没有配置好,简直了! 

                                                          图五

博主后面是手动安装的cmake3.13.0,安装教程链接放在这里:新手上路——树莓派3B+安装cmake_树莓派3b安装cmake无法连接官网-CSDN博客

安装完cmake后,执行 cmake --version 时,如果报错显示:-bash: /usr/bin/cmake: No such file or directory  ,则应该是系统没有找到 cmake 命令。解决办法:做一个链接即可,即执行命令:ln -s /usr/local/bin/cmake /usr/bin

4. 在终端显示 OpenVINO environment initialized 后,说明 OpenVINO环境已经初始化成功,接着输入python3进入编辑器,再输入import cv2 可能会出现如图六所示报错:

                                                       图六

解决办法:

执行命令:sudo vi ~/.bashrc 

在文档尾部加上:export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/opt/intel/openvino/inference_engine/lib/armv7l/

最后执行命令:source  ~/.bashrc

成功!

注:核心思想就是将libinference_engine.so文件所属目录添加到 linux 的环境变量中,这样用户就可以访问到这个目录下的libinference_engine.so文件,也就不会引起报错了

5. import openvino可能也会出现如下报错:

原因:没有把需要的openvino模块目录添加到系统的pythonpath中,导致找不到openvino模块

解决办法:

执行命令:sudo vi ~/.bashrc 

在文档尾部加上:export PYTHONPATH=/opt/intel/openvino/python/python3.5/armv7l:$PYTHONPATH

退出编辑,执行命令:source  ~/.bashrc

成功!

6. python3 进入python命令行后,输入 import cv2 ,再输入 cv2.__version__,发现结果是: ‘4.1.0-openvino’,这表明openvino配置成功!但是如果 sudo python3 进入python命令行后,输入 import cv2 ,再输入 cv2.__version__,可能会发现结果是:  ‘4.1.0’,而不是配置openvino后应该正确显示的 ‘4.1.0-openvino’。出现这种差别的原因是 sudo 命令会使系统自动重置PATH环境变量,这样就区别于普通用户执行命令的环境变量。解决这个问题的方法:

执行命令:sudo nano /etc/sudoers

 注释  Defaults env_reset  这行代码

在文件的最后添加如下两行代码:

Defaults env_keep += "PYTHONPATH"

Defaults env_keep += "Any other env variable you want to keep"

保存退出,大功告成!

参考:https://blog.csdn.net/weixin_34390105/article/details/87297075

7.在使用OpenCV * API运行人脸检测模型推理时,执行 python3 openvino_fd_myriad.py 可能会报如下错误:

dnn.cpp:2538: error: (-2:Unspecified error) Build OpenCV with Inference Engine to enable loading models from Model Optimizer. in function 'readFromModelOptimizer'

解决办法:

先执行命令:source /opt/intel/openvino/bin/setupvars.sh

再执行命令:echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc

注:执行第一条命令只是临时设置环境变量的,第二条命令才是永久的永久设置环境变量!

8.其它操作按照官网操作步骤一步一步来即可!

----------------------------运行官方demo效果--------------------------------

二、运行自己网络模型遇到的坑

1.在电脑ubuntu16.04上安装openVINO

如果要将自己的网络模型用于计算棒推理,则必须将该模型转换为由推理引擎用作输入的.bin和.xml中间表示(IR)文件。因为工业派(树莓派)上ubuntu16.04上安装的openVINO是阉割版的,功能不全,不支持模型转换,所以为了实现模型转换,还必须在win10或者ubuntu上安装一遍完整版openVINO。因为我在win10上打死装不上vs2019,神坑,所以我放弃在win10装openVINO,转而在电脑ubuntu16.04上装openVINO。安装的时候才发现在电脑ubuntu16.04安装openVINO真的是贼简单!附上官方安装网址:https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html

2.将tensorflow转换为movidius格式(.xml & .bin)------注:是冻结tensorflow模型(SSD Mobilenet V2)

2.1 执行命令: cd /opt/intel/openvino/deployment_tools/model_optimizer

2.2 执行命令:sudo python3 mo.py --input_model frozen_inference_graph.pb --tensorflow_use_custom_operations_config extensions/front/tf/ssd_v2_support.json --tensorflow_object_detection_api_pipeline_config pipeline.config --input_shape=[1,416,416,3]  --data_type=FP16

成功!

注:所需frozen_inference_graph.pb、pipeline.config文件需要自己提前准备好

参考网址:

https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_Convert_Model_From_TensorFlow.html

https://software.intel.com/en-us/forums/computer-vision/topic/785586

因特尔神经计算棒(NCS)+树莓派+yolo-v3实现object-detection_树莓派 神经计算棒-CSDN博客

3.在工业派上使用转换后的xml和bin文件

执行: python3 **.py

报错:

表示花了两三天时间都没解决,心态都搞崩了,只想说fuck!目前针对这种情况,博主还是没找到解决办法,但是我有一些解决思路,写在这里,可以供需要的朋友参考!

经过多次试验发现这个报错和opencv的cv2.videoCpture方法有关,当videoCpture的参数是0或1时,python3 **.py执行正常,表明opencv是可以打开摄像头的。但是当videoCpture的参数是本地视频文件的路径时,执行python3 **.py,就会出现如上报错,我猜测可能是opencv没安装正确。经过百度、谷歌查询,得知可能是没有安装 ffmpeg ,但是博主去各种安装、重新编译opencv还是没解决这个问题,所以到最后只能放弃了。

参考网址:(参考了还是没解决问题,想哭~)

linux下opencv打不开视频的解决方法_linux arm 编译opencv 无法打开视频-CSDN博客

OpenCV VideoCapture error: VIDIOC_REQBUFS: Inappropriate ioctl for device - Stack Overflow

-----------曲线救国办法-----------------------

妈哟,实在解决不了怎么办呢?只能换个办法呗,反正只要能成功就行!

执行: sudo python3 **.py

又报错!其实在情理之中,毕竟只是提高了一下权限,但是这个报错一看的话感觉也有点烧脑,如下:

仔细一看,是因为加了sudo后,路径 /opt/intel/openvino/python/python3.5/armv7l/openvino/inference_engine下的libmyriadPlugin.so没有找到。自行cd到该文件目录下,发现是真没有libmyriadPlugin.so这个文件,所以系统无法加载这个文件。解决办法就是想办法在其它目录中找到libmyriadPlugin.so文件,然后复制到 /opt/intel/openvino/python/python3.5/armv7l/openvino/inference_engine下即可。经过查找发现 /opt/intel/openvino/deployment_tools/inference_engine/lib/armv7l 目录下有libmyriadPlugin.so文件,于是将该文件复制到 /opt/intel/openvino/python/python3.5/armv7l/openvino/inference_engine下,再运行sudo python3 **.py,发现还是有相同的报错。百度后发现是因为 .so文件是有依赖的,于是博主索性将 /opt/intel/openvino/deployment_tools/inference_engine/lib/armv7l 下的所有文件都复制拷贝到 /opt/intel/openvino/python/python3.5/armv7l/openvino/inference_engine下,再运行sudo python3 **.py,发现这回成功了!

三、总结

最后两个报错,我几近崩溃,熬了好久都没熬出答案,经过不断摸索总算是解决了其中一个问题,尽管另一个问题没解决,但是已经不影响操作了!不过还是希望解决了VIDIOC_REQBUFS: Inappropriate ioctl for device这个问题的朋友可以告知一下,万分感谢!我也总算是在工业派上利用计算棒跑通了tensorflow程序,这一路踩得地雷、掉的坑实在太多,博主早已面目全非,激情不再,好在捱到了最后,顺利解决了问题,终于可以松一口气了!总结一下就是遇到问题千万不要轻言放弃,一定要动用所有资源去寻找答案,努力努力再努力,总会柳暗花明的!当然,很多时候也许也需要换一种思维去寻找解决问题的办法,不要在一棵树上吊死。不管什么猫,能捉到耗子的猫就是好猫!

仅供参考!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707022.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

究极完整版!!Centos6.9安装最适配的python和yum,附带教大家如何写Centos6.9的yum.repos.d配置文件。亲测可行!

前言&#xff01; 这里我真是要被Centos6.9给坑惨了&#xff0c;最刚开始学习linux的时候并没有在意那么的&#xff0c;没有考虑到选版本问题&#xff0c;直到23年下半年&#xff0c;官方不维护Centos6.9了&#xff0c;基本上当时配置的文件和安装的依赖都用不了了&#xff0c…

干式蒸发器、满液式蒸发器以及降膜式蒸发器的介绍

干式蒸发器 1、干式蒸发器原理、定义 干式蒸发器制冷剂在换热管内通过&#xff0c;冷水在高效换热管外运行&#xff0c;这样的换热器换热效率相对较低&#xff0c;其换热系数仅为光管换热系数的2倍左右&#xff0c;但是其优点是便于回油&#xff0c;控制较为简便&#xff0c;…

零知识证明:哈希函数-Poseidon2代码解析与benchmark

1、哈希函数(Hash Function)与Poseidon 在密码学中,哈希函数是一种将任意大小的数据映射到固定大小的输出的函数。哈希函数的输出称为哈希值或哈希码。哈希函数具有单向性和抗碰撞性。一些常见的哈希函数包括 MD5、SHA-1、SHA-256 和 SHA-3。例如,假设您要验证一个文件的完整…

四川易点慧电商抖音小店运营秘籍引领电商新潮流

在当今数字化浪潮中&#xff0c;抖音小店作为电商领域的一匹黑马&#xff0c;以其独特的社交属性和庞大的用户基础&#xff0c;正迅速崛起为新的销售增长点。四川易点慧电子商务有限公司&#xff0c;作为电商行业的佼佼者&#xff0c;深谙抖音小店运营的精髓&#xff0c;专业助…

基于vs和C#的WPF应用之动画4---跳跳球

一、画布和图形 <Canvas x:Name"canvas4" Grid.Row"1" Grid.Column"1" Width"200" Height"200"><Canvas.Triggers><EventTrigger RoutedEvent"Loaded"><BeginStoryboard Storyboard"…

Hotcoin Research|玩赚WEB3:探索Apeiron:颠覆传统的区块链游戏,融合神话与现代玩法

1. 游戏概述 1.1 游戏类型与主题 Apeiron 是一款结合了上帝模拟、Roguelike、动作角色扮演&#xff08;ARPG&#xff09;和卡牌游戏元素的区块链游戏。这款游戏以独特的方式融合了多种游戏类型&#xff0c;提供了一个丰富多彩的神话宇宙&#xff0c;每个星系都受到不同现实世…

纯血鸿蒙APP实战开发——Worker子线程中解压文件

介绍 本示例介绍在Worker 子线程使用ohos.zlib 提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作&#xff0c;解压成功后将解压路径返回主线程&#xff0c;获取解压文件列表。 效果图预览 使用说明 点击解压按钮&#xff0c;解压test.zip文件&#xff0c;显…

Nebula街机模拟器 Mac移植版(400+游戏roms)汉化版

nebula星云模拟器是电脑上最热门的街机游戏模拟器之一&#xff0c;玩家可以通过这个小巧的模拟器软件进行多款经典街机游戏启动和畅玩&#xff0c;本次移植的包含400多款游戏roms&#xff0c;经典的三国志、三国战纪、拳皇、街霸、合金弹头、1941都包含在内。 下载地址&#xf…

数字孪生之数据采集

一、数据采集的定义和作用 在数字孪生中&#xff0c;采集是指从现实世界中收集数据并将其传输到数字孪生系统中的过程。采集的目的是为了获取现实世界中的实时数据&#xff0c;以便在数字孪生系统中进行分析、模拟和预测。 采集的作用主要有以下几个方面&#xff1a; 数据同步…

一个强大的在线解析网站,无需登录,只用把视频链接粘贴进去就能免费解析下载视频。

TiQu.cc是什么&#xff1f; TiQu.cc是一个强大的在线工具&#xff0c;让用户可以从包括Facebook、VK、Twitter、Tiktok、Instagram等在内的100多个平台下载他们喜爱的视频。不论是音乐、电视节目、电影、短片还是个人上传的内容&#xff0c;TiQu.cc都可以帮助您随时随地以离线…

诸葛智能携手五大银行,以数据驱动的营销中台带来可预见增长

对于银行来说&#xff0c;客户是赖以生存的基础&#xff0c;也是保持活力的关键。尤其是大数据、人工智能等新兴技术的推动下&#xff0c;通过数据赋能产品升级和服务创新&#xff0c;深挖客户潜能&#xff0c;更是助推银行快步迈入高质量发展的新阶段。 在银行加速拥抱新质生…

抖音多直播间自动发送评论自动涨粉

抖音&#xff0c;这个名字我相信大家都不会陌生。作为一款流行的短视频和直播平台&#xff0c;抖音已经融入了我们的日常生活。我想今天和大家分享的就是如何在抖音上吸引更多的粉丝&#xff0c;特别是在直播间中。大家都知道&#xff0c;直播间的粉丝多了&#xff0c;可以带动…