dlib를 사용하여 검출한 얼굴 랜드마크를 분리하여 보여주기OpenCV/Dlib2023. 10. 17. 22:24
Table of Contents
반응형
안녕하세요. 웹나우테스입니다.
이번 영상에서는 dlib를 사용하여 검출한 얼굴의 랜드마크를 분리하여 보여주는 코드를 설명합니다.
유튜브 영상입니다.
https://youtu.be/C6qZXg4fLPY?feature=shared
# 패키지 설치 # pip install dlib opencv-python # # 학습 모델 다운로드 # http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 import dlib import cv2 as cv import numpy as np detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat') cap = cv.VideoCapture(0) # range는 끝값이 포함안됨 ALL = list(range(0, 68)) RIGHT_EYEBROW = list(range(17, 22)) LEFT_EYEBROW = list(range(22, 27)) RIGHT_EYE = list(range(36, 42)) LEFT_EYE = list(range(42, 48)) NOSE = list(range(27, 36)) MOUTH_OUTLINE = list(range(48, 61)) MOUTH_INNER = list(range(61, 68)) JAWLINE = list(range(0, 17)) index = ALL while True: ret, img_frame = cap.read() img_gray = cv.cvtColor(img_frame, cv.COLOR_BGR2GRAY) dets = detector(img_gray, 1) for face in dets: shape = predictor(img_frame, face) #얼굴에서 68개 점 찾기 list_points = [] for p in shape.parts(): list_points.append([p.x, p.y]) list_points = np.array(list_points) for i,pt in enumerate(list_points[index]): pt_pos = (pt[0], pt[1]) cv.circle(img_frame, pt_pos, 2, (0, 255, 0), -1) cv.rectangle(img_frame, (face.left(), face.top()), (face.right(), face.bottom()), (0, 0, 255), 3) cv.imshow('result', img_frame) key = cv.waitKey(1) if key == 27: break elif key == ord('1'): index = ALL elif key == ord('2'): index = LEFT_EYEBROW + RIGHT_EYEBROW elif key == ord('3'): index = LEFT_EYE + RIGHT_EYE elif key == ord('4'): index = NOSE elif key == ord('5'): index = MOUTH_OUTLINE+MOUTH_INNER elif key == ord('6'): index = JAWLINE cap.release() |
반응형
'OpenCV > Dlib' 카테고리의 다른 글
DLib를 사용하여 Android에서 얼굴 검출(Face Landmarks Detection)하는 예제 (0) | 2023.10.13 |
---|
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!