张小白教你使用MindStudio 5.0.RC2的Windows版本进行FaceBoxes人脸识别

在MindStudio团队提供的镜像基础上,张小白基于AI1S云服务器完成了MindStudio的卡通风格迁移,https://bbs.huaweicloud.com/blogs/371113

张小白在200DK上也自行完成了MindStudio的MMNet人像分割,https://bbs.huaweicloud.com/blogs/371825

今天就拿 FaceBoxes人脸检测试一试吧!

一、背景

先考虑完成纯200DK后台的应用执行,因为MindStudio执行200DK Python代码的思路就是无需编译,远程执行代码。所以只要在200DK的命令行调通了代码,那么MindStudio Windows版本通过ssh通道执行应该也没啥问题。

注:以下操作是基于 https://bbs.huaweicloud.com/blogs/371825 搭建环境的基础上做的继续尝试,如果读者尚未搭建相关的环境,可按照这个链接提到的从零开始的安装过程进行相关环境的安装。

FaceBoxes人脸检测的代码仓链接:https://gitee.com/ascend/mindxsdk-referenceapps/tree/master/contrib/FaceBoxes

二、安装ffmpeg

看这个链接的软件依赖要求:

由于我们只使用推理,可以直接用现成的pb模型做ATC模型转换即可,所以并不需要安装PyTorch,但是可能需要安装ffmpeg。

所以我们来源码安装ffmpeg:

打开 https://gitee.com/ascend/samples/blob/master/cplusplus/environment/separate_environmental_guidance_CN.md

找到ffmpeg的安装方法:

cd ~

wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz –no-check-certificate

cke_15027.png

解压

tar -zxvf ffmpeg-4.1.3.tar.gz

cke_15945.png

cd ffmpeg-4.1.3

./configure –enable-shared –enable-pic –enable-static –disable-x86asm –cross-prefix=aarch64-linux-gnu- –enable-cross-compile –arch=aarch64 –target-os=linux –prefix=${THIRDPART_PATH}

cke_16707.png

cke_17251.png

make -j8

cke_18335.png

make  install

cke_19590.png

在200DK上的ffmpeg安装完毕。

三、模型转换

获取人脸检测的FaceBoxes的pb模型:

cd ~/mindxsdk-referenceapps/contrib/FaceBoxes

mkdir models

cd models

wget https://mindx.sdk.obs.cn-north-4.myhuaweicloud.com/mindxsdk-referenceapps%20/contrib/Faceboxes/model.zip –no-check-certificate

cke_27610.png

解压 unzip model.zip

cke_28093.png

ATC模型转换:

cke_30010.png

cke_30551.png

模型转换成功。

四、准备FaceBoxes人脸检测的SDK插件库

MindX SDK是以pipeline(流水线)的方式去执行推理的相关代码,有些步骤可以使用MindX SDK提供的标准插件,有些步骤需要自行开发相关的插件。

在本次人脸检测的应用中,后处理部分就自行开发了相关的插件 FaceBoxesPostProcess。

制作pipeline的SDK插件库的方法如下:

cd ~/mindxsdk-referenceapps/contrib/FaceBoxes/plugin/FaceBoxesPostProcess

bash build.sh

cke_35008.png

生成的so在build文件夹下:

cke_35532.png

需将其拷贝到 ${MX_SDK_HOME}/lib/modelpostprocessors/  目录下:

cke_38254.png

并将该so的权限改成跟其他so文件一样的440

cd /home/HwHiAiUser/mxVision/lib/modelpostprocessors/

chmod 440 libfaceboxespostprocess.so

cke_49375.png

五、配置和调试FaceBoxes人脸检测的相关代码

cd ~/mindxsdk-referenceapps/contrib/FaceBoxes/pipeline

vi Faceboxes.pipeline

Faceboxes.pipeline是MindX SDK的pipeline配置定义文件。这里面原来代码中很多配置写了相对路径,跟实际的路径是否一致还是需要检查一下的:

为了在不同路径运行都没问题,我们特意将这些路径都改为绝对路径,如:

modelPath改为 /home/HwHiAiUser/mindxsdk-referenceapps/contrib/FaceBoxes/models/faceboxes-b0_bs1.om

postProcessConfigPath改为 /home/HwHiAiUser/mindxsdk-referenceapps/contrib/FaceBoxes/models/faceboxes-b0_bs1.cfg

postProcessLibPath 改为 /home/HwHiAiUser/mxVision/lib/modelpostprocessors/libfaceboxespostprocess.so

cke_56075.png

由于原来 faceboxes-b0_bs1.cfg 在 config目录下,所以需要将其拷贝到models目录下(其实也可以将pipeline文件内容改为models目录)

cd ~/mindxsdk-referenceapps/contrib/FaceBoxes/config/

cp faceboxes-b0_bs1.cfg ../models/

cke_63088.png

六、在200DK命令行完成图片推理

准备一张带人脸的图片(看图片貌似杨紫琼),改名为test.jpg,放入 项目工程根目录下:

cke_65037.png

cke_65383.png

执行test.py进行 该照片的人脸推理:

python3 test.py

cke_70921.png

cke_71753.png

cke_72364.png

cke_73047.png

从日志上来看没报什么错。

在目录下生成了一个testresult.jpg文件:

cke_91081.png

下载下来看看:

cke_92200.png

可见,结果文件的人脸已经被框起来了。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享