Files
MAF_AI_ENGINE_ANDROID_QNN/README.md

55 lines
2.3 KiB
Markdown
Raw Normal View History

# Mobility Gateway for Android (Qualcomm NPU Edition)
Kepco AI 엔진의 Object Detection 및 Pose Estimation 기능을 **Qualcomm Snapdragon NPU(DSP)** 를 활용하여 안드로이드 앱으로 구현한 프로젝트입니다.
기존 CPU(ONNX Runtime) 방식 대비 비약적인 속도 향상과 발열 감소를 달성했습니다.
## 🚀 주요 변경 사항 (2026.01 업데이트)
- **AI 엔진 교체**: ONNX Runtime (CPU) → **SNPE / QAIRT (DSP/NPU)**
- **성능 향상**: NPU 가속을 통해 실시간(Real-time) 추론 속도 확보 및 배터리 소모 최적화.
- **지원 모델 확장**: RTMDet (Tiny, S, M), YOLOv8 (Nano, Pose) 완벽 지원.
---
## ✅ 요구 사항 (Requirements)
- **IDE**: Android Studio Jellyfish 2023.3.1 이상
- **Device**: Qualcomm Snapdragon AP가 탑재된 안드로이드 기기 (Android 10+)
- *권장: Snapdragon 8 Gen 1 이상 (Hexagon DSP 활용)*
- **Driver**: 퀄컴 전용 드라이버 (자동 로드됨)
---
## 🛠 적용 기술 (Tech Stack)
| 구분 | 모델 아키텍처 | 실행 엔진 | 비고 |
|---|---|---|---|
| **객체 탐지 (Detection)** | **RTMDet** (Tiny/S/M), **YOLOv8** Nano | **SNPE (DSP)** | NPU 가속 적용 완료 |
| **자세 추정 (Pose)** | **YOLOv8-Pose** Nano | **SNPE (DSP)** | NPU 가속 적용 완료 |
| **안면 인식 (Face)** | FaceNet | TFLite | 기존 유지 |
---
## 📖 사용 방법 (Usage)
### 1. 모델 준비 (Model Preparation)
이 프로젝트는 퀄컴 전용 포맷인 `.dlc` 모델 파일을 사용합니다.
PyTorch(`.pt`) 또는 ONNX 모델을 `.dlc`로 변환하는 방법은 프로젝트 내 **[MODEL_CONVERSION_GUIDE.md](MODEL_CONVERSION_GUIDE.md)** 문서를 참고하세요.
### 2. 모델 적용
변환된 `.dlc` 파일을 앱의 자산 폴더에 복사합니다.
- 위치: `app/src/main/assets/`
### 3. 설정 변경 (Config)
`Config.kt` 파일에서 사용할 모델 파일명을 수정합니다.
```kotlin
// Config.kt 예시
val FILENAME_OD_MODEL = "rtmdet_tiny.dlc" // 객체 탐지 모델
val FILENAME_POSE_MODEL = "yolov8n-pose.dlc" // 포즈 모델
```
---
## 📂 주요 라이브러리 (Libraries)
- **Qualcomm AI Engine Direct (SNPE)**: 2.x (NPU Inference)
- **OpenCV Android**: 이미지 전처리 및 그리기
- **Paho MQTT**: 4.2.3 (통신)
- **NanoHTTPD**: 2.3.1 (REST API)