Files
MAF_AI_ENGINE_ANDROID_QNN/README.md

56 lines
2.4 KiB
Markdown

# Mobility Gateway for Android
Kepco AI 엔진의 기본적인 detect 기능을 안드로이드 앱으로 구현
onnx export를 통해 YOLOv8 object detect, pose estimate 동작 확인
REST 서버 동작 확인 및 MQTT 통신 확인
### Requirement
- Android Studio Jellyfish 2023.3.1
- https://developer.android.com/studio?hl=ko#get-android-studio
- 테스트용 안드로이드 폰
- 최소 안드로이드 10 이상.
- 개발자 옵션 활성화: 설정 > 휴대전화 정보 > 소프트웨어 정보 메뉴로 진입하여 '빌드번호' 영역을 여러번 연타
- USB 디버깅 활성화: 개발자 옵션을 활성화 한 후, 설정 > 개발자 옵션 메뉴 진입하여 'USB 디버깅' 활성화
### 실행확인한 환경
- 윈도우 11
- 안드로이드 스튜디오 2023.3.1
- 갤럭시 S20+ (안드로이드 13 Tiramisu)
### 사용방법
![error](images/slide1.jpg 'slide1')
![error](images/slide2.jpg 'slide2')
![error](images/slide3.jpg 'slide3')
![error](images/slide4.jpg 'slide4')
![error](images/slide5.jpg 'slide5')
![error](images/slide6.jpg 'slide6')
![error](images/slide7.jpg 'slide7')
![error](images/slide8.jpg 'slide8')
![error](images/slide9.jpg 'slide9')
![error](images/slide10.jpg 'slide10')
![error](images/slide11.jpg 'slide11')
![error](images/slide12.jpg 'slide12')
### 적용 기술 (현재 적용 상태):
- 객체탐지: (ONNX) YOLO nano
- 안면인식: FaceNet (모델 아키텍처 단일)
- HPE: (ONNX) YOLO-Pose nano
### Onnx 파일 변환
- 원하는 pt파일을 적용하기 위해 onnx 형태로 변환이 필요하다.
- 아래 저장소 스크립트 실행하여 yolov8 pt 파일을 onnx 파일로 변환 가능하다.
- http://192.168.0.230:50003/FERMAT_TEAM/UTILITY_YOLO_EXPORT
- onnx 파일은 app/src/main/assets 폴더에 복사한다.
- Config.kt 파일의 상수 FILENAME_OD_MODEL, FILENAME_OD_LABEL, FILENAME_POSE_MODEL을 사용하고자 하는 파일명으로 수정하여 재실행한다.
### 주요 Libraries version
- 실행에 필요한 라이브러리는 안드로이드 스튜디오에서 프로젝트 실행시 자동으로 다운로드 됨.
- com.microsoft.onnxruntime:onnxruntime-android:1.17.1
- org.nanohttpd:nanohttpd:2.3.1
- org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5
- com.github.hannesa2:paho.mqtt.android:4.2.3
- androidx.camera:camera-core:1.3.2
- org.tensorflow:tensorflow-lite:2.15.0
- com.google.mlkit:face-detection:16.1.6