玩转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

会提示:

此时点击OK:

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

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

add一个server:

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

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

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

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

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

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

(2)安装OpenCV

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

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

cd /usr/lib/aarch64-linux-gnu

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

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

。。。

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

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


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

。。。

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

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

.。。

x86环境copy回对应的so:

cd /usr/lib/aarch64-linux-gnu

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


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


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

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

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

(3)执行编译

build:

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

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

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

再重新编译,成功了!

(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

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

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

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 .

D、准备待推理的图片

cd ../data

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

(4)代码运行

在MindStudio的菜单中选择Run:

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

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

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

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

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

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

(未完待续)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小白TWO

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值