티스토리 뷰
Overview
ROMP는 입력 비디오에 대해 SMPL 포맷에 따라 24개 관절부(joint)로 구분되어 모션 데이터를 추출한다. 기본 추출 데이터에는 상당한 수준의 노이즈가 포함되어 있으며, 이에 대한 후처리가 필수적이다.
ROMP의 경우 One Euro Filter 필터를 제공하고 있지만, 각 joint 별 모션 데이터의 개별 특성을 고려하지 않고 일괄 적용하는 방식으로 개선의 여지가 있다. 개선 방향을 수립하기 위하여, 우선적으로 as is 상태에서의 모션 추출 결과물을 시각적인 수준에서 확인, 문제를 분석해 본다.
Objectives
* 모션을 추출하고자 하는 원본 인체동작 비디오의 특성을 확인한다.
* ROMP 모델에서 추출한 모션 추출 결과(후처리X)를 블렌더 렌더링하여 모션 품질 관련 특성을 확인한다.
* ROMP 모델에서 추출한 모션 추출 결과(후처리O)를 블렌더 렌더링하여 모션 품질 관련 특성을 확인한다.
Takeaways
다음과 같이 수치적, 계량적 분석을 후속 진행한다.
* 후처리 되지 않은 ROMP 모션 데이터를 joint 별로 분리한다.
* joint 별 x, y, z축 좌표값을 분리하여 시각화한다.
* 시각화 결과를 통하여 joint 별 모션 데이터의 특성을 파악한다.
* 노이즈 필터 접근방향을 구체적으로 도출한다.
이하 분석내용 상세.
Original input
- source : mixamo.com
- Animation rendered in Blender
테스트 샘플로 활용한 인체 동작 비디오는 앉아서 박수를 치는 인체 동작으로, 다음과 같은 특징을 가지고 있다.
- 하반신은 움직임이 거의 발생하지 않는다.
- 가장 큰 움직임이 발생하는 부분은 양 팔 부분이다.
- 머리, 팔을 제외한 몸통 부분은 상반신 중 가장 움직임이 적게 발생한다.
ROMP raw output (motion extraction + SMPL texture)
https://github.com/Arthur151/ROMP
- Non smoothing (non post-processing)
- Animation rendered in Blender
상기 입력 비디오를 ROMP 모델을 사용하여 모션을 추출(npz 파일)한 뒤, 블렌더 애드온 QuickMocap으로 블렌더 스페이스에 SMPL 텍스쳐를 포함한 오브젝트로 재구성하여 로드한다. 샘플 아웃풋은 다음과 같은 특징을 가지고 있다.
- 전신 모션 전반적으로 노이즈 발생 -> 급격한 움직임 변화로 뚝뚝 끊겨 보이는 현상
- 원본에서는 움직임이 거의 없는 하체 부분도 노이즈로 인해 움직임 발생
- 얼굴 부분 고갯짓 모션은 대부분 손실된 상태
ROMP + One Euro Filter output
ROMP 공식 github에서 제공하는 temporal optimization을 적용, One Euro Filter로 노이즈 필터링을 거친 결과물. 모션 데이터에 대해 joint별 구분 없이 일괄 적용한 뒤, 마찬가지 방식으로 블렌더 스페이스에 로드한다.
원유로필터의 경우 다음 포스팅에서 상세 내용을 확인할 수 있다.
[디폴트 파라미터 적용 결과]
One Euro Filter는 기본적으로 "큰 움직임(=프레임당 좌표 변화량 큼)"일 수록 스무딩을 강하게 적용하고, "작은 움직임(=프레임당 좌표 변화량 적음)"일 수록 모션 딜레이를 감소시키도록 작동한다. 본 샘플의 경우 팔을 제외한 전신 움직임이 "작은 움직임"에 해당하며, 이에 따라 원유로 필터를 적용했을 때 스무딩 효과가 다소 적게 나타난 것으로 보인다.
- 필터를 적용하지 않은 raw output 대비, 모션 개선이 거의 이루어지지 않았다.
[스무딩 강화 파라미터 적용 결과]
- 디폴트 파라미터 대비 팔동작 등 세부 움직임은 부드러워졌다.
- 스무딩 강도를 높임에 따라, 모션에 딜레이가 발생하며 육안으로 보았을 때 동작이 느려 보인다.
- 강한 정규화로 인해서 원본의 손이 맞닿는 모션에 손실이 발생, 양손이 맞닿지 않게 되었다.
- 그러나 전신에 발생하는 노이즈가 여전히 존재하여 뚝뚝 끊겨 보이는 현상이 동일하게 발생한다.
'AI Motion Capture > Works' 카테고리의 다른 글
Experiment220430_PCA, K-Means, Linear Interpolation(2) (0) | 2022.04.30 |
---|---|
Experiment220428_PCA, K-Means, Linear Interpolation (0) | 2022.04.28 |
- Total
- Today
- Yesterday
- 메타버스
- 컴퓨터그래픽스
- 컴퓨터그래픽스 좌표계와 변환
- vertex shader
- 3d affine transform
- 고려대학교 한정현
- tensorflow.js
- 컴퓨터그래픽스 강의
- 원유로필터
- PoseNet
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |