Skip to content

hyeonrl98/level2-objectdetection-cv-03

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

객체 탐지 프로젝트: 재활용 쓰레기 분류

개요

CV-03 팀(김현기, 박정욱, 이도영, 정지윤, 한승윤)이 수행한 이번 프로젝트는 재활용 품목 분류를 위한 객체 탐지 모델 개발에 중점을 두었습니다. 주요 목표는 매립지 부족 및 과도한 쓰레기 배출과 같은 환경 문제를 해결하는 데 기여하는 것입니다. 본 프로젝트는 인공지능을 활용해 재활용 품목을 정확히 분류하여 재활용 효율성을 높이고자 합니다.

프로젝트 동기

본 프로젝트의 동기는 대량 생산과 쓰레기 관리 문제를 고려하여, 재활용을 위한 쓰레기 분류의 필요성에서 출발했습니다. AI 모델은 쓰레기 품목을 일반 쓰레기, 종이, 종이 팩, 금속, 유리, 플라스틱, 스티로폼, 비닐봉지, 배터리, 의류 등 10가지 클래스별로 분류하도록 설계되었습니다. 데이터 분석과 모델 실험을 통해 효과적인 솔루션을 구축하고자 하였습니다.

프로젝트 단계 및 방법론

1. 탐색적 데이터 분석(EDA)

  • 중점 영역:
    • 이미지 특성: 클래스별 채도, 밝기, 질감 등.
    • 분포 분석:
      • 이미지의 배치 및 바운딩 박스의 분포.
      • 클래스 및 바운딩 박스 크기의 불균형.
  • 인사이트: 대부분의 이미지가 중앙에 바운딩 박스가 집중되어 있었으며, 크기 및 클래스 불균형이 존재.
  • 과제: 중첩 데이터와 불균형한 이미지 주석 문제 해결. 학습 데이터 삭제는 mAP에 부정적 영향을 미칠 수 있어 피함.

2. 데이터 증강

  • 사용한 라이브러리:
    • Detectron2: RandomFlip, RandomBrightness, RandomContrast 등의 기법 적용. Mosaic과 CLAHE는 커스텀 구현.
    • MMDetection: MixUp, RandomCrop 등을 실험하여 겹치는 객체 탐지 개선.
    • Ultralytics (YOLO): 스케일 조정, 플립, MixUp 등 실험.
  • 결과: CLAHE 및 복합 증강 기법이 mAP 향상에 효과적임을 확인.

3. 모델링

  • 모델 선택:
    • Faster R-CNN, Cascade R-CNN, YOLOv8 등의 다양한 아키텍처 실험.
    • SWINConvNeXt 등의 백본 테스트.
  • 백본 및 넥 구조 조정:
    • 발견: SWINConvNeXt와 같은 심층 백본을 사용하고, DyHead를 추가해 넥 구조를 보완할 때 성능 향상.

4. 앙상블 기법

  • 기법:
    • MultilabelStratifiedKFold를 적용하고 WBF(Weighted Box Fusion)으로 출력 결합.
    • TTA(Test-Time Augmentation) 활용.
  • 발견: WBF가 기존 NMS 기법보다 더 효과적이며, 앙상블 mAP 점수 최적화에 기여.

주요 결과 및 학습 내용

  • 데이터 증강: CLAHE와 복합 증강 기법을 전략적으로 사용해 성능 크게 개선.
  • 모델링: SWINConvNeXt 백본을 사용하고 Cascade R-CNNDyHead 적용 시 성능 향상 확인.
  • 앙상블 전략: WBF와 IoU 조정이 앙상블 성능 향상에 핵심적.

도전 과제 및 향후 작업

  • 제한 사항: GPU 및 시간 제약으로 하이퍼파라미터 튜닝이 제한됨. 일부 증강의 시각적 분석 미비.
  • 향후 계획:
    • 자원 관리와 단계별 실험 우선순위 설정.
    • 증강 영향 평가를 위한 시각적 분석 도구 강화.

결론

본 프로젝트는 포괄적인 데이터 분석, 목표 지향적인 증강 전략, 모델 및 앙상블 조정의 중요성을 강조했습니다. 실험과 자원 관리의 균형을 맞추는 경험을 통해 객체 탐지의 세부적인 이해를 강화할 수 있었습니다.

About

level2-objectdetection-cv-03 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 76.4%
  • Python 23.6%