[KT AIVLE(에이블 스쿨) 3기] 8주차 : 미니 프로젝트 3차

2023. 3. 28. 00:25KT 에이블 스쿨


[8주차] 미니 프로젝트 3차

이번 미니 프로젝트도 크게 두 가지 주제로 진행됐다. 

1~3일차는 차량 파손 여부 분류, 4~5일차는 저시력자들을 위한 화폐 분류가 주제였다.

발표는 한 주제가 끝나는 3일차, 5일차 이렇게 있었다! 

 


차량 파손 여부 분류기

목표 : 차량 이미지가 정상(normal)인지 파손(abnormal)인지 분류하는 모델 제작
- 데이터는 실제 이미지가 아닌 DALL-E로 생성한 이미지 605장으로 진행됐다.

프로젝트의 진행 방향

1) 우리가 직접 설계한 모델과 데이터를 Augmentation하여 학습한 모델과 비교. 

2) 우리가 직접 설계한 모델과 pretrained model로 학습하여 비교.

 

결론

1) 데이터 Augmentation을 하면 성능이 무조건 좋아질 줄 알았는데 그렇지는 않았다.

Augmentation을 하면 과적합을 방지할 순 있다. 학습 중 validation accuracy가 0.5 값에 수렴하는 문제는 해결이 되었지만 

실제적인 모델 성능은 떨어지는 경우가 있었다.

Data Generator 하이퍼 파라미터 옵션을 이것저것 변경하면 성능이 나아지는 모델도 있긴 했지만 

대부분의 모델은 오히려 성능이 떨어졌다. 이유는 애초에 데이터가 너무 적기 때문인 것 같다.

적은 양의 데이터를 증강시켜봤자 다양한 데이터를 생성할 수는 없다.

 

2) 우리 조는 직접 설계한 모델보다 pretrained model에서 더 높은 성능을 보였다.

우리가 직접 설계한 모델은 CNN. Convolution, Pooling, Dropout, 레이어 수 등을 바꿔가며 여러 모델을 설계했다.

그리고 학습된 모델은 VGG16, inception-v3 모델을 사용했다.

직접 설계한 모델은 accuracy가 90% 언저리를 넘지 못했는데 학습된 모델은 97%까지 나왔다.

그리고 데이터가 너무 적어서 그런지 모델을 복잡하게 할수록 과대적합이 발생했다. 

레이어를 얕게 쌓는 것이 성능 향상에 도움을 주었다.

 


저시력자들을 위한 화폐 분류기

 

목표 : Object Detection 모델(yolo)을 활용해

 10원/50원/100원/500원/1000원/5000원 /10000원/50000원 총 8개의 클래스로 분류

- 데이터는 annotation이 된 약 10000개의 .jpg, .json 파일을 제공해주셨다.

 

프로젝트의 진행 방향

1) yolo 모델에 맞게 폴더 구조 맞추기

2) .json 파일에서 정보 추출

3) 데이터셋 정보를 나타내는 .yaml 파일 생성

 

 

확실히 전날의 차량파손 분류의 데이터보다 훨씬 양이 많아서 전처리가 오래 걸렸다. 

클래스가 많아서 그런지 파일을 폴더별로 나누는데 좀 헷갈렸다.

.json 파일에는 바운딩 박스로 추출한 정보들이 담겨있었다.

이 파일에서 라벨명, x_center, y_center, width, height 값을 파싱하여 텍스트 파일로 만들어야했다.

그리고 image, label 폴더의 train과 valid에 각각 같은 파일명의 .jpg와 .txt 파일이 들어가야한다는 것!

이 과정이 필요한 이유는 우리가 사용할 yolo 모델에 맞게 구조를 맞춰줘야하기 때문이다.

 

yolo5v 모델을 사용해서 학습 했고, 
우리 조는 yolo5s, yolo5m, yolo5l, yolo5x를 돌려봤다.

모델 사이즈가 커질 수록 정말정말 오래걸려서 yolo5x 돌릴 때는 2시간 넘게 걸렸다.

전처리를 진행했던 전날과 달리 학습 돌려놓는 동안 할 게 없어서 정말 여유로웠다.. 

 

결론

우리 조는  yolo5s가 가장 좋았으며, 오히려 사이즈가 큰 모델일 수록 detection 성능이 떨어졌다.

 

detect 결과

 


후기

개인적으로 주제가 가장 재밌었던 프로젝트였다. 

시각지능이다 보니 직관적으로 결과를 확인할 수 있어서 재밌지 않았나 싶다.

비록 학습이 너무 오래 걸려서 기다리는 동안 열불나긴 했지만,

학습을 마치고 detection할 때 짜릿함을 느낄 수 있었다!