About
home
About
home

"GreenNet: AI-Based Waste Sorting System (유기물과 재활용 폐기물 분류 시스템)

link

1. 프로젝트 개요

본 프로젝트의 목적은 딥러닝을 활용하여 유기물과 재활용 폐기물을 자동으로 분류하는 시스템을 개발하는 것
사용자는 휴대폰 카메라로 사진을 찍거나 스캔하여 폐기물의 종류를 판별하는 앱개발하는 서비스를 기획함 본 프로젝트는 MobileNetV2 라이브러리 사용으로 모델구축 및 Tensorflow Serving 이용해 모델배포(로컬서버)

2. 프로젝트 구현

2.1 데이터 준비 및 전처리

데이터 출처: Kaggle의 Waste Classification 데이터셋을 사용하였습니다. 이 데이터셋은 유기물과 재활용 폐기물 이미지로 구성
데이터 구조: 데이터 세트는 총 22564개의 이미지로 구성되어 있으며, 이 중 80%는 훈련 데이터로, 20%는 검증 데이터로 사용되었습니다. 각 이미지는 RGB 채널을 가집니다.
전처리: 이미지 크기를 (224, 224, 3)으로 조정하고, 데이터 증강을 적용하여 모델의 일반화 성능을 향상시켰습니다. 데이터 증강에는 회전, 이동, 확대 등의 기법이 사용되었습니다.

2.1.2 모델 알고리즘 및 특징

모델: MobileNetV2를 기반으로 한 전이 학습 방법을 사용하였습니다. 이는 데이터가 제한적일 때 효과적인 방법입니다.
특징: MobileNetV2는 작은 모델 크기와 빠른 추론 속도를 가지고 있으면서도 높은 정확도를 제공합니다.

2.1.3 모델 학습 및 성능 평가

학습: 모델은 10 에포크 동안 훈련되었고, 검증 데이터셋을 사용하여 성능을 평가하였습니다.
성능: 모델은 훈련 데이터에 대해 96% 이상의 정확도를 달성하였고, 검증 데이터에 대해서도 90%이상 높은 정확도를 보였습니다. 별도로 준비된 20개의 테스트 이미지에 대해서도 100%의 정확도를 달성하였습니다. 이러한 높은 성능을 바탕으로 임계값을 0.7로 설정하였습니다.

2.2 모델 배포 및 사용자 인터페이스

배포: TensorFlow Serving을 사용하여 모델을 배포하였습니다. 이를 통해 REST API를 통한 모델 접근이 가능합니다.

3. 프로젝트 도전과제 및 문제 해결 방안

3.1 모델 성능의 한계 인식

프로젝트를 진행하면서 유기물과 재활용품을 분류하는 딥러닝 모델을 성공적으로 구축하고 배포하였습니다. 그러나 모델을 테스트하는 과정에서 몇 가지 한계점과 도전과제를 발견하게 되었습니다.
첫째, 모델은 유기물과 재활용품만을 분류하도록 설계되었지만, 실제 환경에서는 폐기물이 다양한 형태로 존재합니다. 이에 대한 대응책으로 '기타' 또는 '판별 불가'와 같은 추가적인 카테고리를 고려할 필요가 있습니다.

3.2 데이터셋의 재평가 및 확장

이러한 문제를 해결하기 위해, 데이터셋을 재평가하고 확장할 필요가 있습니다. 이를 통해 모델의 성능을 향상시키고, 더 다양한 형태의 폐기물을 정확하게 분류할 수 있을 것입니다.
1.
데이터 균형: 각 카테고리에 속하는 이미지의 수를 균등하게 맞추어 데이터셋의 균형을 맞춥니다.
2.
데이터 다양성: 각 카테고리 내에서 다양한 유형의 이미지를 포함시켜 모델이 더 넓은 범위의 데이터에 적응할 수 있도록 합니다.
3.
데이터 품질: 이미지의 해상도와 명확성을 향상시키고, 라벨링 오류나 잘못 분류된 이미지를 수정합니다.
4.
데이터 전처리: 필요한 전처리 작업을 수행하여 모델의 학습 효율을 높입니다.
Tensorflow lite 모델 변환 및 활용방법 학습