人脸识别案例
前置条件
请检查以下条件要求是否满足,如不满足请按照备注进行相应处理。如果CANN版本升级,请同步检查第三方依赖是否需要重新安装(5.0.4及以上版本第三方依赖和5.0.4以下版本有差异,需要重新安装)。
条件 | 要求 | 备注 |
---|---|---|
CANN版本 | >=5.0.4 | 请参考CANN样例仓介绍中的安装步骤完成CANN安装,如果CANN低于要求版本请根据版本说明切换samples仓到对应CANN版本 |
硬件要求 | Atlas200DK | 摄像头样例仅在Atlas200D测试及运行,产品说明请参考硬件平台 |
第三方依赖 | presentagent,ffmpeg+acllite | 请参考第三方依赖安装指导(C++样例)完成对应安装 |
样例准备
-
获取源码包。
可以使用以下两种方式下载,请选择其中一种进行源码准备。- 命令行方式下载(下载时间较长,但步骤简单)。
# 开发环境,非root用户命令行中执行以下命令下载源码仓。 cd ${HOME} git clone https://gitee.com/ascend/samples.git
注:如果需要切换到其它tag版本,以v0.5.0为例,可执行以下命令。
git checkout v0.5.0
- 压缩包方式下载(下载时间较短,但步骤稍微复杂)。
注:如果需要下载其它版本代码,请先请根据前置条件说明进行samples仓分支切换。# 1. samples仓右上角选择 【克隆/下载】 下拉框并选择 【下载ZIP】。 # 2. 将ZIP包上传到开发环境中的普通用户家目录中,【例如:${HOME}/ascend-samples-master.zip】。 # 3. 开发环境中,执行以下命令,解压zip包。 cd ${HOME} unzip ascend-samples-master.zip
- 命令行方式下载(下载时间较长,但步骤简单)。
-
获取此应用中所需要的原始网络模型。
模型名称 模型说明 模型下载路径 face_detection 人脸检测网络模型。是基于Caffe的Resnet10-SSD300模型转换后的网络模型。 请参考https://gitee.com/ascend/ModelZoo-TensorFlow/tree/master/TensorFlow/contrib/cv/facedetection/ATC_resnet10-SSD_caffe_AE目录中README.md下载原始模型章节下载模型和权重文件。 vanillacnn 人脸特征点标记网络模型。是基于Caffe的VanillaCNN模型转换后的网络模型。 请参考https://gitee.com/ascend/ModelZoo-TensorFlow/tree/master/TensorFlow/contrib/cv/vanillacnn/ATC_vanillacnn_caffe_AE目录中README.md下载原始模型章节下载模型和权重文件。 sphereface 特征向量获取网络模型。是基于Caffe的SphereFace模型转换后的网络模型。 请参考https://gitee.com/ascend/ModelZoo-TensorFlow/tree/master/TensorFlow/contrib/cv/sphereface/ATC_sphereface_caffe_AE目录中README.md下载原始模型章节下载模型和权重文件。 # 为了方便下载,在这里直接给出原始模型下载及模型转换命令,可以直接拷贝执行。也可以参照上表在modelzoo中下载并手工转换,以了解更多细节。 cd ${HOME}/samples/cplusplus/level2_simple_inference /n_performance/1_multi_process_thread/face_recognition_camera/model wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model /facedection/face_detection_fp32.caffemodel wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models/AE/ATC%20Model /facedection/face_detection.prototxt wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models /face_recognition_camera/face_detection_insert_op.cfg atc --model=./face_detection.prototxt --weight=./face_detection_fp32.caffemodel --framework=0 --output=./face_detection --soc_version=Ascend310 --insert_op_conf=./face_detection_insert_op.cfg --input_shape="data:1,3,300,300" --input_format=NCHW wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models /AE/ATC%20Model/vanillacnn/vanillacnn.caffemodel wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models /AE/ATC%20Model/vanillacnn/vanilla_deploy.prototxt atc --model=./vanilla_deploy.prototxt --weight=./vanillacnn.caffemodel --framework=0 --output=./vanillacnn --soc_version=Ascend310 --input_shape="data:4,3,40,40" --input_format=NCHW wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models /AE/ATC%20Model/sphereface/sphereface.caffemodel wget https://modelzoo-train-atc.obs.cn-north-4.myhuaweicloud.com/003_Atc_Models /AE/ATC%20Model/sphereface/sphereface.prototxt wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models /face_recognition_camera/sphereface_insert_op.cfg atc --model=./sphereface.prototxt --weight=./sphereface.caffemodel --framework=0 --output=./sphereface --soc_version=Ascend310 --insert_op_conf=./sphereface_insert_op.cfg --input_shape="data:8,3,112,96" --input_format=NCHW
样例部署
执行以下命令,执行编译脚本,开始样例编译。
cd ${HOME}/samples/cplusplus/level2_simple_inference/n_performance /1_multi_process_thread/face_recognition_camera/scripts bash sample_build.sh
样例运行
注:开发环境与运行环境合一部署,请跳过步骤1,直接执行步骤2即可。
-
执行以下命令,将开发环境的 face_recognition_camera 目录上传到运行环境中,例如 /home/HwHiAiUser,并以HwHiAiUser(运行用户)登录运行环境(Host)。
# 【xxx.xxx.xxx.xxx】为运行环境ip,200DK在USB连接时一般为192.168.1.2,300(ai1s)为对应的公网ip。 scp -r ${HOME}/samples/cplusplus/level2_simple_inference/n_performance /1_multi_process_thread/face_recognition_camera HwHiAiUser@xxx.xxx.xxx.xxx:/home/HwHiAiUser ssh HwHiAiUser@xxx.xxx.xxx.xxx cd ${HOME}/face_recognition_camera/scripts
-
bash sample_run.sh
查看结果
- 打开presentserver网页界面(打开启动Presenter Server服务时提示的URL即可)。
- 等待Presenter Agent传输数据给服务端,单击“Refresh“刷新,当有数据时相应的Channel 的Status变成绿色。
- 单击右侧对应的View Name链接,查看结果。
常见错误
请参考常见问题定位对遇到的错误进行排查。如果wiki中不包含,请在samples仓提issue反馈。