玩转Atlas 200DK(五)OpenCV的安装

五、OpenCV的安装

8、使用MindStudio运行YoLoV3样例工程

我们记得上次说到OpenCV的安装比较麻烦。是因为OpenCV需要实现交叉编译,即需要在开发环境x86上编译aarch64的包,然后编译好的可执行程序需要在运行环境aarch64上运行。

另外,由于mksd制卡方式和dd镜像制卡方式有点区别。dd镜像方式中很多包昇腾团队已经给我们准备好了。所以在下列的一些(shao)操作里面,张小白会特意提到,如果是mksd制卡方式,需要做哪些操作(言下之意就是,如果是dd方式,那些在200dk ubuntu 18.04 aarch环境上的一些操作就可以省略了。

(1)打开YoLoV3样例工程

打开一个新的YoLoV3工程,可参考:https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture

玩转Atlas 200DK(五)OpenCV的安装

会提示:

玩转Atlas 200DK(五)OpenCV的安装

此时点击OK:

玩转Atlas 200DK(五)OpenCV的安装

在弹出的菜单中再点击OK即可打开这个YoLoV3工程。

此时,还是需要再配置一个deployment的:

玩转Atlas 200DK(五)OpenCV的安装

add一个server:

玩转Atlas 200DK(五)OpenCV的安装

像前面描述一样的增加 connection和mapping即可:

玩转Atlas 200DK(五)OpenCV的安装

当然,编译YoLoV3的工程代码同样也会报找不到OpenCV的问题:

玩转Atlas 200DK(五)OpenCV的安装

我们来看看怎么解决这个问题。

CANN训练营的龙哥 @海中之龙 是个爱学习的好童鞋。他给张小白提供了一个解决方案:

https://gitee.com/ascend/samples/blob/master/cplusplus/environment/separate_environmental_guidance_CN.md#%E5%AE%89%E8%A3%85opencv

玩转Atlas 200DK(五)OpenCV的安装

跟着好学生做应该能成功,不妨试一下吧!

(2)安装OpenCV

方式1:dd镜像制卡的运行环境

如果是dd镜像制卡的运行环境,按以下操作进行:

cd /usr/lib/aarch64-linux-gnu

sudo scp -r HwHiAiUser@192.168.1.2:/lib/aarch64-linux-gnu/* ./

玩转Atlas 200DK(五)OpenCV的安装

sudo scp -r HwHiAiUser@192.168.1.2:/usr/lib/aarch64-linux-gnu/* ./

玩转Atlas 200DK(五)OpenCV的安装

。。。

玩转Atlas 200DK(五)OpenCV的安装

sudo scp -r HwHiAiUser@192.168.1.2:/usr/lib/.so. ./

玩转Atlas 200DK(五)OpenCV的安装

拷贝opencv相关头文件。
sudo scp -r HwHiAiUser@192.168.1.2:/usr/include/opencv /usr/include/

玩转Atlas 200DK(五)OpenCV的安装

sudo scp -r HwHiAiUser@192.168.1.2:/usr/include/opencv2 /usr/include/

玩转Atlas 200DK(五)OpenCV的安装

。。。

玩转Atlas 200DK(五)OpenCV的安装

方式2:mksd制卡的运行环境

这种环境下,运行环境基本上没有开发包。所以需要在200DK上安装OpenCV:

玩转Atlas 200DK(五)OpenCV的安装

.。。

玩转Atlas 200DK(五)OpenCV的安装

x86环境copy回对应的so:

cd /usr/lib/aarch64-linux-gnu

sudo scp -r HwHiAiUser@192.168.1.2:/lib/aarch64-linux-gnu/* ./

玩转Atlas 200DK(五)OpenCV的安装

sudo scp -r HwHiAiUser@192.168.1.2:/usr/lib/aarch64-linux-gnu/* ./

玩转Atlas 200DK(五)OpenCV的安装

sudo scp -r HwHiAiUser@192.168.1.2:/usr/lib/.so. ./

玩转Atlas 200DK(五)OpenCV的安装

sudo scp -r HwHiAiUser@192.168.1.2:/usr/include/opencv* /usr/include

玩转Atlas 200DK(五)OpenCV的安装

(其实仔细看看,除了需要在运行环境200DK上安装OpenCV之外,后续的拷贝动作跟mksd都是一样的。)

(3)执行编译

build:

玩转Atlas 200DK(五)OpenCV的安装

这里比较奇怪,前面OpenCV没报错了,但是后面又去找了 runtime的目录,这个CMakeLists.txt文件确实写得有问题,至少是不适合交叉编译使用。

张小白检查了下上图中的link_librarys, 原来这个runtime目录跟实际的目录不对应:

玩转Atlas 200DK(五)OpenCV的安装

张小白做了以下的修改:( 在原来的runtime目录前增加了 一层arm64-linux目录

玩转Atlas 200DK(五)OpenCV的安装

再重新编译,成功了!

(4)YoLoV3的模型转换

打开 https://gitee.com/ascend/samples/tree/master/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture

A、下载caffe模型

需要先到200DK上执行以下命令:

cd $HOME/samples/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture/model

wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/yolov3.caffemodel
wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model/Yolov3/yolov3.prototxt
wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/YOLOV3_coco_detection_picture/aipp_nv12.cfg

玩转Atlas 200DK(五)OpenCV的安装

B、在运行环境(200DK)的命令行中完成模型转换:

atc –model=yolov3.prototxt –weight=yolov3.caffemodel –framework=0 –output=yolov3 –soc_version=Ascend310 –insert_op_conf=aipp_nv12.cfg

玩转Atlas 200DK(五)OpenCV的安装

C、将转换好的离线模型拷贝到开发环境

在X86上执行:

cd ~/tag/samples/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture/model

scp HwHiAiUser@192.168.1.2:/home/HwHiAiUser/samples/cplusplus/level2_simple_inference/2_object_detection/YOLOV3_coco_detection_picture/model/yolov3.om .

玩转Atlas 200DK(五)OpenCV的安装

D、准备待推理的图片

cd ../data

wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/YOLOV3_coco_detection_picture/dog1_1024_683.jpg –no-check-certificate

玩转Atlas 200DK(五)OpenCV的安装

(4)代码运行

在MindStudio的菜单中选择Run:

玩转Atlas 200DK(五)OpenCV的安装

等了一会儿,运行结果如下:

玩转Atlas 200DK(五)OpenCV的安装

查看本地out/output目录下生成的结果图片:

玩转Atlas 200DK(五)OpenCV的安装

确实 dog 99%已在结果图中标识出来了。

9、再次使用MindStudio打开venc样例工程

回过头来打开dvpp的venc的项目,这个时候应该也能编译和运行了:

玩转Atlas 200DK(五)OpenCV的安装

这里面的细节就不细说了,跟前面处理的方式几乎一样。

玩转Atlas 200DK(五)OpenCV的安装

(未完待续)

Original: https://blog.csdn.net/snmper/article/details/124611613
Author: 张小白TWO
Title: 玩转Atlas 200DK(五)OpenCV的安装

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/704118/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球