(프로젝트)EMG 데이터를 이용한 아바타
이 프로젝트는 한양대학교 Conelab에서 학부생 프로그래머로써 개발한 프로젝트입니다.
EMG 데이터와 optitrack 데이터를 이용하여 기계학습을 시킨 후, EMG 신호만으로 사용자의 표정을 실시간으로 따라하는 아바타를 만들었습니다.
개발 기간은 2018년 12월 ~ 2020년 2월 입니다.
Maya를 개발환경으로 python을 이용하여 만들었습니다.
Marker_based_Facial_Mocap
간략한 소개
Optitrack으로 얻은 얼굴 움직임 데이터 (csv파일)을 이용하여 Maya 2018에서의 아바타에 적용.
실시간으로도 구동 가능.
페이스 트래킹 마커
파일 설명
include 폴더
- FaceRig.ma
- 입력되는 데이터를 실제 표정으로 보여줄 아바타
- Maya 2018ver 기준으로 Face Rig 됨.
- 최 상단의 사진이 이 아바타의 모습.
- csv_file.csv
- 실제 아바타 적용을 위한 가공된 csv파일
- 21개 마커 각각의 라벨 제거
- 프레임 넘버 제거
- Calibration Ground Plane_01.csv
- Optitrak에서 얻은 raw한 csv파일
- 21개의 마커를 이용
- 하나의 마커는 각각 x,y,z 좌표값을 포함한다.
- marker_tag.txt
- 21개 마커의 순서를 적어놓은 파일
src 폴더
- expTracker_python_Client.py
- 실시간 마커 트래킹 시 사용
- Socket 통신을 위한 Client side 프로세스
- 샘플 데이터
- expTracker_python_Clinet_Read_Csv.py
- csv파일을 이용하여 마커 트래킹 시 사용
- Socket 통신을 위한 Client side 프로세스
- csv_file.csv파일을 로드하여 사용
- expTracker_python_server.py
- 실시간 및 csv파일 이용한 마커 트래킹 시 사용
- Socket 통신을 위한 Server side 프로세스
- 포트넘버 7777사용, 이 포트를 다른 프로세스가 사용 시 포트 넘버 바꿀 것
- Perseus_Marker.py
- 실시간 및 csv파일 이용한 마커 트래킹 시 사용
- Maya 프로그램 내에서 포트를 열어 데이터를 수신
- 수신 된 데이터를 이용하여 아바타의 마커를 움직임
- 포트넘버 7777사용, 이 포트를 다른 프로세스가 사용 시 포트 넘버 바꿀 것
- setting.py
- Optitrak의 영점이 맞는지 확인하기 위한 코드
- Maya 프로그램 내에서 포트를 열어 데이터를 수신
- 수신 된 데이터를 이용하여 아바타의 마커를 움직임
- 포트넘버 7777사용, 이 포트를 다른 프로세스가 사용 시 포트 넘버 바꿀 것
프로그램 구동 순서
- Maya 2018을 실행하여 open scene에서 include 폴더의 FaceRig.ma를 실행
- Maya의 script Editor에서 src폴더의 Perseus_Parker.py를 실행
- Start Real Time Expression 버튼 클릭 (포트 열고 데이터 받을 준비)
- src폴더의 expTracker_python_server.py를 실행 (idle이 pycharm보다 빠름)
- src폴더의 expTracker_python_Client_Read_Csv.py(csv파일로 트레킹) 또는 expTracker_python_Client.py(실시간) 실행
- 아바타의 표정을 감상
주의사항
- Optitrak과 Maya의 좌표계가 다르다
(프로젝트)EMG 데이터를 이용한 아바타
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.