라즈베리파이 코드(최종)

중간 발표 내용

최종 발표 자료

Garbage_Sorting_Project (쓰레기 분류 프로젝트)

1. Purpose

기술이 발전함에 따라 일회용 쓰레기 및 다양한 종류의 쓰레기가 발생하고 있다. 이러한 쓰레기의 증가로 인해 재활용이 어려워지고 있다. 현재 우리나라에서는 개인이 쓰레기를 분리 배출하도록 되어 있으나, 분류 과정에서 불편함을 느껴 제대로 분리하지 않고 버리는 경우가 많다. 이 문제를 어떻게 해결할 수 있을까?

2. Solution

개인이 쓰레기를 종류에 상관없이 배출했을 때, 이를 자동으로 분류해주는 시스템을 도입하면 분리수거가 되지 않는 문제를 해결할 수 있을 것이다. 그렇다면 이러한 자동 분류는 어떻게 이루어져야 할까?

2_1. 쓰레기를 받기 위한 컨베이어 시스템

컨베이어 시스템을 실제로 구성하기 위해서는 2개의 강력한 DC 모터가 필요하다. 하지만 이러한 모터는 가격이 비싸므로, 작은 모터 2개를 PVC 파이프에 연결한 후 벨트로 PVC 파이프를 연결해 컨베이어 벨트를 제작할 것이다. 초음파 센서를 사용해 물체가 올라간 것을 감지하고, 카메라로 촬영할 위치까지 벨트를 이동시킨다.

2_2. 쓰레기 종류를 판별하는 학습 모델

분류는 CNN 모델을 이용한다.

GitHub Repository: Waste Classification

해당 모델을 AI 허브에 있는 생활 폐기물 이미지 데이터셋으로 학습시킨다.

AI Hub Data

331GB의 데이터를 모두 사용하기에는 시간이 많이 소요되므로 데이터 수를 줄이고, Epoch 수를 늘리는 방안을 택한다. 데이터셋은 train_set 80%, test_set 10% validation_set 10%로 사용하며, 결과에 따라 유동적으로 변경할 수 있다.

image.png

image.png

해당 데이터 셋은 위와 같은 쓰레기 이미지 파일과 해당 이미지 파일에 대한 라벨링 정보가 기록되어 있다.

{
  "FILE NAME": "11_X001_C024_1218_0.jpg",
  "COLLECTION METHOD": "제작자료",
  "FORM": "이미지",
  "DATE": "2020-12-18 11:32:55",
  "GPS": "37.4944062388889/126.732904033333",
  "ID CODE": "C024",
  "RESOLUTION": "1920*1080",
  "focus distance": "4.30mm",
  "exposure time": "1/60sec",
  "Aperture values": "2.52",
  "Sensitivity iso": "50",
  "exposure method": "normal program",
  "MAKE": "samsung",
  "Camera Model Name": "SM-G965N",
  "Software": "G965NKSU3FTJ2",
  "File Size": "299009",
  "DAY/NIGHT": "주간",
  "PLACE": "실외",
  "PROJECT SORTING": "생활폐기물",
  "BoundingCount": "1",
  "Bounding": [
    {
      "CLASS": "가구류",
      "DETAILS": "밥상",
      "DAMAGE": "원형",
      "TRANSPARENCY": "불투명",
      "Color": "103/86/80",
      "Shape": "다면체",
      "Texture": "딱딱함",
      "Object Size": "중",
      "Direction": "뒷면",
      "Drawing": "BOX",
      "x1": "239",
      "y1": "65",
      "x2": "1216",
      "y2": "983"
    }
  ]
}

라벨링 파일은 위와 같은 json 형식의 파일로 존재한다.