资料来源《OpenCV深度学习应用与性能优化实践》第八章。

在复现这个项目的时候发现一些可以调整的小tips。

环境配置阶段

使用conda 创建python 工作环境时,注释掉requirems.txt 里的opencv-python-inference-engine==4.1.2.1,安装OpenVINO 时包含这个了,如果使用requirements 里的版本,imshow 会不可用。 另外安装OpenVINO 后一定要配置环境,指定下面的命令是配置生效,也可以选择加到~/.bashrc 文件里

$source /opt/intel/openvino/bin/setupvars.sh
[setupvars.sh] OpenVINO environment initialized

采集数据阶段

涉及文件 gather_examples.py

调整采集数据频率

如果觉得采集的的速度较慢/快,可以采集的时候加–skip 参数 来调整(或者直接修改),此处含义为每16 帧处理一帧。

image.png

中断后继续采集数据

如果采集数据的时候中途被迫停止了,继续采集数据想要接上之前的编号,修改:

image.png

实时显示采集数据的图片

实时显示color image 和输出的depth face,方便观察数据优劣(距离角度等),方便动态调整。做以下修改:

image.png

训练阶段

如果遇到模块找不到的提示,将train/train_FeatherNet.py 需要移到根目录。 默认参数来自 train/cfgs/FeatherNet.yaml,经试验,这里面已经包含的参数,在使用命令训练的时候是不会被覆盖的。比如你想调整训练的最大迭代(epochs)次数,train_FeatherNet.py –epochs 是不会生效的。要么直接改上面的文件,要么注释掉文件里的配置再在训练的时候跟参数。

推理阶段

即demo run 的阶段。 代码中有个bug,活体检测的输入图不是单张人脸,而是整张图,这可能包含多张人脸,于是多张人脸的检测见过其实用的是同一张图,结果也就一样,即同为false 或同为true。

image.png

源码地址: https://github.com/hcz017/OpenCV_DNN_face_anti_spoofing