TinyML의 과제는 마이크로컨트롤러급 하드웨어에서 AI 워크로드에 대해 가장 낮은 설치 공간에서 최대 성능/효율을 추출하는 것입니다. 유럽의 기계 학습 연구원 팀이 개발한 TinyML-CAM 파이프라인은 카메라로 비교적 저가형 하드웨어에서 달성할 수 있는 것을 보여줍니다.
가장 구체적으로, 그들은 약 1KB의 RAM을 차지하는 오픈 소스 TinyML-CAM 파이프라인을 사용하여 10달러 미만의 ESP32-CAM 보드에서 80 FPS 이상의 이미지 인식에 도달했습니다. 카메라가 있는 다른 MCU 보드에서 작동해야 하며 맞춤형 작업을 구현하는 데 약 30분이 걸린다고 하기 때문에 교육이 복잡해 보이지 않습니다.

연구원들은 마이크로컨트롤러용 TensorFlow Lite 및 Edge Impulse와 같은 솔루션이 이미 신경망(NN)을 사용하여 MCU 보드에서 ML 워크로드의 실행을 가능하게 한다고 언급했습니다. 그러나 일반적으로 50~500kB의 RAM을 사용하고 추론에 100~600ms가 소요되므로 개발자는 복잡성이 낮거나 정확도가 낮은 NN을 선택해야 합니다.
그래서 연구원들은 4단계로 작동하는 TinyML-CAM 파이프라인을 설계하기 위해 마이크로컨트롤러용 TFLite에 대한 "Eloquent Arduino" 라이브러리 대안을 활용하는 보다 효율적인 비-NN 알고리즘(예: Decision Tree, SVM)을 사용하기로 결정했습니다.
1. 카메라 서버(160 × 120 해상도)와 MjpegCollector를 통한 데이터 수집 사용자에게 클래스 이름을 묻고 사용자가 나갈 때까지 일정 시간 동안 이미지 프레임 수집
2. 4단계로 특징 추출
- 수집된 이미지를 RGB에서 회색으로 변환
- HOG(Histogram of Oriented Gradients) 기능 추출기를 실행하여 기능 벡터를 출력합니다(작업 속도를 높이기 위해 저해상도 40 x 30 이미지 사용).
- 추출된 특징이 얼마나 유익한지 시각적으로 이해하려면 Pairplot Visualization을 실행하십시오.
- UMAP(Uniform Manifold Approximation and Projection) 차원 축소 알고리즘을 실행하여 특징 벡터를 가져와 길이 2로 압축합니다.
3. 분류자 훈련
4. C++로 포팅 – HOG 구성 요소와 분류자(Pairplot)를 C++ 코드 또는 더 정확하게는 헤더 파일(.h)로 변환합니다.
그런 다음 헤더 파일을 Arduino Sketch에 추가할 수 있으며, 프로그램은 보드에서 컴파일되고 실행됩니다. 소스 코드, ESP32 하드웨어에 설치하기 위한 지침, GitHub에서 데모 비디오를 찾을 수 있습니다.

솔루션을 테스트하기 위해 ESP32-CAM이 Raspberry Pi Pico, Arduino Portenta H7 또는 Wio 터미널을 인식하도록 훈련합니다. 이러한 유형의 보드에 대한 성능은 훌륭하고 설치 공간은 정말 작지만 연구원들은 Portenta 및 Pi 보드가 Pairplot 분석 중에 종종 잘못된 레이블이 지정되었으며 이 문제는 데이터 세트 품질을 개선하여 수정될 것으로 기대합니다.
GitHub의 소스 코드를 살펴보는 것 외에도 참고 링크의 4페이지 분량의 짧은 연구 논문에서 추가 정보를 찾을 수 있습니다.
참고
TinyML-CAM: 80 FPS Image Recognition in 1 kB RAM 논문 참고
'ESP32' 카테고리의 다른 글
| ESP32 Arduino IoT Cloud의 Color 위젯을 Wokwi의 RGB LED와 OLED 디스플레이로 연결 (1) | 2024.05.19 |
|---|---|
| ESP32 Arduino IoT Cloud Google 시트를 사용하여 4개의 센서 그래프를 표시 (0) | 2024.05.17 |
| 아두이노 Nano ESP32 빠른 가이드 1 - 시작 & FAQ (0) | 2024.05.15 |
| ESP32 Arduino IoT Cloud 5개 릴레이 예약 제어 wokwi 시뮬레이션 (0) | 2024.05.06 |
| ESP32 Wokwi 시뮬레이션 및 Arduino IoT Cloud 기반 릴레이 제어 (0) | 2024.05.06 |
| 프로그래밍 예제를 통해 ESP32 버튼 시작하기 (0) | 2024.04.03 |
| DHT11 센서를 사용한 ESP32 BLE 온도 및 습도 모니터링 시스템 (0) | 2024.04.02 |
| ESP32 BLE를 사용하여 LED 제어하기 (0) | 2024.04.01 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.
귀사가 성공하기까지의 긴 고난의 시간을 캐어랩과 함께 하세요.
캐어랩