赞
踩
本系列文章介绍各类图像识别的使用方法,运用这些技巧采集更多的原始数据,训练我们的AI模型。本系列文章要有Python和OpenCV基础。
MediaPipe的人脸识别功能是很强大的,除了一般人脸识别,还可以人脸三维重建。这节我们只介绍一般人脸识别。
MediaPipe的人脸识别会找出图片中人脸的6个关键点,2个眼睛,2个耳朵,鼻子和嘴巴。这些关键点将有助于我们对人脸进行下一步的操作。比如,加个眼镜等。
这个程序将从一张照片中识别出人脸,并把每个人脸在图片中的范围和6个关键点标注出来。mp.solutions.drawing_utils是MediaPipe内置的,强大的绘制工具。
- import cv2
- import mediapipe as mp
-
-
- if __name__ == '__main__':
-
- mp_face_detection = mp.solutions.face_detection
- mp_drawing = mp.solutions.drawing_utils
-
- with mp_face_detection.FaceDetection(min_detection_confidence=0.5) as face_detection:
- img=cv2.imread("faces.png")
-
- img = cv2.flip(img,1)
- imgrgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
-
- results = face_detection.process(imgrgb)
-
- img1 = img.copy()
-
- if results.detections:
- for fid,detection in enumerate(results.detections):
- box = detection.location_data.relative_bounding_box
- ih,iw,ic = img.shape
- bbox = [int(box.xmin*iw),int(box.ymin*ih),int(box.width*iw),int(box.height*ih)]
- print(fid,bbox)
-
- print("RIGHT_EYE:",mp_face_detection.get_key_point(detection,mp_face_detection.FaceKeyPoint.RIGHT_EYE))
- print("LEFT_EYE:",mp_face_detection.get_key_point(detection,mp_face_detection.FaceKeyPoint.LEFT_EYE))
- print("NOSE_TIP:",mp_face_detection.get_key_point(detection,mp_face_detection.FaceKeyPoint.NOSE_TIP))
- print("MOUTH_CENTER:",mp_face_detection.get_key_point(detection,mp_face_detection.FaceKeyPoint.MOUTH_CENTER))
- print("RIGHT_EAR_TRAGION:",mp_face_detection.get_key_point(detection,mp_face_detection.FaceKeyPoint.RIGHT_EAR_TRAGION))
- print("LEFT_EAR_TRAGION:",mp_face_detection.get_key_point(detection,mp_face_detection.FaceKeyPoint.LEFT_EAR_TRAGION))
- mp_drawing.draw_detection(img1,detection)
-
- cv2.imshow('img',img1)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。