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) 과정을 거쳐야 합니다.

단계 요약:

  1. PyTorch/TensorFlow 모델 → ONNX 변환
  2. ESP-PPQ 도구로 INT8 양자화 + .espdl 변환 (espdl_quantize_torch, espdl_quantize_onnx)
  3. ESP-IDF 프로젝트에 espressif/esp-dl 컴포넌트 추가 (idf.py add-dependency)
  4. 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

By neoy2g