Mediapipe를 사용해 보았습니다.

Mediapipe에서 얼굴 인식을하는 이야기



설치



우선 mediapipe 설치에서. pip 설치에서 ok.
pip install mediapipe

MediaPipe로 할 수 있는 일


  • 얼굴 검출
  • 얼굴 인식
  • 홍채 추적
  • 손, 상체, 전신의 골격 추정
  • 머리카락 세분화
  • 물체 검출
  • 추적
  • 입체 물체 검출
  • KNIFT

  • 이번에 실시하는 것은 상기 안에 있는 얼굴 검출입니다.

    코드


    import mediapipe
    import cv2 
    import numpy 
    import mediapipe as mp
    import math
    import matplotlib.pyplot as plt
    
    mp_drawing = mp.solutions.drawing_utils 
    
    img = cv2.imread('顔検出したい画像のpath')
    mp_face_detection = mp.solutions.face_detection
    
    face_detection=mp_face_detection.FaceDetection(min_detection_confidence=0.1, model_selection=1) 
    results = face_detection.process(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    
    DESIRED_HEIGHT = 480
    DESIRED_WIDTH = 480
    def resize_and_show(image):
        h,w = image.shape[:2]
        if h < w:
            img = cv2.resize(image, (DESIRED_WIDTH, math.floor(h/(w/DESIRED_WIDTH))))
        else:
            img = cv2.resize(image, (math.floor(w/(h/DESIRED_HEIGHT)), DESIRED_HEIGHT))
        img=cv2.cv2.cvtColor(img, cv2.COLOR_BGR2RGB)    
        plt.imshow(img)
    annotated= img.copy()
    for detection in results.detections:
        annotated_image=mp_drawing.draw_detection(annotated, detection)
        resize_and_show(annotated)
    

    이 코드의 실행 시간은 0.2321150302886963이었습니다. 꽤 속도라고 생각합니다.
    실행 결과


    다양한 시도하고 싶습니다.



    pip install 대신 git clone을 사용하여 코드를 가져 와서 현재 재생 중입니다.
    얼굴의 좌표가 입력되어 구형을 쓰고 있는 것이 여기의 기능이므로, 이 함수를 만져 얼굴에 모자이크를 걸려고 하고 있습니다.
    간단하게 할 수 있습니다만, 동영상으로 시험하면 에러가 나왔으므로, 잘 움직이면 합니다.

    좋은 웹페이지 즐겨찾기