(프로젝트)EMG 데이터를 이용한 아바타

(프로젝트)EMG 데이터를 이용한 아바타

이 프로젝트는 한양대학교 Conelab에서 학부생 프로그래머로써 개발한 프로젝트입니다.
EMG 데이터와 optitrack 데이터를 이용하여 기계학습을 시킨 후, EMG 신호만으로 사용자의 표정을 실시간으로 따라하는 아바타를 만들었습니다.
개발 기간은 2018년 12월 ~ 2020년 2월 입니다.
Maya를 개발환경으로 python을 이용하여 만들었습니다.

Marker_based_Facial_Mocap

간략한 소개


Optitrack으로 얻은 얼굴 움직임 데이터 (csv파일)을 이용하여 Maya 2018에서의 아바타에 적용.
실시간으로도 구동 가능.

페이스 트래킹 마커

파일 설명

include 폴더

  1. FaceRig.ma
    • 입력되는 데이터를 실제 표정으로 보여줄 아바타
    • Maya 2018ver 기준으로 Face Rig 됨.
    • 최 상단의 사진이 이 아바타의 모습.
  2. csv_file.csv
    • 실제 아바타 적용을 위한 가공된 csv파일
    • 21개 마커 각각의 라벨 제거
    • 프레임 넘버 제거
  3. Calibration Ground Plane_01.csv
    • Optitrak에서 얻은 raw한 csv파일
    • 21개의 마커를 이용
    • 하나의 마커는 각각 x,y,z 좌표값을 포함한다.
  4. marker_tag.txt
    • 21개 마커의 순서를 적어놓은 파일

src 폴더

  1. expTracker_python_Client.py
    • 실시간 마커 트래킹 시 사용
    • Socket 통신을 위한 Client side 프로세스
    • 샘플 데이터
  2. expTracker_python_Clinet_Read_Csv.py
    • csv파일을 이용하여 마커 트래킹 시 사용
    • Socket 통신을 위한 Client side 프로세스
    • csv_file.csv파일을 로드하여 사용
  3. expTracker_python_server.py
    • 실시간 및 csv파일 이용한 마커 트래킹 시 사용
    • Socket 통신을 위한 Server side 프로세스
    • 포트넘버 7777사용, 이 포트를 다른 프로세스가 사용 시 포트 넘버 바꿀 것
  4. Perseus_Marker.py
    • 실시간 및 csv파일 이용한 마커 트래킹 시 사용
    • Maya 프로그램 내에서 포트를 열어 데이터를 수신
    • 수신 된 데이터를 이용하여 아바타의 마커를 움직임
    • 포트넘버 7777사용, 이 포트를 다른 프로세스가 사용 시 포트 넘버 바꿀 것
  5. setting.py
    • Optitrak의 영점이 맞는지 확인하기 위한 코드
    • Maya 프로그램 내에서 포트를 열어 데이터를 수신
    • 수신 된 데이터를 이용하여 아바타의 마커를 움직임
    • 포트넘버 7777사용, 이 포트를 다른 프로세스가 사용 시 포트 넘버 바꿀 것

프로그램 구동 순서

  1. Maya 2018을 실행하여 open scene에서 include 폴더의 FaceRig.ma를 실행
  2. Maya의 script Editor에서 src폴더의 Perseus_Parker.py를 실행
  3. Start Real Time Expression 버튼 클릭 (포트 열고 데이터 받을 준비)
  4. src폴더의 expTracker_python_server.py를 실행 (idle이 pycharm보다 빠름)
  5. src폴더의 expTracker_python_Client_Read_Csv.py(csv파일로 트레킹) 또는 expTracker_python_Client.py(실시간) 실행
  6. 아바타의 표정을 감상

주의사항

  1. Optitrak과 Maya의 좌표계가 다르다

(프로젝트)EMG 데이터를 이용한 아바타

https://hamin7.github.io/2020/03/23/Marker-based-Avatar/

Author

Hamin

Posted on

2020-03-23

Updated on

2025-06-10

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.