基于 MTCNN/TensorFlow 实现人脸检测
人脸检测方法有许多,比如
opencv
自带的人脸
Haar
特征分类器和
dlib
人脸检测方法等。对于
opencv
的人脸检测方法,有点是简单,
快速;存在的问题是人脸检测效果不好。正面
/
垂直
/
光线较好的人脸,
该方法可以检测出来,而侧面
/
歪斜
/
光线不好的人脸,无法检测。因
此,该方法不适合现场应用。对于
dlib
人脸检测方法 ,效果好于
opencv
的方法,但是检测力度也难以达到现场应用标准。
MTCNN
是基于深度学习的人脸检测方法,对自然环境中光线,角度
和人脸表情变化更具有鲁棒性,人脸检测效果更好;同时,内存消耗
不大,可以实现实时人脸检测。
代码如下:
from scipy import misc
import tensorflow as tf
import detect_face
import cv2
import matplotlib.pyplot as plt
%pylab inline
minsize = 20 # minimum size of face
threshold = [ 0.6, 0.7, 0.7 ] # three steps's threshold
factor = 0.709 # scale factor
gpu_memory_fraction=1.0
print('Creating networks and loading parameters')