01 Annoying Orange

이슬비·2022년 1월 13일
0

Kaggle Study 2022

목록 보기
1/2

캐글 스터디의 첫 번째 프로젝트!
어노잉 오렌지 만들기이다 (。・∀・)ノ゙

이 글은 코드 분석에 관한 글로 정확하지 않을 수 있다!
전체 코드를 설명하기보다는, 내가 궁금한 부분 + 내가 오류 떴던 부분에 대한 부분을 작성할 예정!
코드는 총 99줄의 코드로, 출처는 '빵형의 개발도상국' 이다.



1. 라이브러리

CV2

이미지 처리 라이브러리로, 이미지를 읽어올 수도 있고 다양한 가공이 가능한 라이브러리다.

dlib

하... 이 라이브러리 설치 한다고 생고생을 했다. 장장 3시간이 날라간 듯. pip 설치는 모~두 실패하고 결국 conda로 설치했다. 앞으로 conda로 가상환경 설정하고 다루는 방법을 익혀야겠다.

imutils

OpenCV의 기능 중에 보완이 필요한 부분 (resize 등등등) 에 대한 부분을 보완해주는 라이브러리이다.




2. 오류가 났던 부분

1. 왜 모델을 불러오지 모대.....

하 정말 온갖 방법을 다 써봤다. 이 프로젝트 전에 스노우 인식 카메라 만들기도 했었다. 원래 파일을 불러올 때 같은 디렉토리 안에 있으면 알아서 불러오는데 이상하게 불러오지 못했다....... ^^ 그래서 결국 경로 하나하나 다 입력해서 download에 있는 .dat 파일을 사용하였다.


생각해보니 이 프로젝트에서 오류가 났었던 부분은 모델 불러오기 말고는 없었던 것 같다. 애먹은 건 스노우 인식 카메라 프로젝트였는데 하나 같이 파일을 불러오지 못한 문제..... 일단 당장의 해결방법은 C:/부터 하나하나 다 경로를 쳐주는 것!




3. 모르는 부분

1. cv2.imread(fileName, flag)

: 이미지 파일을 flag값에 따라서 읽어들임

  • flag Option
  1. cv2.IMREAD_COLOR: 이미지 파일을 Color로 읽어들임 (투명한 부분 무시) [1]
  2. cv2.IMREAD_GRAYSCALE: 이미지 파일을 Grayscale로 읽어들임 (실제 이미지 처리 시 중간단계로 사용) [0]
  3. cv2.IMREAD_UNCHANGED: 이미지 파일을 alpha channel까지 포함하여 읽어들임 [-1]

2. cv2.isOpen()

:비디오 캡쳐 객체가 정상적으로 Open 되었는지 확인 -> Boolean

3. while True:

: 특정 키를 누를 때까지 무한 반복을 위해 사용 -> 이렇게 많이 씀!

4. copy()

: 얕은 복사 (새로운 복합 개체를 만드는데, 이때 원복 객체를 가리키는 참조를 새로운 복합 개체에 삽입) <-> 깊은 복사

5. shape = face_utils.shape_to_np(shape)

: shape에 68개 점의 정보가 저장 (numpy 변환까지!)

6. le_margin = int((le_x2 - le_x1) * 0.18)

: 너무 타이트하지 않게 margin을 주는 역할로, x좌표를 기준으로 설정됨

7. result




4. 더 보완할 부분

  1. 전체적으로 왼쪽으로 치우쳐져 있음
  2. 눈과 입이 흐릿하게 보임
  3. 네모 모양 말고 타원 같은 모양으로는 딸 수 없을까?
profile
정말 알아?

0개의 댓글