즉, TinyML은 최신 임베디드 소프트웨어 기술로 엣지에서 컴퓨팅을 더 저렴한 비용으로 우수한 성능의 인공지능을 구현하는 플랫폼들을 말합니다.
온도를 알고 싶으면 온도계를 쓰면 되는 것 아닌가? 단순한 데이터만을 얻고자 한다면 온도계만 사용해도 된다. 그러나 만약에 시계열 데이터를 처리해야 한다면? 그리고 그 데이터를 더욱 유용하게 응용하고 싶다면? 이런 질문의 답은 바로 TinyML을 사용하는 것입니다.
TinyML은 실시간 데이터 피드백을 제공해주고 있으며 주변환경 모니터링에 최적화 되어있습니다. TinyML이 배포되어있는 마이크로컨트롤러에 부착된 센서로 시계열 데이터가 입력값으로 들어온다면, TinyML에 배포되어있는 AI 알고리즘을 통해 실시간으로 분류, 이상 탐지 (anomaly detection) 등등 많은 서비스들을 실행 가능합니다.
또 다른 예를 들자면, 스마트폰속에 있는 지자기 센서, 그리고 가속도 센서를 통해 6-axis 움직임의 변화량을 감지하여 사용자가 핸드폰을 들었는지 실시간으로 알아낼 수 있습니다.
이렇듯 TinyML은 생각보다 우리 일상생활에 많은 부분에 적용되어 있습니다.
1. 아두이노(Arduino)
저는 TinyML 프로젝트를 진행할 때 Arduino Nano 33 BLE Sense 아두이노 보드를 이용하였습니다. Arduino Nano 33 BLE Sense에는 디지털 마이크, 움직임/진동 센서, 온도/습도/압력 센서, 그리고 BLE 모듈이 포함되어 있습니다. 본 보드는 아두이노 IDE에 연결하여 사용하기도 하고 Bluetooth를 통해 통신 가능합니다.
2. Coral 개발 보드
Coral 개발보드는 SoC, eMMC 메모리, LPDDR4 1GB RAM, WiFi 및 Bluetooth가 포함되어 있고 Edge TPU 코프로세서를 사용한 코랄 SoM칩을 사용한 싱글 보드 컴퓨터입니다. 이 보드는 Tensorflow Lite를 지원하여 TensorFlow Lite로 컴파일 된 모델과 Edge TPU를 사용하여 이미지 인식, 물체 인식등을 구현할 수 있습니다.
3. TensorFlow Lite for Microcontroller
TensorFlow Lite는 기기 내 추론을 위한 딥러닝 프레임워크로 모델을 가져오고, 변환하여 해석합니다. TensorFlow보다 메모리 사용량이 적어 휴대폰, IoT 장비등 비교적 성능이 낮은 곳에서도 사용이 가능합니다.
Tensorflow Lite는 해석기(interpreter)와 변환기(converter)를 가지고 있습니다. 해석기는 모델을 이용하여 추론하는 것을 담당합니다. 변환기는 기존의 Tensorflow 모델을 가져와서 Tensorflow Lite용 모델(.tflite)로 변환합니다.
이 외에도 Raspberry Pi for TensorFlow, NVIDIA Jeston Nano Development Kit 등등 많은 TinyML 플랫폼들이 존재합니다.