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 문서를 참고하세요.

2. 모델 적용

변환된 .dlc 파일을 앱의 자산 폴더에 복사합니다.

  • 위치: app/src/main/assets/

3. 설정 변경 (Config)

Config.kt 파일에서 사용할 모델 파일명을 수정합니다.

// 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)
Description
No description provided
Readme 824 MiB
Languages
Kotlin 64.9%
Java 35.1%