3.4.3 face_demo

face_demo位于:${BMNNSDK}/examples/calibration/face_demo

face_demo为使用squeezenet网络进行人脸检测的演示demo,主要包括:

  1. 检测程序的编译;

  2. 生成squeezennet int8 umodel;

  3. 使用squeezennet int8 umodel进行人脸检测。

3.4.3.1 测试脚本函数介绍

./face_demo.sh中提供了以下几个函数供参考使用

  • build_face_demo_fp32:编译使用fp32 umodel的检测程序

  • build_face_demo_int8:编译使用int8 umodel的检测程序

  • convert_squeezenet_to_int8:将fp32 umodel转化为int8 umodel

  • detect_squeezenet_fp32:使用fp32 umodel进行人脸检测

  • detect_squeezenet_int8:使用int8 umodel进行人脸检测

用户可以根据需要参考./face_demo.sh文件的函数执行命令,更详细的说明请参考目录下《README.md》。

# 切换工作目录
cd /workspace/examples/calibration/face_demo
# 使能脚本中函数,这样就可以在命令行中直接使用脚本中的函数了
source face_demo.sh

3.4.3.2 生成int8 umodel

在命令行中执行convert_squeezenet_to_int8生成squeezenet_21k.int8umodel,运行过程需要一段时间(可能10分钟,视您主机的配置而定),请耐心等待:

3.4.3.3 使用int8 umodel进行人脸检测

执行detect_squeezenet_int8使用squeezenet_21k.int8umodel检测人脸:

执行完毕,使用int8 umodel最终检测出19个目标框,可以查看生成的图片(当前目录detection_int8.png)确认。

detect_squeezenet_int8该命令每次执行都会先执行程序的clean和build,若您已经执行过1次,程序已经编译生成,您可以在命令行中直接执行程序:

3.4.3.4 其他测试

您也可以执行face_demo.sh中的其他命令,如detect_squeezenet_fp32测试fp32 umodel的检测结果,并与int8 umodel的结果比对。

执行后,终端将输出以下信息:

可见使用fp32 umodel最终也检测出19个目标框,可以查看生成的图片(当前目录detection.png)确认,并与int8 umodel的结果(当前目录detection_int8.png)比较。

最后更新于