귀여운 강아지다
고양이다
4월 프로젝트에서는 강아지와 고양이를 구분할 수 있는 CNN 모델을 만들고 학습을 수행합니다. 그리고 pygame을 활용하여 강아지 또는 고양이를 직접 그려보고 모델이 실시간으로 예측값을 출력하게 하여 모델이 잘 맞출 수 있는지 확인합니다. 그런 과정에서 최대한 다양한 방식으로 분석하며 인공신경망의 구동 방식을 최대한 이해하는 것을 목표로 합니다.
학습에 사용할 데이터셋은 다양한 머신러닝 예제들을 볼 수 있는 kaggle 사이트를 이용합니다. training_set.zip
과 test_set.zip
을 다운로드 합니다. kaggle 사이트에 있는 데이터를 다운로드 하려면 회원가입을 해야 합니다.
이제 주피터 노트북 환경에서 작업을 시작합니다.
zipfile
모듈을 이용하여 두 개의 압축파일을 압축해제를 하세요. 그리고 압축해제된 파일의 구조를 확인해보세요.
강아지와 고양이 이미지를 한개씩 subplot하세요. 이미지를 불러오기 위해서는 cv2
, 이미지를 plot하기 위해서는 plt
라이브러리를 이용해야 합니다. 불러온 이미지의 색감이 어색하지는 않은지 확인해보세요.
cv2
를 사용하기 위해서 pip install opencv-python
을 터미널에 입력해주세요.
이미지를 보면 기존에 예제로 했었던 것과 달리 픽셀의 크기가 매우 크고 가로와 세로의 비율이 같지 않으며, 각각의 크기도 일정하지 않습니다.
우리가 배운 CNN 모델에 적용하기 위해서는 cv2
의 라이브러리를 이용하여 이미지의 크기를 일정하게 합니다. 저 같은 경우에는 이미지의 크기를 (64, 64, 3)로 resize를 했습니다. 필요하면 grayscale을 적용하여 (64, 64, 1)과 같은 형태로도 할 수 있습니다. 이외에도 다양한 것을 보고 싶으면 cv2
의 이미지 합성을 알아보세요.