ESP32 Espressif SoC ESPDL 딥러닝 라이브러리
저가 MCU Espressif ESP32 를 위한 딥러닝 라이브러리가 존재한다?
ESP-DL (Espressif Deep learning Library) 은 Espressif SoC (System On Chip) 전용 고성능 딥 러닝 라이브러리입니다. ESP-DL 은 뉴럴 네트워크(neural network, NN) 추론(inference), 이미지 처리, 수학 연산 및 딥 러닝 모델을 위한 API를 제공합니다. 개발자는 ESP-DL 를 이용하여 뉴럴 네트워크 추론을 빠르고 쉽게 구현할 수 있습니다. 특히, 새로 릴리즈된 ESP32 S3 에서 DNN (Deep Neural Network) 하드웨어 가속 기능이 추가 되었습니다.
ESP32-S3 는 240MHz 듀얼 코어 XTensa LX7 MCU입니다. 512KB의 내부 SRAM 외에도 장거리 데이터 전송을 제공하는 통합 2.4GHz, 802.11 b/g/n Wi-Fi 및 Bluetooth 5(LE) 도 함께 제공됩니다. 45개의 프로그래밍 가능한 GPIO 가 있으며 다양한 주변 장치를 지원합니다. ESP32-S3는 설정 가능한 데이터 및 명령 캐시가 있는 고속 Octal SPI 플래시 및 PSRAM을 지원합니다.
ESP32 s3 에서 DNN 추론이 얼마나 향상되었는가?
ESP32 에 비해서 15배 성능향상이 있다?
ESP-DL 을 사용하면, 기존 ESP32 에 비해 ESP32-S3 는, 16bit detection 은 4.5배, 얼굴인식 모델은 6.2배 빠르다고 합니다. 추가로 8bit 모델을 사용할 경우 16bit 모델에 비해서 2.5배 더 개선된다고 합니다. 그러면 얼굴인식 8bit 모델의 경우에는 ESP32 와 ESP32-S3 가 15배 정도 차이가 날 수 있을까요? ESP32-S3 로 오면서, CPU core 가 Tensilica LX7 로 업그레이드 되면서 DNN 연산을 위한 일부 명령어가 추가되었기 때문이라고 가능하다고 생각 됩니다. 자세한 내용은 Tensilica LX7 에서 지원하는 DNN 관련 명령어 세트를 분석해봐야 합니다.
현재 ESP-DL 에서 지원되는 비전 모델은 다음과 같습니다.
현재 ESP-DL 에 구현되어 있는 DNN 레이어는 아래와 같고, 이중에 일부는 ESP32-S3 에서 하드웨어 가속이 가능한 것으로 생각 됩니다.
ESP-DL DNN Layer
add2d, avg_pool2d, base, concat, concat2d, conv2d, depthwise_conv2d, expand_dims, flatten, fullyconnected, global_avg_pool2d, global_max_pool2d, leakyrelu, max2d, max_pool2d, min2d, model, mul2d, prelu, relu, reshape, squeeze, sub2d, transpose
ESP-DL Human face detect 예제
ESP-DL Human face detect 예제로, 추론의 결과는 좌표와 신뢰도 입니다. 추론의 결과를 입력이미지에 표시할 수 있는 도구 (display_image.py) 를 함께 제공하고 있습니다.
ESP-DL Human face detect 예제를 ESP32, ESP32-S2, ESP32-S3 에서 실행해서 비교한 결과 입니다.
MCU SoC | TWO_STAGE = 1 (얼굴 랜드마크 O) |
TWO_STAGE = 0 (얼굴 랜드마크 X) |
ESP32 | 415,246 us | 154,687 us |
ESP32-S2 | 1,052,363 us | 309,159 us |
ESP32-S3 | 56,303 us | 16,614 us |
검출된 얼굴의 랜드마크를 포함하지 않는 TWO_STAGE=0 기준으로, ESP32-S3 는 ESP32 와 ESP32-S2 에 비해, 각각 9.3배, 18.6배 빠른 성능을 보여 줍니다.
ESP32 s3 의 구매방법은?
2021년 10월 현재, ESP32-S3 는 sample 만 구입 가능한 것 같습니다. 알리익스프레스 (aliexpress.com) 에 구입가능한 Devkit 이 보여서 링크를 추가합니다.