2024년부터 관심을 갖고 테스트 하는 것이 있습니다.
ESP32 칩을 이용한 물체 인식 하는 분야입니다.
일반적으로는 OpenCV를 이용합니다.
결과물을 얻기 위해서는 PC급 처리 능력이 있어야 한다는 것입니다.
Linux가 탑재되지 않는 One-chip device에서 처리할 수 없을까?
그 과정에서 찾은 것이 ESP-DL입니다.
자세한 것은 아래에서 소개를 하겠습니다.
COCO Datasets으로 테스트 한 결과, 학습용으로 사용할 수 있지만, 일반적으로 사용하기 위해서는 아직 부족합니다.
Yolo로 학습한 가중치 파일로 모델 객체 인식한 화면
Espressif에서 제공한 가중치 파일로 모델 객체 인식한 화면(Val.py)
espdet_run.sh로 제작한 가중치 파일로 모델 객체 인식한 화면(Val.py)
ESP NPU가 성능이 좋아지면 제대로 동작하겠지만, 2026년 5월까지는 사용할 수 없을 것 같습니다.
============================================================
ESP-DL 소개: Espressif의 엣지 AI를 위한 경량 딥러닝 추론 프레임워크
Espressif Systems에서 개발한 ESP-DL은 ESP32 시리즈 SoC(ESP32, ESP32-S3, ESP32-P4 등)에서 효율적으로 딥러닝 모델을 실행할 수 있게 해주는 경량 신경망 추론(inference) 라이브러리입니다.
AIoT(Artificial Intelligence of Things) 시대에 클라우드에 의존하지 않고 디바이스 자체에서 실시간 AI 기능을 구현하고자 하는 개발자들에게 매우 실용적인 솔루션으로 주목받고 있습니다.
ESP-DL이란?
ESP-DL은 단순한 추론 엔진이 아니라, 리소스가 극도로 제한된 마이크로컨트롤러 환경에 최적화된 전문 프레임워크입니다.
주요 목표는 다음과 같습니다:
- 모델 크기와 연산량을 대폭 줄여 플래시·RAM에 맞추기
- 하드웨어 특성을 최대한 활용해 실시간 성능 확보
- ESP-IDF 생태계와 완벽하게 통합
2021년 처음 공개된 이후 지속적으로 업데이트되며, 2025~2026년 현재 v3.3.x 버전까지 발전했습니다. 최근에는 자동 양자화 도구 강화, YOLO 시리즈 지원 확대, Netron 시각화 지원 등 개발자 경험을 크게 개선하고 있습니다.
주요 특징과 아키텍처
ESP-DL의 강점은 계층적 최적화에 있습니다:
| 계층 | 최적화 내용 | 효과 |
|---|---|---|
| 하드웨어 | SIMD 벡터 명령어, DMA 파이프라인 | 대규모 병렬 연산 가속 |
| 소프트웨어 | 저비트 양자화, 어셈블리 최적화, 8-bit LUT 활성화 | 연산량·메모리 대폭 감소 |
| 프레임워크 | Static Memory Planner, Dual-core 스케줄링 | 메모리 효율 + 실시간성 확보 |
| 모델 포맷 | .espdl (FlatBuffers 기반) | Zero-copy 로딩, 빠른 로드 |
특히 Conv2D, DepthwiseConv 같은 핵심 연산에서 SIMD 최적화 시 최대 50~77배까지 속도 향상을 보입니다.
모델 배포 흐름 (가장 중요한 부분)
기존 PyTorch·TensorFlow·ONNX 모델을 ESP-DL에서 사용하려면 반드시 양자화(Quantization) 과정을 거쳐야 합니다.
단계 요약:
- PyTorch/TensorFlow 모델 → ONNX 변환
- ESP-PPQ 도구로 INT8 양자화 +
.espdl변환 (espdl_quantize_torch,espdl_quantize_onnx) - ESP-IDF 프로젝트에
espressif/esp-dl컴포넌트 추가 (idf.py add-dependency) - C++ API로 모델 로드 → 추론 실행
ESP-PPQ는 Espressif가 PPQ를 기반으로 확장한 전용 양자화 도구로, 칩별 최적화 규칙과 .espdl 익스포터를 제공합니다.
지원 칩셋과 실제 성능
| 칩 | 추천도 | 특징 | 비고 |
|---|---|---|---|
| ESP32-S3 | ★★★★★ | SIMD + 벡터 확장 | 가장 인기 |
| ESP32-P4 | ★★★★★ | 고성능 + PIE 명령어 | 최신 고성능 칩 |
| ESP32 | ★★★ | 소프트웨어 기반 | 성능 제한적 |
공식 발표에 따르면 ESP32 대비 ESP32-S3에서:
- 16-bit 검출 모델 4.5배 가속
- 얼굴 인식 모델 6.25배 가속
- 8-bit 모델이 16-bit 모델보다 2.5배 빠름
활용 사례 (Model Zoo)
GitHub에 다양한 사전 학습·양자화 모델이 제공됩니다:
- 얼굴 검출 / 얼굴 인식
- 고양이 얼굴 검출
- 손 제스처 인식
- YOLO11n, YOLO26 객체 검출
- 색상 검출, 활동 인식 등
위 이미지는 ESP32-S3에서 손 제스처 인식을 구현한 대표적인 예시입니다.
시작하기 (Getting Started)
필요 조건
- ESP-IDF v5.3 이상
- Python 환경 +
pip install esp-ppq - 추천 보드: ESP32-S3-EYE, ESP32-P4-Function-EV-Board
주요 링크
- GitHub 저장소: https://github.com/espressif/esp-dl
- 공식 문서: https://docs.espressif.com/projects/esp-dl/en/latest/
- 예제 코드: 저장소 내
examples/폴더 - 양자화 가이드:
tutorials/how_to_quantize_model.md등
