대외활동/DSC CV Study

week3 - Intel Image Classification

여니여니_ 2020. 1. 27. 16:56

 

14,000장 정도의 이미지를 6가지 클래스로 분류하는 작업

 

캐글 Kernel에 올라온 자료 중 하나 정리해보기

 

 

1. 필요 함수 정의

def get_image()

이미지를 가져와서 라벨에 따라 숫자를 부여하는 

ex) 'sea' 라벨을 가지고 있으면 4로 저장

 

def get_classlabel()

역으로 class_code를 받아 어떤 클래스인지 알려주는 함수

ex) 4라는 숫자가 들어왔을 때 'sea'로 반환

 

 

2. Images와 Labels를 배열 형태로 바꾸기

 

 

3. Image와 Label Shape 확인해보기

 

150 x 150 사이즈의 컬러 이미지 14034장으로 확인

 

4. 이미지 출력해서 확인해보기

 

임의의 이미지와 해당하는 라벨 출력하기

mountain, forest, glacier 등 다양한 클래스의 이미지 확인

 

 

5. 모델 쌓기

Conv - MaxPool - Conv - MaxPool - Flatten - Dense 와 같은 순서로 모델을 쌓는다.

옵티마이저는 아담, 손실함수는 categorical crossentropy

 

 

6. 모델 학습하기

fit 함수에 첫번째, 두번째 인자로 이미지와 라벨을 넣어준다.

35번 반복 학습한다. 

30%의 validation data를 갖도록 설정한다.

 

accuracy는 점차 상승하고, loss값은 떨어진다.

 

val_loss와 val_acc가 loss와 acc에 비해 떨어지는 현상을 overfitting(과적합)이라고 한다. 

 

 

 

7. 모델 학습 과정 확인하기

위에서 학습 결과를 trained라는 변수에 저장해두었다.

history 메소드로 학습 과정을 그래프로 그려볼 수 있다.

 

 

 

 

Reference

 

https://www.kaggle.com/uzairrj/beg-tut-intel-image-classification-93-76-accur

 

[BEG][TUT]Intel Image Classification[93.76% Accur]

Explore and run machine learning code with Kaggle Notebooks | Using data from Intel Image Classification

www.kaggle.com