카테고리 없음

MediaPipe 사용해보기

Wood Pecker 2021. 8. 11. 16:32

 

1. 개요

이 MeidaPipe를 이용하면 AI 를 쉽게 개발에 적용하여 개발할 수 있다. MeidaPipe는 Google 에서 제공하는 머신러닝을 실행 할 수 있는 솔루션이다.

https://google.github.io/mediapipe/

 

2. 파이썬에서 Face Mesh를 사용하여 보자.

파이썬 프로젝트를 만들고 MeidaPipe 라이브러리를 설치한다. 홈페이지에는 많은 샘플 코드가 있으며 거의 수정없이 바로 수행된다. 라이브러리도 쉽게 설치가 된다.

> pip install mediapipe

 

3. 코드의 실행

MeidaPipe 의 Face Mesh 샘플코드를 실행하여 보자.

import cv2
import mediapipe as mp
mp_drawing = mp.solutions.drawing_utils
mp_face_mesh = mp.solutions.face_mesh

# For webcam input:
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
cap = cv2.VideoCapture(0)
with mp_face_mesh.FaceMesh(min_detection_confidence=0.5, min_tracking_confidence=0.5) as face_mesh:
    while cap.isOpened():
        success, image = cap.read()
        if not success:
          print("Ignoring empty camera frame.")
          # If loading a video, use 'break' instead of 'continue'.
          continue

        # Flip the image horizontally for a later selfie-view display, and convert
        # the BGR image to RGB.
        image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
        # To improve performance, optionally mark the image as not writeable to
        # pass by reference.
        image.flags.writeable = False
        results = face_mesh.process(image)

        # Draw the face mesh annotations on the image.
        image.flags.writeable = True
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        if results.multi_face_landmarks:
            for face_landmarks in results.multi_face_landmarks:
                print(face_landmarks)
                mp_drawing.draw_landmarks(
                  image=image,
                  landmark_list=face_landmarks,
                  connections=mp_face_mesh.FACE_CONNECTIONS,
                  landmark_drawing_spec=drawing_spec,
                  connection_drawing_spec=drawing_spec)
        cv2.imshow('MediaPipe FaceMesh', image)
        if cv2.waitKey(5) & 0xFF == 27:
            break
cap.release()

 

3. 실행결과 

 웹캠을 이용하여 얼굴의 Face를 추적할 수 있다. 

 마커의 고유 위치 번호는 아래 그림과 같다. 

반응형