2019 AI Term Project-Team Recycle
-
데이터 수집 (구체적 진행상황)
-
데이터셋 분할 (train, test(직접 촬영한 데이터셋 포함), validation) (진행중)
-
비닐을 포함한 6개의 클래스로 분류할 예정이었지만 비닐 데이터셋이 적고 학습에 어려움이 있어 제외하기로 함.
-
복잡한 모델을 사용하기에 앞서 학습과 평가에 이르는 골격을 짜기 위해 퀴즈때 구현한 VGGNet 모델과 유사한 간단한 모델을 사용.
-
데이터 셋을 나눌 때 코드를 이용하여 분류 시 train_test_split함수를 이용한 방법(데이터가 작은 경우 overfitting이 발생할 수 있음) 또는 계층적 샘플링을 사용할 예정이고 수동으로 폴더를 생성하여 나누는 방법과 고민 중.
-
라즈베리 파이는 사용하지 않기로 했음. openCV부분에서 실시간으로 카메라에 인식시키기로 했으나, 실제적 구현이 힘들 것 같아 구글 드라이브를 이용하기로 함.
-
OpenCV를 이용하여 데이터 이진화
-
모델 평가, 선정(VGGNet, Resnet, Inception, GoogleNet 등 여러가지 분류모델중 성능이 좋은 모델 선정)
- 평가 지표: accuracy, precision, recall, F-measure
- 모델 성능 비교 시 데이터에 분포 차이가 있는 경우가 많으므로 F-measure 많이 사용
- precision과 recall중 무엇을 중시할지 결정.
- "precision이 0.9 미만인 모델은 채용X" 같은 최소조건을 정하고 이 조건을 만족하면서 F-measure, accuracy가 높은 모델 선택
-
모델 성능 개선
- Data Augmentation 을 통한 데이터 증강(keras 내장 함수 이용)
- 데이터셋 추가
- Batch Nomarlization
- Hyperparameter Tuning(랜덤 서치)
- 성능이 좋은 2가지 모델을 병렬로 구성하여 앙상블 모델 생성
https://github.com/sejongresearch/RecycleClassification/blob/master/ppt%20(1).pptx