레이블이 AI-TinyML인 게시물을 표시합니다. 모든 게시물 표시
레이블이 AI-TinyML인 게시물을 표시합니다. 모든 게시물 표시

4/18/2025

RADAR 의 TinyML(Edge AI) 자료 모음 및 분석

1. Radar 기반 TinyML 자료 

  • RF Radar 의 이해 
Radar 관련 사항 정리 

  • TinyML/Edge AI 
최근에 TinyML 이름도 공식적으로 Edge AI 로 이름이 변경이 되어졌다.

  • Tensorflow 와 기타 지식
TinyML에서 주로 사용되는 게 Edge Impuse도 있지만, Tensorflow도 있다.(이외 다양하다)

  • Tranfer  Learning
분명 모델을 가져오면, Tranfer Learning 이 필요할 경우 
아니면, 처음부터 Training 하던지 


1.1 TinyML 의 Radar 자료 

주로 TinyML Webinar 와 각 참여해서 많이 들어서, 이 부분들을 모았으며, 아래와 같이 간단히 링크만 남긴다.
이외 다양한 TinyML 자료도 있는데, 이 부분은 나중에 정리를 하든지 해야 할 듯하다 
무작정 듣고 , 링크만 남기기가 좀 그렇다  


TinyML 기반으로 Gesture Recoginition 관련부분 TinyML(Machine Leraning)으로 동작 
  • tinyML Talks-Michele Magno: LW Embedded Gesture Recognition Using Novel Short-Range Radar Sensors


TinyML 기반으로 Gesture Recoginition 과 Vital Sign Monitor 

  • tinyML Summit 2023: Low Power Radar Sensors and TinyML for Embedded Gesture Recognition and Non-Contact Vital Sign Monitoring


Infenion 사에서 XESNSIV의 60GHz Radar Sensor 소개 
  • tinyML Hackathon Challenge 2023 - Infineon XENSIV 60GHz Radar Sensor and devkit explanation



TI 사의 TinyRadar 기반의 사람행동 

  • tinyML Asia 2022 Video Poster: tinyRadar for fitness: A radar-based contactless activity tracker...


1.2 TinyML-Radar 기반의 사람 행동 분석 

Radar-based Human Activity Classification for Edge Computing

TI Board와 ESP32기반으로 구성했으며, 상위에서 설명 했듯이 Edge AI기반으로 사람의 행동을 구분하는 기술이다.
주요 사용되는 기술을 보면, Edge Impulse Tool 로 CNN(CMSIS-NN, ARM)  Inference 구조로 Edge AI를 구현했다.

tinyRadar: mmWave Radar-based Human Activity Classification for Edge Computing
TI IWR6843

TinyML Talk (TI IWR6843) 


1.3 TinyML-Target Classification 소개

TI에서 발표한 내용으로, TI사의 Edge AI Tool을 이용하여 쉽게 개발내용 

TI의 각 Tool을 잠깐 씩 소개하며, 상위 구조와 거의 흡사하지만, 이번에는 Edge Impluse 대신 TI의 Edge AI를 이용했기에, 상위에도 링크 

최적화 핵심보면, HWA(or DSP) 와 EDMA의 조합이며, 역시 TI DSP(HWA)를 사용하면 EDMA는 필수이다.
이외 CFAR Detection(이 부분은 좀 더 확인??) 과 Tracker(칼만 필터?)는 아래에서 간단히 각 링크로 확인만 해보자 

  • TI EDMAv3 
EDMA의 역사는 길며, TI DSP C6x부터 존재했으며, 주로 Davichi 시작되면서 모든 TI Chip에서 적용되어 사용 되어진 걸로 기억한다.
나도 이것 때문에 DSP와 무지하게 삽질을 많이 했으며, 주로 Channenl Chaining 많이 사용할 것이다.
주 기능은 HW기반의 SW설정(Channel설정)으로 A/B/C Count기반 Dimesion 개념으로 전송가능과 각 Channel Chaining. 


  • CFAR(Constant False Alarm Rate) Detection 
TI에서 제공해주는 CFAR 엔진이며, 처음에 왜 필요한 지를 잘 몰랐으며, 오감지라는 것을 생각을 못했다. 
나도 동작 시스템은 완벽히 이해를 못했으며, 중요한 것은 Threshold 조절하여 오감지(False Alarm) 확인

CFAR-CA(Cell Average), GO(Greatest-Of), LO(Least-Of) 예제 
TI CFAR-CA 적용 
  
  
TI에서 제공하는 Point Cloud GTRACK
아래 링크, Filtering(EKF)보면, 통계에서 예측값 과 측정값 사이 의 중위값?, 중간값? (추후 확인?)
다음에, Clustering 보면, 상위에서 측정 값을 군집화하여 GTRACK
Kalman Filter (EKF vs UKF)

  • TI의 Edge AI 의 TinyML 
Target Classification on the Edge Using mmWave Radar
TI IWRL6432
TI에서 직접 발표한 것으로 Point Cloud까지 같이 설명을 해주고 있다.
특히 Point Cloud 들어가면서 Tracking 추가되어 이를 더 보완하고 있다. 
설명도 자세히 해주고 있어서 개념을 이해하는데 크게 도움되었지만, 완벽한 이해는 사실 이거 가지고 해봐야 알겠다.

  • Machine Learning on the Edge with the mmWave Radar Device IWRL6432
일단 간단히 살펴 보도록 하면 다음 목적으로 Edge AI를 사용 (60GHz)
  1. Building automation (indoor and outdoor surveillance, elderly care)
  2. Personal electronics (gesture recognition, presence detection)
  3. Automotive body and chassis (in-cabin sensing, kick-2-open sensor).

  • IWRL6432
    ADC -> (Radar FFT) HWA -> Cortex-M4F(TinyML)

2TX , 4RX = 8 Virtual Array 

  • HWA(FFT 기능)
  1. Range-FFT
  2. Doppler-FFT
  3. Angle-FFT
4 Channel 의 Range 와 Doppler Data 이용 
https://www.ti.com/lit/wp/swra774/swra774.pdf


1D CNN 3Layer 구조로 1D CNN 3 Layer가 결과로 보면 성능이 좋다.
  • 기타사항 
CNN과 다른 것도 섞어서 구성해도 될 듯하긴 한데, 이 부분 좀 더 나중에 파악 하겠다.
LSTM(Long Short-Term Memory)이나, SVM(Support Vector Machine) 

11/08/2024

TinyML(Edge AI) 의 Tools

1. TinyML 의 Edge AI Tool

  • TinyML -> Edge AI Foundation 변경?
최근에 TinyML이 이름을 Edge AI Foundation으로 이름을 변경하려고 하는 것 같으며, 
추후 이부분 다시 계속 알아보겠으나, LinkedIn도 거의 이름을 동일하게 변경하려는 것 같다.

  • TinyML의 Radar 관련 사항 
TinyML을 많이 보다가 Radar에 관련된 부분들을 아래와 같이 간단히 자료를 모으고 분류한다.
나중에 TI TinyML의 경우는 세부적으로 분석할 필요가 있어, 이부분은 나중에 하도록 한다.


1.1 TinyML(Edge AI) 의 관련자료  

Meetup 과 Linkedin 으로 자주 보는 것으로 구지 Radar가 아니여도, 많이 보고 있어,  관련된 Radar TinyML을 별도 수집하여 정리한다. 



1.2 TI 의 Edge AI Tool 

TinyML에로 사용가능한 것으로 보이며, TI에서 Edge Impuse 같은 프로그램 없이 별도로 자체제작한 것으로 보인다. 

  • TI 의 Edge AI Studio
TI에서 제공하는 Edge AI 기능으로, 영상을 보면, 거의 Edge Impluse 와 비슷하다. 
TI가 아니더라도, 요즘 ARM기반으로 되어있다면 얼추 다른 Tool을 이용하여 개발가능하다. 
ARM이 아니더라도 각 Chip Core 별로 AI Inference Lib 거의 나오며, 쉽게 연동가능하도록 하는 Tool 들이 존재한다.  
다만, 각 사용가능한 AI Model들은 정해져 있을 것 같으며, 나도 아직 사용을 못해봤다. 

TI에서 별도로 Tool도 제공

Edge AI 관련 설명 



2.3 Infenion 의 Edge AI Tool

Meetup에서 직접봤지만 Infenion도 TI처럼 각 Tool을 이용하여 Edge AI를 해보려고 하는 것 같다.

ARM 기반의 WIFI로, ARM의 NPU 탑재?? 

  • Infenion Edge AI Tool
Edge Impulse 와 거의 비슷한 것으로 보이며 아래 사이트에서 제공
Imagemob Studio(아직 사용 못해봄)

  • Embedded Edge Intelligence with Infineon New Products and Imagimob Studio
Imagimob Studio 와 PSOC Edge 관련사용법이며 TinyML에서 발표 

  • ModusToolbox Machine Learning User Guide 

1/10/2024

ESP TinyML (Edge AI)

1. Edge AI (TinyML)  

TinyML을 Meetup or Linkedin을 통해 여러번 보기만 하고, 관련자료들을 거의 잘 정리하지 않아, 
아래와 같이 간단히 정리하도록 한다. 
우선 TinyML 을 알기전에 기본적인 Machine Learning 과 Deep Learning을 좀 알아보고 
Tensorflow or Edge Impulse를 사용해보는게 맞을 것 같다. 


ESP32/ARM 기반의 TinyML
TinyML 관련된 부분 내용이며, 개발 Tool 과 Inference를 위한 NN network 관련자료 

Tensorflow/Tensorboard 
Tensorflow 와 Tensorboard 기본사용법 과 분석방법  (오래되어 많이 까먹음) 

MNIST 모델의 기본이해 
가장 기본인 MNIST 모델을 이해

CNN(Convolutional Neural Network) 관련자료 
Convolution Network 예전에 정리한 자료 

Jupiter/Colab 사용법 
기본 Jupyter(Colab) 사용법 


1.1 Edge AI/TinyML 개발 Tool 

Edge Impulse or Tensorflow Lite를 사용방법은 서로 비슷하리라고 본다. 
아직 Edge Impulse는 사용해보지 못하고 매번 글만 읽어 보기만 했으며, 관련 Tool들만 간단히 소개한다. 

TensorFlow Lite for Microcontrollers
TinyML 기반으로 진행할 경우, Tensorflow 와 Tensorboard로 진행 

Edge Impuse 
TinyML Meetup에서 알게되었으며, 이걸로도 많이 진행하며, 주로 보면 Tensorflow와 비슷하리라 본다. 

TensorFlow Lite for ESP32 
ESP32 의 Tensorflow 관련자료 


1.2 Edage AI Use Case 와 Cloud 

Edge AI, TinyML을 주로 많이 사용하는 것 같으며, ARM 뿐만 아니라 ESP32 시리즈 각 CPU 아키텍쳐마다 
이를 지원을 해주는 것으로 보인다. 

  • Edge AI Use Case
요즘 Edge AI , TinyML은 거의 들어갈 것으로 보이며, 핵심을 주로 보면, Cloud와 조합이다.
Edge는 Edge 일 뿐이며, Cloud와 어떻게 조합할 것이며, 역할을 어디까지 정하는게 중요할 것 같다. 

  • Google Firebase 
Realtime Database를 제공해주고 있으며, 간단한 IoT를 제작하여 실시간으로 확인하고 싶다면 괜찮은 것 같다. 

  • AWS 
AWS는 현재 거의 사용해본게 AWS EC2 와 IoT(S3) 만 사용해봐서 뭐라고 말을 못하겠다.
추후에 AWS를 좀 더 잘 알면, 그때 더 보도록 하자. 특히 Lamda !!! 

  • AWS/GCP/Azure 
Could를 사용해보면, 항상 이곳에서 이 기능을 제공하며, 거의 다 다른 곳에서도 비슷한 기능을 제공해준다.  
나도 Cloud를 좀 더 사용해보고 말을 해야 겠지만, 얼추 제공은 다 해주는 것 같다. 

  • RealTime Chart 관련자료 
이전에 Chart 관련 JavaScript을 Firebase기반으로 Realtime으로 이용한 적 있는데, 추후 이를 다시 이용할때 확인 


2. ESP 기반의 TinyML 분석 

ESP32 or ESP32-S3 기반으로 TinyML을 구성하기 위해서는 기본적으로 아래의 Component기본으로 사용한다.
ARM 과 달리 ESP 경우 DL을 별도로 또 제공해주고 있다. 

ESP-NN(Neural Network)
ARM도 이를 제공하고 있으며, 나중에 Inference할 때 같이 사용 

ESP-DL(Deep Learning Model)
아래를 보면, ESP32-S3기반으로 성능측정된게 있는데, Data Cache만 64KB사용했을 경우이다.

ESP32 Memory (SRAM)
문제는 나중에 SRAM이 될 것 같으며, 이 부분은 별도로 생각을 해야 할 것 같다. 


2.1 Human Activity Recognition Edge AI 

ESP32-S3 기반의 TinyML기반 동작되어진다. 
마지막에 보면 Model을 ESP-DL로 Converting 해서 사용하며, 이는 .cpp 와 hpp로 구성되어진다. 
나중에 직접 실행을 해보면 알겠지 ㅋㅋㅋ (Fine Tuning 도)
 
  
  • Model 구조 
CNN 기반으로 가속도계 센서 기반으로 사람의 행동 파악
  1. Input: 가속도계 센서 (MPU6050)
  2. Output: 7가지 행동패턴 

  • Tensorflow 기반의 CNN 구조 및 설명 
Model을 만들어가면서 설명해주고 있어 괜찮음


  • Espressif Blog (Human Activity Recognition)
상위 내용들은 모두 아래의 Blog 기반으로 작성되어있으며, 아래의 Blog을 읽으면 세부적인 내용이 나온다.  

2.2 Hand Gesture Recognition Edge AI 

ESP32-S3 기반의 TinyML기반 동작되어지며, 상위와 비슷하다.
Jupyter를 Colab을 사용한다고 하며, 나중에 ESP-DL Format으로 Convert해서 사용한다고 하며, 
ONNX로 한다고 하는데, 내가 까먹었다. (CNN는 동일) 

  • ONNX
나중에 시간되면 다시 보면 되겠지 

  • Edge AI H/W Optimzation 과 관련내용 
좋은 설명을 해주고 있는데, 내가 아직 이해를 다 못하겠다. 
  
  • Model 구조 
CNN 기반으로 Model이며, 카메라에서 얻은 것을 ESP32-S3 EYE
  1. Input: Camera Image (ESP32-S3 EYE)
  2. Output: 손가락 Pattern (현재 6개의 Gesture, score기반으로 구분)

Model의 Dataset (Kaggle 것 사용)

  • 관련자료 수집


Espressif Blog (Hand Gesture Recognition)
상위 내용들은 모두 아래의 Blog 기반으로 작성되어있으며, 아래의 Blog을 읽으면 세부적인 내용이 나온다.  


2.3 기타 Edge Impuse 기반 자료

  • Edge Impuse 기반 진행 
ESP32 TinyML 
개발 Tool : Edge Impulse 와 Arduion IDE으로 진행을 한 것으로 보이며, 다양하게 존재하며 
대부분 카메라 중심으로 되어있다. 

9/15/2022

ESP32-S3 TinyML (Edge AI )

1. Arduino IDE 와 TinyML 

우연히 LinkedIn에서 보게되었는데, MCU기반으로 Machine Learning을 해서 동작이되는 것을 보고, 좀 쇼크를 받았다. 
Arduino 기반으로 Transfer Learning하여 이를 지원하는 것으로 보이며 음성인식을 하여 로봇 손을 제어한다. 
아이러니한 것은 소스를 보면, BLE로 동작되는 걸로 보인다. 

  • HW 사양 
  1. Board: Arduino Nano 33 BLE Sense (Nordic 사)
  2. 기타: Servo 와 BreadBoard(빵판) 과 Jumper 

  • 개발 Tools 
  1. Edge Impulse Studio 
  2. Arduino IDE 

일단 Transfer Learning(Training) 알려고 하면, 어쩔 수 없이 상위 Edge impulse Studio를 좀 알아야 할 것 같다. 
 
  • 음성인식 방법(모델?)
  1. MFCC(Mel-Frequency Cepstral Coefficient)
  2. MFE 

MFE 와 MFCC 비교 


  • Inference
NVIDIA Jetson 처럼 INT8 까지는 아니여도, INT16까지 양자화해서 Inference하는 것으로 보인다. 

  • 결론 
MFCC or MFE 사용한다고 하며, 아직 MFE는 검색이 안되어서 잘 모르겠다.
MFCC는 상위 블로그로 읽어보면, 간단히 동작방식의 핵심 다음과 같다고 생각되어진다. 

Mel-Filter Bank 라는 것을 일종의 Pattern을 저장해서 Machine Learning하는 것으로 보인다. 
다만 가성주파수 영역에 (300Hz ~ 3300Hz) 집중적 배포하여 사람 목소리인 음성인식을 하는 것으로 보인다. 

다시 DCT도 나오고 그렇는데, 오랜만에 다시 DSP를 보니 골치아프다. 
DCT 와 DFT/FFT 의 차이는 간단히 말해, 허수 사용여부이다. 
추후 시간이되면 좀 더 자세히 알아보도록 하자 .


1.1 Edge Impulse Studio 

Edge Impulse가 무엇인지 궁금해서 찾아 보게되었는데, 아래 사이트에서 쉽게 답을 얻었다. 

나의 경우는 거의 Arduino를 거의 사용해본 경험이 없는데, 거의 Arduino 기반으로 Library가 제공되어지는 것으로 보인다. 

  • EdgeImpulse Studio 
이 사이트 기반으로 Project를 진행하는 것으로 보이며, 나도 오늘 가입을 했다. 


1.2 Tensorflow light for MCU

Tensorflow를 보니, 지원되어지는 MCU Board는 적은 것으로 보이며, 다행히 Espressif 사의 ESP도 지원가능한걸로 보인다. 
다만, 대체적으로 Arduino 기반으로 Project가 진행이 되는 것으로 보인다. 
일단 Arduino 와 ESP32 or 다른 MCU EVM이 필요하다 

TensorFlow light for Microcontroller

ESP32 와 Tensorflow Lite for Microcontroller
ESP-IDF 와 ESP-NN을 사용한 것으로 보이며, CNN구조의 간단한 예제 


2. TinyML 

좀 생소하기는 한데, 아직 제한적으로 사용되어지는 것 같으며, MCU기반으로 사용되어지는 걸로 보인다. 
검색을 해보면, 책까지 나왔을 정도로 많이 보편화가 된 것으로 보이며, 현재 관심을 두고 보고 있다.
대부분 Inference를 할 경우, 각 NN Library와 연결하여 사용하는 것으로 생각되어진다. 


2.1 TinyML 관련책 과 세미나  


TinyML 
O'REILLY 에서 처음 영문으로만 나왔는데, 한글로 나옴 

TinyML Home 

Google TinyML 

Meetup TinyML
Meetup을 통해서, 자주 Youtube에 관련내용들이 공유되어지고 있음 


2.2 ARM 의 TinyML

ARM을 주로 보면 Cortex-M 기반으로 CMISIS-NN으로 연결하여, 주로 Inference용으로 사용하는 것 같다. 





2.3 ESP32의 TinyML 

ESP경우, ESP-NN이 존재하며, 연결하여 확장해서 ESP-DL 
주로 Inference용으로 사용


ESP-NN(Neural Network) 와 ESP-DL(Deep Learning Model)