视觉识别 - 02.MediaPipe人脸识别
作者:Sun zi chao     发布时间:2022-04-17 11:00:06    阅读次数:73
本系列文章介绍各类图像识别的使用方法,运用这些技巧采集更多的原始数据,训练我们的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)


桂ICP备11003301号-1 公安备案号:45040302000027 Copyright @ 2021- 2022 By Sun zi chao

阅读统计: 1.93W 文章数量: 76 运行天数: 416天 返回cmnsoft