[Aiffel] 아이펠 12일차 개념 정리 및 회고

Gongsam·2022년 1월 11일
1

1. 카메라 앱 만들기

1) 사진 준비하기

  • 랜드마크(조정)
    key point detection이라고 함. 카메라 앱을 만들 경우 얼굴에서 눈, 코, 입과 같은 기준이 되는 위치를 찾는 것을 의미함.

  • 사용 라이브러리 / 패키지

import os
import cv2
import matplotlib.pyplot as plt
import numpy as np
import dlib

openCV: 문서 참고

2) 얼굴 검출 Face detection

  • dlib 사용: 해당 패키지는 HOG, SVM을 사용해 얼굴을 검출함

    • HOG: 이미지에서 색상의 변화량을 나타낸 것. 이를 통해 이미지를 벡터화할 수 있음
    • SVM: 선형 분류기, 한 이미지를 다차원 공간의 한 벡터라고 보면 여러 이미지는 여러 벡터가 됨. 이 여러 벡터를 잘 구분짓는 방법.

      여기서는 얼굴이냐 아니냐를 구분하는 것

  • sliding window: 작은 영역(window)을 이동해가며 확인하는 방법, 여기서는 얼굴 영역을 확인하는 방법으로 쓰임. 큰 이미지를 작은 영역으로 잘라 얼굴이 있는지 확인하고, 다시 작은 영역을 옆으로 옮겨 얼굴이 있는지 확인하는 방식

  • upsampling: 데이터의 크기를 키우는 방법. downsampling의 반대 개념, 특히 이미지를 upsampling 기법으로 키우는 것을 이미지 피라미드라고 함.

3) 얼굴 랜드마크 Face landmark

  • face landmark localization: 이목구비 위치를 추론하는 기술. object keypoint estimation 중 하나

    object keypoint estimation의 방식
    1) top-down : bounding box를 찾고 box 내부의 keypoint를 예측
    2) bottom-up : 이미지 전체의 keypoint를 먼저 찾고 point 관계를 이용해 군집화 해서 box 생성

4) 스티커 적용하기

  1. 스티커 위치 계산
  2. 스티커 크기 계산
  3. 얼굴의 중심 좌표 계산
  4. 스티커 크기 resize
  5. y 축 좌표가 음수일 경우(= 이미지 밖으로 벗어날 경우) 크롭

5) 고양이 스티커 적용하기

실습엔 무료 이미지와 연예인 이미지를 활용했다.

ValueError: operands could not be broadcast together with shapes

  • 브로드캐스팅 에러..
    numpy에서는 모양이 다른 배열끼리 연산이 불가능하기 때문에 일어나는 에러이다.

  • 얼굴에 랜드마크 위치가 표시되지 않는 현상
    ⇒ 그냥 표시하는 점 크기가 너무 작아서 그렇다. 크기만 키워주면 된다.

  • 이미지 색상이 저절로 반전되는 현상
    해결책을 못 찾았다.. 코드를 싹 지우고 다시 입력하니 됐다.

  • 이미지 색상을 바꾸고 싶을 때
    코드로 하지 말고 그냥 이미지 자체를 바꾸는게 정신건강에 이롭다..

2. 회고

exploration은 언제나 그렇듯 코드도 다 이해 못했는데 직접 만들어보라고 해서 당황스럽다. 하지만 어찌저찌 해냈다.. 늘 그렇듯 조각보 코드,, 이미 있는 코드에서 변수만 바꾸기,, 그래도 여러 가지 경우에 적용하다보니 반복되는 코드가 많아 그런 부분을 나름 함수로 선언도 하고 바꿔보려고 노력했다. 나중엔 모듈로 따로 저장해도 될 거 같다.
솔직히 다 이해하고 넘어가는 건 아니지만 일단 이런 분야에서 이런 원리를 이용하면 아이디어를 실현할 수 있다는 정도만 알고, 나중에 특정 분야에 관심이 생겼을 때 더 깊게 파는 것도 나쁘지 않을 거 같다... 사실 머리에 더 안들어갈 거 같아서긴 한데, 와중에 구체적인 절차는 모르더라도 대강의 틀을 안다면 되는 거 아닐까 하는 생각이다. 지금 하기 싫어서 합리화하는 것이 아니다....

profile
🐬 파이썬 / 인공지능 / 머신러닝

1개의 댓글

comment-user-thumbnail
2022년 1월 11일

오늘도 수고하셨습니다 ~! 매일 정리하는 것 멋져요 👏

답글 달기