# 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