2024/08 4

MoveNet으로 수집한 데이터를 seq데이터로 변환하자

지난번에 이어, MoveNet으로 관절 Keypoint까지 인식하는 것에 성공했다. 우리의 목표를 다시 한번 상기해 보자면 더위, 추위를 인식하기. 사실 실효성이 있는 모델인지는 모르겠지만 모델을 학습하고 라이브러리 사용에 의의를 두자. 최종 목표는 4가지 동작을 인식하는 것이지만 데모 모델이기에 shivering과 fanning, 두 동작을 인식시키기로 결정했다. actions = ['cold_shiver', 'fanning'] # 학습할 두 가지 동작seq_length = 30 # 시퀀스 길이created_time = int(time.time())def process_frame(frame): img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) img = tf.image.r..

딥러닝 2024.08.30

Mediapipe는 다중인식 되지 않는다. MoveNet을 이용해보자

지난번 Mediapipe로 간단한 LSTM을 거쳐 동작을 인식하는 것까지는 성공했지만, 프로젝트의 최종 목표: 다수의 사람들 사이에서 동작을 인식하는 것은 실패로 돌아갔다. 단일 객체만 인식하는 Mediapipe는 Openpose와 호환이 되지 않았고, Openpose 또한 일반적인 노트북에서 구동하기 무거운 사양이기에 다른 라이브러리를 찾아봤다.  Multi detection이 가능하고, 가벼워야 한다. 이 조건을 모두 만족하는 모델, MoveNet을 사용하기로 결정. Google Research에서 TensorFlow.js로 개발한 경량화된 자세 추정 모델이다. 기본 설명을 하자면, MoveNet은 17개의 관절, 또는 신체 특이점(눈, 코 등)을 감지해 17개의 KeyPoint를 제공한다. 정확도에..

딥러닝 2024.08.23

OpenPose로 사용자 동작 인식하기는 실패다. Mediapipe를 이용해보자.

호기롭게 Openpose를 다운받고 될 줄 알았지만 난관에 봉착했다. 알고 보니 저번에 실행한 Openpose는 모델만 로드하면 OpenCV에서 가볍게 돌아가는 모델이었고, 더 정확한 모델을 다운받으려면 터미널에서 경로인식 등을 통해 찾아주어야 하는데 Veclib를 자꾸 인식하지 못해 애를 먹었다.  구글링과 챗지피티도 해결하지 못한 채, 포기했다. 가끔은 포기도 좋은 방법이고, 포기할 용기를 내야 한다. 합리화 100%. 여기서 드는 의문점은, 굳이 Openpose를 이용해야 하는가? 라는 의문점이었고 일단 러프하게 관절의 위치와 관절 사이 각도 값을 추출하는 것이 목표였기 때문에 좀 더 가볍게 돌아가는 MediaPipe 라이브러리를 사용하기로 했다. 이건 pip install을 통해 간단히 설치가 가..

딥러닝 2024.08.11

OpenPose로 사용자 동작 인식하기

사용자의 동작을 인식해 카페, 도서관 등 공공장소에서 자동으로 온도를 조절하는 아이디어를 주제로 공모전을 준비 중이다. 팔을 비비는 동작, 아니면 더워서 옷을 펄럭거리는 듯한 동작을 자동으로 인식해 비율을 계산해 자동으로 온도 조절을 하자는 게 메인 아이디어.  구현해야 할 사항은 다음과 같다. 1. 카메라로 특정 동작 인식 2. 전체 사람들 중 특정 모션 취하는 사람의 비율 계산 3. 임계치 넘어가면 온도 조절하는 알고리즘 설정 이 포스팅에서는 1번 주제를 중점적으로 다루며, 구현 핵심이 될 OpenPose에 대해 간단히 설명한다.   - OpenPose란?* 인간 자세 예측의 한 분야로 카메라 한 대로 사람의 몸, 얼굴, 손가락마디 등을 정확하게 예측하는 프로그램.* 2017년 카네기멜론대학교에서 발..

딥러닝 2024.08.07