3.4.3 face_demo
face_demo位于:${BMNNSDK}/examples/calibration/face_demo
face_demo为使用squeezenet网络进行人脸检测的演示demo,主要包括:
检测程序的编译;
生成squeezennet int8 umodel;
使用squeezennet int8 umodel进行人脸检测。
3.4.3.1 测试脚本函数介绍
用户可以根据需要参考./face_demo.sh文件的函数执行命令,更详细的说明请参考目录下《README.md》。
# 切换工作目录
cd /workspace/examples/calibration/face_demo
# 使能脚本中函数,这样就可以在命令行中直接使用脚本中的函数了
source face_demo.sh3.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)确认。
补充说明:
最后的Gtk-WARNING是由于程序在最后使用OpenCV imshow()函数创建窗口显示图片,而默认在容器内无法使用显示设备,可以忽略。
若您需要在docker容器内显示图像,需要确保以下几点:
一台安装了显示器的主机A(192.168.150.100)用于显示画面
docker容器所在的宿主机B跟主机A网络连通(A、B可以是同一台主机)
主机A上安装了X11 Server且已正确配置,允许客户端通过tcp传输待显示画面
在docker容器内正确设置了DSIPLAY环境变量:export DISPLAY= 192.168.150.100:0.0
关于X11 Server的安装、配置方法以及其他更多实现细节,请自行查阅资料。
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)比较。
最后更新于