공부/AIFFEL

Exploration 3 : 카메라 스티커앱 만들기 첫걸음

dong_dong_2 2021. 1. 12. 20:57

1. 어떻게 만들까? 사진 준비하기

    - 얼굴이 포함된 사진을 준비하고 -> 사진으로부터 얼굴 영역을 찾고 -> 머리에 왕관 스티커를 씌운다.

    - import cv2, matplotlib.pyplot, numpy, os

    - os.getenv, cv2.imread, cv2.resize, cv2.cvtColor

2. 얼굴 검출 : face detection

    - 이미지에서 gradient를 feature로 사용하는 이유 : 주변 상황과 무관하게 동일한 표현을 얻을 수 있다.

    - 단일 픽셀의 gradient를 사용하지 않고 16x16의 정사각형을 이용하는 이유 : 너무 자세히 다루면 숲을 보지 못한다.

    - import dlib

    - dlib.get_frontal_face_detector

    - for dlib_rect in dlib_rects + dlib.rect.left, dlib.rect.top, dlib.rect.right, dlib.rect.bottom

    - cv2.rectangle

3. 얼굴 랜드마크 : face landmark

    - object keypoint estimation 알고리즘

    - shape_predictor_68_face_landmarks.dat

    - dlib.shape_predictor

4. 스티커 적용하기

    - 스티커를 붙일 좌표 계산하기

    - x, y, width, height 구하기

 

오늘 과제는 꽤나 고민과 고생을 했다. 처음 해보는 거라 코드도 눈에 안 들어왔고, 무엇을 하는 코드인지 이해하기도 힘들었다. 그러나 많은 고민 끝에 대충이라도 작동방식을 이해했고, 왕관을 씌우기 위해 계산한 식을 변형하여 고양이 수염을 콧등에 가게해서 얼굴위에 고양이 수염을 잘 붙였다.