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 논문 참고
'개발자 > 라즈베리파이4' 카테고리의 다른 글
라즈베리파이4 Window 삼바 연결 안될 때 (0) | 2023.01.05 |
---|---|
라즈베리 파이 초소형 LiPo/LiIon 전원 공급 보드 (0) | 2023.01.01 |
Raspberry Pi4 GPIO Pinout 완벽 정리 (3) | 2022.12.14 |
Raspberry Pi Camera v2, RPI 8MP CAMERA BOARD (0) | 2022.11.23 |
AIoT 지능형 사물인터넷 혹은 사물 지능 융합기술이란? (0) | 2022.11.07 |
Raspberry Pi Pico 윈도우에서 개발하기 (1) | 2022.10.26 |
mysqli_real_connect(): (HY000/1045): Access denied for user 'phpmyadmin'@'localhost' (using password: YES) (1) | 2022.09.05 |
라즈베리파이 i2c lcd display 제어 (1) | 2022.09.02 |