산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Google Coral로 재활용 분류 로봇

지역사회와 기업의 평균 오염률이 최대 25%라는 사실을 알고 계셨습니까? 즉, 버리는 재활용품 4개 중 1개는 재활용되지 않습니다. 이는 재활용 센터의 인적 오류로 인해 발생합니다. 전통적으로 작업자는 쓰레기를 재료에 따라 다른 쓰레기통에 분류합니다. 인간은 실수를 하기 마련이고 쓰레기를 제대로 분류하지 않아 오염을 일으킵니다. 오늘날 사회에서 오염과 기후 변화가 더욱 중요해짐에 따라 재활용은 지구를 보호하는 데 큰 역할을 합니다. 로봇을 사용하여 쓰레기를 분류함으로써 훨씬 저렴하고 지속 가능한 것은 말할 것도 없이 오염률이 급격히 감소할 것입니다. 이를 해결하기 위해 머신 러닝을 사용하여 다양한 재활용 재료를 분류하는 재활용 분류 로봇을 만들었습니다.

데모:

코드:

이 가이드를 따르려면 내 GitHub 저장소를 복제하세요.

1단계, 데이터 가져오기:

다양한 재활용 재료를 감지하고 인식할 수 있는 물체 감지 모델을 학습시키기 위해 2527개의 이미지가 포함된 휴지통 데이터세트를 사용했습니다.

<울>
  • 501 유리
  • 594개 용지
  • 403 판지
  • 482 플라스틱
  • 410 메탈
  • 쓰레기 137개
  • 다음은 예시 이미지입니다:

    이 데이터 세트는 객체 감지 모델을 훈련시키기에 매우 작습니다. 정확한 모델을 훈련시키기에는 너무 적은 약 100개의 쓰레기 이미지가 있으므로 생략하기로 결정했습니다.

    이 Google 드라이브 폴더를 사용하여 데이터세트를 다운로드할 수 있습니다. dataset-resized.zip 파일을 다운로드해야 합니다. 여기에는 더 빠른 훈련을 위해 이미 더 작은 크기로 크기가 조정된 이미지 세트가 포함되어 있습니다. 원시 이미지의 크기를 원하는 대로 조정하려면 dataset-original.zip 파일을 자유롭게 다운로드하십시오.

    2단계, 이미지에 레이블 지정:

    다음으로, 물체 감지 모델을 훈련할 수 있도록 다양한 재활용 재료의 여러 이미지에 레이블을 지정해야 합니다. 이를 위해 이미지의 개체 경계 상자에 레이블을 지정할 수 있는 무료 소프트웨어인 labelImg를 사용했습니다.

    적절한 레이블로 각 이미지에 레이블을 지정하십시오. 이 가이드에서는 방법을 보여줍니다. 탐지 모델이 가능한 한 정확하도록 각 경계 상자를 각 개체의 경계에 가깝게 만드십시오. 모든 .xml 파일을 폴더에 저장합니다.

    이미지에 레이블을 지정하는 방법은 다음과 같습니다.

    이것은 매우 지루하고 정신을 마비시키는 경험입니다. 고맙게도 나는 이미 모든 이미지에 라벨을 붙였습니다! 여기에서 찾을 수 있습니다.

    3단계, 교육:

    교육 측면에서는 Tensorflow를 사용하여 전이 학습을 사용하기로 결정했습니다. 이를 통해 많은 양의 데이터 없이 상당히 정확한 모델을 훈련할 수 있습니다.

    이 작업을 수행할 수 있는 몇 가지 방법이 있습니다. 클라우드의 로컬 데스크톱 컴퓨터에서 수행할 수 있습니다. 컴퓨터의 성능과 GPU의 성능에 따라 로컬 머신에서 훈련하는 데 시간이 매우 오래 걸립니다. 이것은 아마도 내 생각에 가장 쉬운 방법이지만 속도의 단점도 있습니다.

    전이 학습에 대해 주의해야 할 몇 가지 핵심 사항이 있습니다. 훈련에 사용하는 사전 훈련된 모델이 Coral Edge TPU와 호환되는지 확인해야 합니다. 여기에서 호환되는 모델을 찾을 수 있습니다. MobileNet SSD v2(COCO) 모델을 사용했습니다. 다른 사람들도 자유롭게 실험해 보세요.

    로컬 머신에서 훈련하려면 Windows 10에서 실행 중인 경우 Google의 자습서 또는 EdjeElectronics 자습서를 따르는 것이 좋습니다. 개인적으로 저는 EdjeElectroncs 자습서를 테스트했으며 데스크톱에서 성공했습니다. Google의 자습서가 작동하는지 확인할 수는 없지만 작동하지 않으면 놀랄 것입니다.

    클라우드에서 훈련하려면 AWS 또는 GCP를 사용할 수 있습니다. 시도해 볼 수 있는 이 가이드를 찾았습니다. 객체 감지 모델을 초고속으로 훈련할 수 있는 Google의 클라우드 TPU를 사용합니다. AWS도 마음껏 사용하세요.

    로컬 머신에서 훈련하든 클라우드에서 훈련하든 결국 훈련된 텐서플로 모델을 사용해야 합니다.

    4단계, 학습된 모델 컴파일:

    훈련된 모델이 Coral Edge TPU와 함께 작동하려면 컴파일해야 합니다.

    다음은 워크플로에 대한 다이어그램입니다.

    훈련 후에는 고정 그래프(.pb 파일)로 저장해야 합니다. 그런 다음 Tensorflow Lite 모델로 변환해야 합니다. "Post-training quantization"이 어떻게 표시되는지 확인하십시오. 전이 학습을 사용할 때 호환되는 사전 훈련된 모델을 사용한 경우에는 이 작업을 수행할 필요가 없습니다. 여기에서 호환성에 대한 전체 문서를 살펴보세요.

    Tensorflow Lite 모델을 사용하여 Edge TPU 모델로 컴파일해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 여기를 참조하세요.

    재활용 감지 모델:

    객체 감지 모델을 학습, 변환, 컴파일하는 번거로움을 겪고 싶지 않다면 여기에서 내 재활용 감지 모델을 확인하세요.

    5단계, 모델 배포:

    다음 단계는 학습된 객체 감지 모델을 실행하도록 Raspberry Pi(RPI) 및 Edge TPU를 설정하는 것입니다.

    먼저 이 가이드를 사용하여 RPI를 설정하세요.

    다음으로 이 가이드에 따라 Edge TPU를 설정하세요.

    마지막으로 RPI 카메라 모듈을 라즈베리파이에 연결합니다.

    이제 객체 감지 모델을 테스트할 준비가 되었습니다!

    내 저장소를 이미 복제했다면 RPI 디렉토리로 이동하여 test_detection.py 파일을 실행해야 합니다.

    python test_detection.py --model 재활용_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite --labels 재활용_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_

    작은 창이 나타나야 하며 플라스틱 물병이나 기타 재활용 재료를 넣으면 다음과 같이 감지해야 합니다.

    프로그램을 종료하려면 키보드의 "q" 문자를 누르십시오.

    6단계, 로봇 팔 만들기:

    로봇 팔은 여기에서 찾은 3D 인쇄 팔입니다. 설정에 대한 자습서를 따르십시오.

    제 팔은 이렇게 생겼습니다.

    내 코드의 Arduino I/O 핀에 따라 서보 핀을 연결했는지 확인하십시오. 3, 11, 10, 9, 6, 5의 순서로 아래에서 위로 서보를 연결합니다. 이 순서로 연결하지 않으면 팔이 잘못된 서보를 이동하게 됩니다!

    Arduino 디렉토리로 이동하고 basicMovement.ino 파일을 실행하여 작동하는지 테스트합니다. 이렇게 하면 팔 앞에 놓은 물체를 잡고 뒤로 떨어뜨리기만 하면 됩니다.

    7단계, RPI와 로봇 팔 연결:

    먼저 카메라 모듈을 발톱 바닥에 장착해야 합니다.

    인식된 재활용 재료를 잡을 때 오류를 최소화하기 위해 카메라를 가능한 한 직선으로 정렬하십시오. 재료 목록에 표시된 긴 카메라 모듈 리본 케이블을 사용해야 합니다.

    다음으로 roboticArm.ino 파일을 Arduino 보드에 업로드해야 합니다.

    마지막으로 RPI의 USB 포트와 Arduino의 USB 포트 사이에 USB 케이블을 연결하기만 하면 됩니다. 이렇게 하면 직렬을 통해 통신할 수 있습니다. 설정 방법에 대한 이 가이드를 따르세요.

    8단계, 최종 수정:

    이 단계는 완전히 선택 사항이지만 모든 구성 요소를 멋진 작은 프로젝트 상자에 넣는 것을 좋아합니다.

    모양은 다음과 같습니다.

    출처:Google Coral을 사용한 재활용 분류 로봇


    제조공정

    1. 모형 기차
    2. Google 스프레드시트가 포함된 Python/MicroPython 센서 로거
    3. 비전 기반 장애물 회피 기능이 있는 모바일 로봇
    4. 동영상이 있는 Raspberry Pi 웹 제어 로봇
    5. 자외선 조명으로 로봇 소독
    6. 서보 모터로 로봇을 피하는 장애물
    7. Arduino 및 Android 기기로 Roomba 로봇 제어
    8. OK Google이 포함된 Bluetooth 음성 제어 기기
    9. Matlab / Simulink에서 로봇 그리퍼의 PID 제어
    10. 로봇 암이 장착된 터닝 센터