https://www.youtube.com/watch?v=ai1b0S11ylA
[Home] Mediapipe 라이브러리 때문에 파이썬 버전은 3.11.0으로 고정하였습니다. 기타 라이브러리는 각 라이브러리마다 버전을 명시하여 파이썬 버전 의존성을 지켰습니다. 시스템 플로우는 카메라 인식 - 관절 추출 - 상태 분석 - 낙상 판단 - 메세지 전송 순입니다. 낙상 판단은 keras 딥러닝 모델 API를 이용하였고, 모델 학습을 위해 youtube 동영상 학습을 하였습니다. 메뉴는 크게 영상분석, 모델생성, 실시간 감시, 환경설정으로 이루어져 있습니다. 파일 구조는 4개의 가 역할별 폴더, 총 17개의 파일로 구성되어 있습니다.
[영상분석] 초기 개발에는 실시간 감시만 있었는데 실시간 감시를 위한 딥러닝 모델이 없어 이를 생성하고자 영상분석 메뉴가 신설되었습니다. 해당 메뉴에서는 youtube에서 관련 영상을 학습시켜 관절 좌표를 얻어내어 csv로 저장합니다. 좌표는 좌우어깨, 좌우무릎의 x(가로),y(세로),신뢰도를 가져오며 훈련데이터 적합여부는 신뢰도 0.7이상으로 기준을 세웠습니다.
[모델생성] 모델은 tensorflow.keras 모델 API를 통해 생성되며, [영상분석]에서 만들어진 csv를 병합하여 모델 로직에 맞게 생성됩니다. 각 단계마다 메세지를 화면상에 나오게 하여 사용자로 하여금 진행상황을 알 수 있게 하였습니다. 모델이 생성된 후 정확도를 표기하며, 해당 모델의 우수정도를 판단하기 위해 하단에 시각화하여 한눈에 보기 쉽게 하였습니다.
[모델적용] tensorflow.keras을 통해 만들어진 모델파일이 로딩되는데 시간이 오래 걸려 최초 한번 메모리에 올립니다. 그 후 새로운 모델이 생성되면 새로운 모델을 메모리에 업로드하는 절차를 위한 메뉴입니다.
[실시간감시] 이번 프로젝트에 주 메뉴입니다. 대기중에는 각 영역마다 정보의 정의가 나오며, 카메라 시작을 눌러 감시 모드가 되면 실시간으로 좌표값을 추출하여 낙상여부를 판단하게 됩니다. 낙상이 발생했다고 하면 발송기준에 의거 오른쪽 아래에서와 같이 텔레그램 메세지를 보냅니다. 현재 화면은 테스트를 위해 양쪽 어깨의 좌표로 낙상여부 기준을 세워 감시하는 화면입니다. 사용자모델을 선택하면 [영상분석] 메뉴에서 csv를 추출했던 기준으로 판단하고 딥러닝모델을 선택하면 [모델생성] 메뉴에서 만들어진 tensorflow.keras 모델을 기준으로 판단합니다.
[환경설정] 위 모든 메뉴에서 낙상 판단을 하는 모든 기준값을 해당 메뉴에서 관리할 수 있도록 합니다. 사용자가 값을 바꿔가며 적절한 모델을 학습하는 Training Data를 만드는 기준이 됩니다.
[그외 github, ppt] 해당 메뉴들은 팀원들과 문서를 공유하고 학습하기 위한 공간입니다.