我尝试在detect_demo_uvc的基础上修改代码,在识别的同时实时检测人脸,但是检测的结果波动太大,我想用mtcnn来代替yolo做人脸识别。但是在转换mtcnn的pb文件时遇到了困难,我通过summarize_graph找到了输入输出的节点:
Found 3 possible inputs:
(name=pnet/input, type=float(1), shape=[?,?,?,3])
(name=rnet/input, type=float(1), shape=[?,24,24,3])
(name=onet/input, type=float(1), shape=[?,48,48,3])
No variables spotted.
Found 7 possible outputs:
(name=pnet/prob1, op=RealDiv)
(name=pnet/conv4-2/BiasAdd, op=BiasAdd)
(name=rnet/prob1, op=RealDiv)
(name=rnet/conv5-2/conv5-2, op=BiasAdd)
(name=onet/prob1, op=RealDiv)
(name=onet/conv6-2/conv6-2, op=BiasAdd)
(name=onet/conv6-3/conv6-3, op=BiasAdd)
但是修改0_import_model.sh 后执行 提示一下错误:
W Not match node pnet/PReLU3/Neg_1 Neg
Traceback (most recent call last):
File “convertensorflow.py”, line 62, in
File “convertensorflow.py”, line 58, in main
File “acuitylib/app/importer/import_tensorflow.py”, line 150, in run
File “acuitylib/converter/convert_tf.py”, line 584, in match_paragraph_and_param
File “acuitylib/converter/convert_tf.py”, line 483, in _tf_push_ready_node
TypeError: ‘NoneType’ object is not iterable
[12932] Failed to execute script convertensorflow
修改后的0_import_model.sh如下:
$convert_tf
–tf-pb ./model/mtcnn_frozen_model.pb
–inputs “pnet/input rnet/input onet/input”
–input-size-list “3#24,24,3#48,48,3”
–outputs “pnet/prob1 pnet/conv4-2/BiasAdd rnet/prob1 rnet/conv5-2/conv5-2 onet/prob1 onet/conv6-2/conv6-2 onet/conv6-3/conv6-3”
–net-output ${NAME}.json
–data-output ${NAME}.data
pb文件来自于
https://github.com/cyberfire/tensorflow-mtcnn/tree/master/cpp/standalone/models