티스토리 뷰

손일수 교수님 연구실에서 진행하는 링크사업 산학과제에 참여하게 되었다!

과제 주제는 안드로이드 TV 내장 카메라로 환자를 모니터링하다가 낙상 위험을 감지하면 의료진들에게 알림을 주는 서비스 개발이다.

 

👇🏻 협력 업체 정보

http://www.medieye24.co.kr/html/sub03/sub03_0302.php

 

(주)메디아이젠트

제품소개 - 제품소개 - 우리병상 TV(Wi-TV)

www.medieye24.co.kr

 

6월 29일에 첫 회의를 하기로 했는데, 교수님께서 회의 전에 몇가지 논의사항을 미리 생각해 보고 오라고 하셔서 그걸 정리해 볼 생각이다!

 

 

✔️ 안드로이드 개발에서 사용가능한 오픈소스 pose estimation 라이브러리

1️⃣ OpenPose for Android

https://github.com/CMU-Perceptual-Computing-Lab/openpose

 

GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint detection library for body, face, hand

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation - GitHub - CMU-Perceptual-Computing-Lab/openpose: OpenPose: Real-time multi-person keypoint de...

github.com

https://cmu-perceptual-computing-lab.github.io/openpose/web/html/doc/md_doc_00_index.html

 

OpenPose: OpenPose Doc

The OpenPose documentation is available in 2 different formats, choose your preferred one! Most users can simply use the OpenPose Demo without reading any C++/Python code. Users that need to add additional functionality (new inputs, outputs, etc) should ch

cmu-perceptual-computing-lab.github.io

➕ 가장 널리 사용되는 pose estimation library

➕ 정확하고 상세한 포즈 추정

➕ 대규모 커뮤니티, 문서화 good

➖ 기본적으로 C++로 구현되어 있음 → 안드로이드 버전은 추가 설정 및 구성이 필요

 

2️⃣ PoseNet for TensorFlow Lite

https://github.com/tensorflow/tensorflow

 

GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone

An Open Source Machine Learning Framework for Everyone - GitHub - tensorflow/tensorflow: An Open Source Machine Learning Framework for Everyone

github.com

https://github.com/tensorflow/tfjs-models/tree/master/posenet

 

GitHub - tensorflow/tfjs-models: Pretrained models for TensorFlow.js

Pretrained models for TensorFlow.js. Contribute to tensorflow/tfjs-models development by creating an account on GitHub.

github.com

https://www.tensorflow.org/lite/examples/pose_estimation/overview?hl=ko 

 

포즈 추정  |  TensorFlow Lite

포즈 추정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 포즈 추정은 ML 모델을 사용하여 주요 신체 관절(키포인트)의 공간적 위치를 추정하여 이미지 또는

www.tensorflow.org

➕ 구글에서 개발함(신뢰성↑)

➕ 모바일 기기에 최적화(안드로이드 개발용 Java API 제공) + 가벼움

➕ 실시간 포즈 추정 제공

➖ 다른 라이브러리에 비해 상세한 포즈 추정X

➖ 다른 라이브러리에 비해 커스텀이 쉽지않음 (사전 훈련 모델) 

 

💡 공식문서에서 MoveNet.Lightning을 더 추천

: 최신 스마트폰에서 실시간으로 실행O

 

3️⃣ MediaPipe

https://developers.google.com/mediapipe

 

MediaPipe  |  Google for Developers

An open source, cross-platform, customizable ML solution for live and streaming media.

developers.google.com

: 구글에서 개발한 크로스 플랫폼 프레임워크. 

➕ 컴퓨터 비전과 머신러닝 모듈을 포함한 프레임워크

➕ 안드로이드를 위한 pose estimation 솔루션을 제공

➕ 구글에서 개발함(신뢰성↑)

➖ 해당 프레임워크를 이해하는데 공부가 필요

 

4️⃣ HumanPoseEstimator

➕ 안드로이드를 포함한 모바일 플랫폼에 특화 (Java 바인딩 제공)

➕ 실시간 human pose estimation 제공

➖ 다른 라이브러리에 비해 소규모 커뮤니티 (문서, 리소스↓)

 

 

✔️ 안드로이드 상주 프로세스의 안전성 이슈

https://developer.android.com/guide/components/activities/process-lifecycle?hl=ko 

 

프로세스 및 애플리케이션 수명 주기  |  Android 개발자  |  Android Developers

대부분의 경우 모든 Android 애플리케이션은 자체 Linux 프로세스에서 실행됩니다. 이 프로세스는 일부 코드를 실행해야 할 때 애플리케이션용으로 생성되며 더 이상 필요하지 않고 시스템이 메모

developer.android.com

https://developer.android.com/about/versions/oreo/background?hl=ko 

 

백그라운드 실행 제한  |  Android 개발자  |  Android Developers

Android 8.0 이상을 대상으로 하는 앱에 대한 새로운 백그라운드 제한.

developer.android.com

✔️ 안드로이드 프로세스 우선순위

: OS는 중요도가 낮은 프로세스부터 종료(메모리가 부족할 때)시키면서 시스템 자원을 관리

1️⃣ 활성 프로세스(Foreground Process)

: 현재 사용자와 직접 상호작용하는 액티비티나 서비스를 가진 프로세스

 

2️⃣ 화면에 보이는 프로세스(Visible Process)

: 현재 화면에 보이지만 사용자와 상호작용하지는 않는 액티비티나 서비스를 가진 프로세스

 

3️⃣ 시작된 서비스 프로세스(Started Service Process)

: 화면에 직접적으로 표시되지는 않지만 계속 실행되는 서비스를 가진 프로세스

 

4️⃣ 백그라운드 프로세스(Background Process)

: 화면에 보이지 않는 액티비티나 실행중이지 않는 서비스를 가진 프로세스

 

5️⃣ 빈 프로세스(Empty Process)

: 앱의 수명주기가 종료되고 메모리에 캐시되어 남아있는 프로세스

 

foreground service를 만들고, 사용자에게 서비스가 실행 중임을 나타내는 지속적인 알림을 표시! (애플리케이션이 백그라운드에서 실행 중이고 환자의 자세를 모니터링하고 있음을 표시) (Multi-Window기능을 통해 플로팅 보기로 우리의 애플리케이션을 띄울 수 있음!)

 

❕ TV화면이 껴졌을 때도 프로세스가 계속 실행되어야 함 → JobScheduler or WorkManager / Foreground Service

❕ 비정상 종료를 대비해, 비정상 종료를 catch해서 처리하는 로직 필요(데이터 저장, 재시작)

❕ 환자의 자세를 모니터링하고 낙상위험이 감지되면 알림을 보내는 로직 필요

❕ 백그라운드에서 프로세스를 계속 실행하면 배터리 수명과 시스템 리소스에 영향.. 최대한 코드를 최적화하고 리소스 소비를 최소화

❕ 적절한 권한과 개인정보 보호 및 보안 지침을 잘 찾아보기

 

 

✔️ 이벤트 감지 시 메인 프로세스에 전달하는 방식 이슈

https://velog.io/@alsgus92/Android-IPC%EB%A5%BC-%EC%9C%84%ED%95%9C-3%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95-%EC%86%8C%EA%B0%9C-%EC%9D%B4-%EC%A4%91%EC%97%90%EC%84%9C-AIDL%EC%9D%84-%ED%8C%8C%ED%97%A4%EC%B3%90%EB%B3%B4%EC%9E%90-1

 

[Android] IPC를 위한 3가지 방법 소개, 각 방법의 특징과 차이점은?

App을 개발하다 보면, 서로 다른 Process와 통신해야 할 필요가 있다. 특히, Middle-Ware 성격의 App을 개발하다 보면 IPC의 중요성과 필요성은 더욱 커지게 되는데 Android는 이러한 IPC mechanism을 위해 아래

velog.io

https://medium.com/mj-studio/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EC%95%84%EC%84%B8%EC%9A%94-2-1-service-foreground-service-e19cf74df390

 

안드로이드, 어디까지 아세요 [2.1] — Service, Foreground Service

안드로이드 컴포넌트 Service의 이해와 구현

medium.com

❕ 메인 프로세스는 일반적으로 사용자 인터페이스(UI) 쓰레드를 나타냄(+이벤트 처리 담당) (메인프로세스에서 오래걸리는 작업을 하면X)

 

- 브로드 캐스트 OR Messagner

브로드 캐스트를 통해서 백그라운드 쓰레드에서 이벤트 생성

❕ 브로드 캐스트 리시버가 브로드 캐스트를 전달 받음

❕ 이벤트가 메시지큐(이벤트큐)에 들어감. 이벤트 큐는 기본 기본프세스에서 처리하기를 기다리는 일련의 이벤트를 보유

❕ 메인 프로세스가 이벤트를 감지하면 이벤트 처리를 백그라운드 스레드로 넘겨주거나 동시성 프레임워크 등을 이용해서 별도의 프로세스에서 실행

 

 

✔️ 12월까지 대략적인 일정 계획, 업무 분담

🔎 업무 분담

: 개인적으로 python을 이용한 AI개발은 하고 싶지 않다.. 애초에 JAVA를 이용한 개발을 한다고 들었고, 나는 Server 개발자로 취업을 하고 싶기 때문에 요즘 자바 공부를 하고 있었는데, 이번 산학 과제를 통해 자바를 깊이 있게 이해할 수 있을 것이라 생각에 과제 참여를 결심했기 때문!

 

🔎 일정 계획

: 우리에게 남은 시간은 약 5개월 (7월, 8월, 9월, 10월, 11월)

: 업체쪽과의 미팅은 2달에 1번씩! (8월 말, 10월 말, 12월 말)

 

 

🔎 참고 링크

https://developer.android.com/training/camera/cameradirect?hl=ko 

 

카메라 제어  |  Android 개발자  |  Android Developers

이 과정에서는 프레임워크 API를 사용하여 직접 카메라 하드웨어를 제어하는 방법을 논의합니다. 기기의 카메라를 직접 제어하는 것은 기존 카메라 애플리케이션에 사진이나 동영상을 요청하는

developer.android.com

https://medium.com/augmented-startups/top-9-pose-estimation-models-of-2022-70d00b11db43

 

Top 9 Pose Estimation Models of 2022

What is Pose Estimation?

medium.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함