OpenCV之使用MTCNN进行脸部特征检测
MTCNN
Multi-task Cascaded Convolutional Neural Networks for Face Detection, based on TensorFlow
install
pip install mtcnn==0.0.8
usage
>>> from mtcnn.mtcnn import MTCNN
>>> import cv2
>>>
>>> img = cv2.imread("ivan.jpg")
>>> detector = MTCNN()
>>> print(detector.detect_faces(img))
[{'box': [277, 90, 48, 63], 'keypoints': {'nose': (303, 131), 'mouth_right': (313, 141), 'right_eye': (314, 114), 'left_eye': (291, 117), 'mouth_left': (296, 143)}, 'confidence': 0.99851983785629272}]
检测器返回一个JSON对象列表。每个JSON对象包含三个键:"box"、"confidence"、"keypoints"
- 检测框在键"box"下以 [x, y, width, height]格式存在
- 键“confidence” 是检测框内容是一张脸的概率
- 关键点包括左眼、右眼、鼻子、左嘴角、右嘴角。每个都是以像素点位置定义 (x, y)。
MTCNN的作者主页
实时检测
检测结果(脸太丑就遮起来了):