인체 관절인식 앱 출시 (Kotlin)
개요
평소 정신, 육체적 건강을 위해 로드 자전거를 즐겨탑니다.
좋아하는 운동이다 보니 잘하고 싶은 마음은 늘 앞서는데 실력은...🤫
부족한 운동량 때문이겠지만 빨리 늘지 않네요.
무리하다 보면 다리 쥐도 나고 무릎이 아프기도 합니다.
나의 운동자세를 보고 교정해 부상없이 오래 운동하고 싶지만 혼자 운동하는 시간이 많아 스스로를 카메라에 담기도 쉽지 않습니다.
출처 : Bing Image Creator |
목마른 자가 우물을 판다
정량적인 운동 분석을 하고 싶은 마음에 자료를 찾다 Google MediaPipe에 도달합니다.
먼저 Python으로 PC버전을 만들어 봤습니다.
약 3개월 전 소개한 적이 있는 게시물 입니다.
링크 :
관절각도 분석 PC버전
MediaPipe 활용 관절 각도측정 |
참고로 MediaPipe는 구글의 Convolutional Neural Network(CNN) 을 이용한 Open Source Project 입니다.
Object, Face, Pose, Hand Detection 등 다양한 기능을 가지고 있으며, 애플리케이션에 인공지능 (AI) 및 머신러닝 (ML) 기법을 빠르게 적용할 수 있는 라이브러리와 도구 모음을 제공합니다.
간단히 PC버전을 들고 나니 모바일에 대한 아쉬움과 아이디어가 떠오릅니다.
Andorid 앱 제작 언어는?
인체관절 측정 모바일 앱제작 결심을 합니다. (뒤따를 공부와 난관이 걱정)
한번도 해본 적이 없는것 같은데 다시 생각해보니 C++로 Qt Android 앱을 만든 적이 있습니다.
그리고 최근에 공부중인 Dart 기반 Flutter Framework 으로 진행중인
프로젝트도 있습니다.
조금 생긴 자신감으로 Dart + Flutter 로 진행하려다 급선회 합니다.
MediaPipe는 카메라로 들어오는 Capture Frame을 미리 학습된 인체 모델에 넣어 인체를 인식하고 인체가 감지되면 다시 관절 위치를 분석(3차원)해 제공합니다.
이미지를 다루다 보니 CPU 및 GPU, RAM 사용량이 증가되고 앱이 무거워질 것이고, 좀 더 Navtive 한 언어가 향후 개발에 유리하다 판단하고 Kotlin을 사용해 진행합니다.
Android 앱 개발경험이 저처럼 부족한 분들을 위해 결과물과 과정을 정리해
보겠습니다.
Android Studio + Kotlin
MediaPipe는 현재 iOS를 지원하지 않으므로 개발을 진행할 언어는 Kotlin, 툴은 Android Studio 로 결정하고 개발을 진행하였습니다.
자전거 좀 잘 타보려고 진행한 일이 점점 커져 이제 여기까지 왔습니다.
학원 수업진행하고 남는 시간은 모두 앱만드는데 열중하기를 3달여 드디어 결과물이 나왔습니다.
구글 플레이 스토어에
"PoseInsight"
라는 이름으로 유료앱 등록을 마쳤습니다.
한해가 가기전에 결과물이 나와 스스로 대견하고 기분이 좋습니다.🙂↕️
대략 이런 앱입니다
좀 더 자세한 내용은
Azimuth Co.
를 참조 바랍니다.
늘 제가 작성한 소스코드를 공유해 왔는데 이번에는 개발과정만 정리해 보겠습니다.
개발 과정
-
Kotlin, Android Jetpack Compose 개발환경 구축
- Google MediaPipe Library Jetpack Project로 이식
- Jetpack Compose UI 구성
- 카메라 권한설정 및 캡쳐 이미지 얻기
- 내부저장소 접근권한 설정 및 저장된 이미지, 동영상 얻기
-
분석이미지에서 인체인식 및 관절 위치좌표, 벡터 생성
- 삼각함수와 벡터내적을 이용해 각도 측정
- Camera SurfaceView위에 OverlayView 생성 후 관절 그리기
- 분석 후처리 이미지 이동, 확대, 축소 구현
- 표시 관절 선택 및 인식 신뢰도, Running Mode 설정 UI 연계
- 앱내 설정치 Room 기반 Database 작업
- Test and Debugging
Google Play Store 배포 과정
-
일반과세 사업자 등록 (국세청 홈택스, 1day)
- 통신판매업 신고 (정부 24, 1~2days)
-
이후 사업자에 통신판매업종 추가 (국세청 홈택스, 1day)
-
DUNS Number 발급 (US 5days, other 7~14days)
https://support.dnb.com/?CUST=APPLEDEV
-
구글 개발자
조직 계정개인계정 생성 및 Player Store 등록 (1~2days)
- 결재 프로필 작성, 계좌 등록 (3~5days)
-
App 등록시 요구자료 (설명, 이미지, 개인정보보호정책 등) 작성 (3 days)
- 심사대기(7days) 후 Playstore 등록
댓글
댓글 쓰기