vrlab.suwon.ac.kr/mwlee 6장 모션 캡쳐 (Motion Capture) vrlab.suwon.ac.kr/mwlee
모션 캡쳐 (Motion Capture) 모션 캡쳐 실제 객체의 움직임을 합성적 객체에 기록하고 사상하는 것 객체의 움직임을 감지하고, 디지털화하고, 기록하는 것을 포함한다. 2017-2학기 컴퓨터 애니메이션
6.1 모션 캡쳐 기술(Motion Capture Technologies) 실제 객체의 움직임을 합성적 객체에 기록하고 사상하는 것 객체의 움직임을 감지하고, 디지털화하고, 기록하는 것을 포함한다. 모션 캡처 장치 전자기 센서(electromagnetic sensors)를 이용한 방법 관절에 센서를 두어 그 위치와 방향 값을 중앙 프로세서에 보내어 움직임을 기록 이론적으로 정확하지만 자기장의 왜곡이 전혀 없는 환경을 요구 3차원의 각 센서 위치와 방향이 실시간에 기록되고 디스플레이 되는 것이 장점 광학 마커(optical markers)들을 이용한 방법 연기자의 옷 위에 반사하는 마커만 부착하는 방식 실시간 피드백을 제공하지 않고 광학 시스템으로 얻은 데이터는 오류가 나기 쉬우며 노이즈가 발생 움직이는 객체의 이미지를 기록하기 위하여 비디오 기술을 사용 방향 정보가 직접 만들어지지 않기 때문에 전자기 추적 방법보다 더 많은 수의 마커가 필요 2017-2학기 컴퓨터 애니메이션
a b c d e 그림 6.1 광학 모션 캡쳐 진행 장면 a,b : 광학 마커 배치 c : 마커의 3차원 복구 2017-2학기 컴퓨터 애니메이션
6.2 영상 처리(Processing the Images) 동작 제어의 목적은 실제 객체의 3차원 동작을 재구성하여 합성 모델에 적용하는 것 광학 시스템의 3가지 주요 작업 애니메이터가 2차원 비디오 이미지에서 마커의 위치, 종류와 상관관계를 알 수 있도록 이미지를 처리 기본 영상 처리 기법, 단순한 논리학, 그리고 경우에 따라서 운이 필요 마커의 2차원 위치에서 3차원 위치를 재구성 카메라 칼리브레이션, 수치적인 부정확성을 극복하기 위한 충분한 주의가 필요 3차원 마커의 위치는 모션을 캡쳐한 실체 객체의 모델에 속박 시켜야 함 마커의 상대적 위치 사이의 충분한 조절을 할 필요가 있음 2017-2학기 컴퓨터 애니메이션
탁구공 모양으로 만들어 비디오 영상에서 튀어 보일수 있도록 코팅을 입힘 광학 마커 기술 탁구공 모양으로 만들어 비디오 영상에서 튀어 보일수 있도록 코팅을 입힘 애니메이션 시킬 때는 관절이 중요하기 때문에 마커는 관절에 부착 마커의 위치와 관절의 위치 차이는 모션 캡쳐 시스템에서 오차의 원인이 됨 모델이 움직일 때 마커가 관절에 대해 상대적으로 움직이면 더 복잡 비디오가 디지털화 되면 광학 마커가 증거를 위해 각 비디오 영상을 스캔 시스템의 주요한 일은 한 비디오 프레임에서 특정 마커의 존재를 분리하고 어떤 마커가 보이지 않을 지라도 여러 비디오 프레임에서 그 마커를 추적 보이는 마커들이 비디오에서 추출되었으면 각 개별 마커는 비디오 시퀀스에서 추적되어야 한다. 2017-2학기 컴퓨터 애니메이션
광학적 모션 캡처 시스템의 경우, 한 개 이상의 마커가 주기적으로 가려지게 되는 것이 문제 발견적 교수법에 의해 몇 프레임 동안 보이지 않고, 그 동안 속도 변화가 거의 없는 마커들을 추적 가능 실패하는 경우로 중간 시퀀스에서 경로를 바꾸는 것과 단지 다시 보일 뿐인 마커들을 새 마커로 소개하는 일이 생긴다. 활동적인 마커를 사용하는 광학 시스템 마커들은 자기 고유의 코드를 방출하는 LED 마커들이 서로 바뀔 일은 없으나, LED들은 밝지 않아서 화창한 날에는 사용 불가능한 한계를 가진다. 각 마커는 고유의 ID를 방출하기 위해서 번쩍일 시간이 필요하기에 시스템 동작은 상대적으로 느린 속도로 캡쳐 2017-2학기 컴퓨터 애니메이션
마커들이 초기 위치에서부터 옮겨질 수도 있는데 연기자가 빨리 움직일수록 더 많은 마커들이 흔들리고 자리가 바뀌고 모션 캡처 시스템의 문제: 노이즈 물리적 시스템에서 노이즈가 일어난다. 마커들이 초기 위치에서부터 옮겨질 수도 있는데 연기자가 빨리 움직일수록 더 많은 마커들이 흔들리고 자리가 바뀌고 샘플링 과정에도 노이즈가 발생 마커를 시간과 공간에 대하여 샘플링하고 이 때 오차가 모든 차원에서 생긴다. 전형적인 오차는 피쳐점이 0.5센티미터 정도 정확하지 않게 되는 경우 해결 방법 재구성 과정에서 사용하기 전에 사용자가 데이터를 재조정할 수 있음 전형적인 값과 지나치게 불일치하는 데이터는 버리고 나머지는 필터링을 한다. 유용한 특징점을 버리지 않고 데이터를 매끄럽게 한다. 또는 인접 값들의 가중치 평균을 사용하여 매끄럽게 함 2017-2학기 컴퓨터 애니메이션
6.3 카메라 칼리브레이션(Camera Calibration) 마커의 3차원 위치를 재생하기 전에 카메라 고유 성질인 초점 거리, 이미지 중심, 에스펙트 비율, 세계 공간에서 카메라 위치와 방위를 알아야 한다. 핀 구멍 모델 3차원 공간의 한 점이 상을 맺는 것을 묘사할 때 쓰는 기본 투상 기하를 정의 예로 카메라 좌표계를 투상 중심의 반대편에 음의 z-축을 따라 초점거리 만큼 떨어진 곳에 투상 평면이 있다고 정의(그림 6.2) 관심점에서 투상 중심의 반대편에 음의 z-축을 따라 초점 거리만큼 떨어진 곳에 투상 평면이 있다는 것도 동치 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
한 점의 상은 그 점에서 투상 중심에 광선을 투상해서 생김(그림 6.3) 그 점의 상은 그 광선이 이미지(투상) 평면과 만나는 곳에 생김 카메라의 칼리브레이션은 세계 공간에서의 위치가 알려진 몇 개의 이미지 공간의 점들을 기록하여 실행 그림 6.3 세계 공간의 한 점을 카메라 좌표계의 이미지 평면에 Y-Z 투상시키기 2017-2학기 컴퓨터 애니메이션
6.4 3차원 위치 재생 (Three-Dimensional Position Reconstructions) 어떤 마커의 3차원 좌표를 재생하기 위해, 사용자는 알려진 카메라 위치에 대하여 적어도 두 개의 장면에서 마커의 위치를 알아야 함 카메라에 대한 이미지 평면의 위치와 아울러 전역 좌표계에 대한 각 카메라의 위치와 방위를 알면, 3차원 공간에서 재생될 점 P의 위치를 구하는데 그 점의 상(I1, I2)를 이용 (그림 6.4) 카메라 위치, 이미지 평면의 상대적 위치와 그 위치에서 픽셀 위치를 이용하여 사용자는 그 픽셀의 세계 좌표계에서 위치를 계산 가능 수식 6.1, 수식 6.2 이 수식들을 서로 같다고 두면, (수식 6.1) (수식 6.2) 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
(수식 6.3) (수식 6.4) 3차원 공간에서 이렇게 하면 이상적인 세계에서는 두 개의 미지수를 가진 세 개의 수식이 됨 시스템의 노이즈가 지나치지만 않으면 근접하게 됨 가장 가까이에서 만나는 점들은 각 선 상에 있어야 함 P1은 카메라1에서 나오는 선상에, P2는 카메라2에서 나오는 선상에 있고, P2-P1은 이 각 선과 수직인 조건을 P1과 P2가 만족해야 함 여러 개의 마커가 있어서 모든 영상의 모든 마커들의 구분과 위치가 정확하지 않은 경우에 P1과 P2의 거리를 I1과 I2사이의 상호관계를 테스트하는데 사용 (수식 6.3) (수식 6.4) 2017-2학기 컴퓨터 애니메이션
6.4.1 마커의 개수 (Multiple Markers) 사람의 몸에 붙이는 마커의 개수는 캡쳐된 동작을 어디에 사용하는가에 달려있다. 인체의 전 동작을 단순하게 디지털화 하기 위한 마커의 개수는 14개 정도 필요 (팔다리당 3개, 머리 위치를 위해 2개 필요) 인체의 움직임을 좀 더 정교하게 기록하기 위해서는 팔꿈치, 무릎, 가슴, 양 손, 발끝, 발목, 척추에 마커를 추가(그림6.5) 2017-2학기 컴퓨터 애니메이션
2017-2학기 컴퓨터 애니메이션
ISO/IEC 19774 Humanoid Animation (H-Anim) LOA 1 2017-2학기 컴퓨터 애니메이션
ISO/IEC 19774 Humanoid Animation (H-Anim) LOA 2 2017-2학기 컴퓨터 애니메이션
ISO/IEC 19774 Humanoid Animation (H-Anim) LOA 3 2017-2학기 컴퓨터 애니메이션
Joints composition for each LOA (No. of joints) Head 1 8 Waist 2 Backbone 24 Arm 6 Leg 4 Hands 40 46 Feet 52 Total 18 71 94 144 2017-2학기 컴퓨터 애니메이션
6.4.2 다중 카메라(Multiple Markers) 마커의 개수가 늘어나고 동작이 복잡해질수록 마커들이 겹칠 가능성 발생 마커들의 3차원 위치를 재생하기 위해서는 사용자는 적어도 2개의 이미지를 보고 결정 전형적으로 8개의 카메라를 동시 촬영 영상들을 자동 혹은 수동으로 동기화시킨다. 2017-2학기 컴퓨터 애니메이션
6.5 뼈대에 맞추기(Fitting to the Skeleton) 뼈대 맞추기 각 마커들을 통해 모션이 만들어지면, 이것들을 디지털 동작으로 제어할 기본 뼈대 구조에 붙임 각 프레임에서 각 마커의 위치에 뼈대의 관절에 절대적인 자리를 정해 주는 것 문제점 위치를 표시하기 위해 마커들을 직접 사용하면, 노이즈와 매끄럽게 하기 또는 일반적인 부정확성 때문에 시간이 지나면서 뼈대의 관절 사이의 거리가 정확히 유지되기 어려움 발을 바닥에 고정하기 위해 사용하는 역운동학으로 이 현상을 방지 마커들이 관절에 정확히 자리 잡은 것이 아니라 관절 바깥의 표면에 자리 잡는 경우 디지털화된 점이 관절을 대신하는 문제 마커를 관절의 양쪽에 두는 것으로 두 개의 마커 위치로 두 마커 사이 현의 중점으로 관절을 보간 2017-2학기 컴퓨터 애니메이션
마커로부터 얼마나 떨어졌나의 계산은 기하학을 약간 사용 세 개의 마커로 만들어진 평면을 사용하여 세 개의 연속된 관절로 되는 평면의 법선으로 관절 위치 결정 팔목에 두 개의 마커가 있다면 실제 팔목의 위치는 이 두 개의 보간으로 정함 팔목-팔꿈치-어깨의 마커를 이용하여 이 마커들로 만들어지는 평면의 법선을 계산. 실제 팔꿈치 위치는 동작하는 사람에게서 측정된 만큼 팔꿈치 마커에서 법선 방향으로 이동하여 계산 2017-2학기 컴퓨터 애니메이션
6.6 모션 캡쳐 시스템으로부터 출력 (Output from Motion Capture System) 모션 캡쳐 데이터를 위한 표준 파일 포멧 일반적으로 Acclaim의 포멧(.asf / .asm)과 Bio-vision(모션 캡쳐 스튜디오 그룹)의 포멧(.bvh)가 있다 포멧마다 특성이 다르지만, 모두 동일 기본 정보를 가짐 정적 정보는 관절 계층을 기술함 시간 변화 정보는 각 관절에 대해 각 DOF에 대한 값을 포함 관절 계층 정보 1) 각 DOF의 수와 유형,DOF 매개 변수가 주어진 순서, 관절 한계를 포함하는 관절을 정의 2) 이전 관절에 상대적인 관절의 위치를 포함하는 계층적 연결성을 정의 정적 관절 계층 정보는 다음과 같다 2017-2학기 컴퓨터 애니메이션
6.6 모션 캡쳐 시스템으로부터 출력 (Output from Motion Capture System) root joint Chest offset 0 5.21 0 3 DOFs:Zrotation, Yrotation, Xrotation Limits: (-180, 180) (-90, 90) (0,270) joint Neck offset 0 5.45 0 … joint LeftUpperLeg offset 3.91 0.0 0.0 offset 0.0 8.1 0.0 1 DOFs:Xrotation 2017-2학기 컴퓨터 애니메이션
6.6 모션 캡쳐 시스템으로부터 출력 (Output from Motion Capture System) 위의 예에서 관절명 - 사용자 정의를 위한 것 인덴테이션(indentation) - 자식-부모 관계를 나타냄 변위(offset) - 부모에 상대적으로 현재 관절의 위치 DOF선은 데이터에서 관절과 나타난 순서에 대한 DOF의 번호를 나타냄 시간 변화 데이터는 프레임 수에 따른 재구성된 관절각을 저장하며 다음과 같다 전체 프레임: 300 -2.4 40.2 3.2 2.8 22.0 -23.0 … -12.4 40.2 3.2 2.8 -2.8 42.1 3.4 2.8 22.1 -23.2 … -12.4 42.3 3.3 3.8 0.2 48.2 3.5 3.9 30.2 -25.2 … -14.4 45.8 3.1 3.0 2.4 50.4 3.3 5.0 35.2 -23.3 … -20.2 44.9 3.3 2.8 1.4 51.6 3.2 8.8 35.3 -20.2 … 22.4 45.2 3.7 2.8 … 2017-2학기 컴퓨터 애니메이션
6.7 모션 캡쳐 데이터 조작 (Manipulating Motion Capture) 모션 캡쳐 처리에 의해 생성된 데이터는 캡쳐된 주제와 차원들이 매치되는 종합적인 형상을 애니메이션 하기 위해 직접적으로 유용 애니메이터의 요구사항을 만족하지 않는 캡쳐 모션이 만들어질 경우 애니메이터의 요구를 만족하도록 조작되어야하며 데이터 조작할 다양한 방법이 존재한다 기법은 모션을 편집하고, 새로운 특성에 모션을 사상하고, 모션을 새로운 모션과 더 긴 모션 열에 결합하기 위한 알고리즘에 따라 구성되도록 가능한 모션라이브러리의 전망을 갖음 2017-2학기 컴퓨터 애니메이션
6.7.1 신호 처리 (Processing the Signals) 캡쳐된 모션의 개개 매개 변수 값은 시간 변화 신호처럼 고려되고 취급될 수 있음 신호는 주파수로 분해되고 다른 신호로 보간됨 모션 신호 처리는 주파수 구성 요소가 모션의 다양한 특성을 어떻게 캡쳐하는 가를 고려 신호의 고주파수 - 특정 개체(예, 느릿 느릿 걷는 것)의 특이한 움직임을 표현 신호의 저주파수 - 기본 동작(예, 걷는 것)을 표현 주파수 영역은 사용자가 신호의 특별한 특성을 변경하도록 하기 위해 추출되고, 조작되고, 재조합 될 수 있음 신호는 필터 커널 (예, 1/16, 1/4, 3/8, 1/4, 1/16)의 확장된 버전으로 연속적으로 컨벌루션(convolution)한다 2017-2학기 컴퓨터 애니메이션
6.7.2 모션 목표 재설정 (Retargeting the Motion) 모션 왜곡 사용자가 제공한 키 프레임처럼 제한 상황을 만족하기 위해서 신호를 왜곡되게 함 신호가 θ(t)이고 키 프레임이 (θi, ti)쌍 집합으로 주어짐 시간 왜곡 제한사항 집합 (tj, t’j)이 있음 왜곡 절차 시간 왜곡 제한사항을 통해 보간 시간 왜곡 사상 (t=g(t’)을 생성 모션 곡선 왜곡(θ(t) = f(θ, t)을 생성 이 함수는 사용자에 의해 제공될 수 있는 축적이나 이동이든지 키 프레임 제한사항(θ’(t) = a(t) θ(t) + b(t))을 만족하도록 원래 곡선을 축적하거나 이동하여 생성 키 프레임에 대한 함수 a(t)와 b(t)가 한번 설정되면, 함수 a(t)와 b(t)는 중요한 시간 동안 보간 될 수 있음 2017-2학기 컴퓨터 애니메이션
6.7.2 모션 목표 재설정 (Retargeting the Motion) 모션을 잘못 맞춰진 종합적 특성에 사상하고 중요한 제한사항을 만족하도록 수정하는 것 중요한 제한사항 마루에 발이 빠지는 것을 피함 마루에 발이 미끄러지지 않도록 하는 것 새로운 모션은 제한사항을 가하지만, 가능한 원래 모션과 가깝도록 구성 새로운 모션을 찾는 것은 비선형 제한된 최적 문제인 공간-시간으로 공식화 2017-2학기 컴퓨터 애니메이션
6.7.3 모션 결합 (Combining Motion) 모션 세그먼트들을 긴 동작으로 결합하는 성능은 모션 캡쳐를 애니메이터에 대해 더 유용한 도구 멈추어 있는 것처럼 중립 위치에서 각 세그먼트를 시작하고 정지하는 것 모션 세그먼트들 사이 중립 위치로 오도록 형상의 속성으로 쉽게 결합 세그먼트들 사이 더 자연스러운 변이는 한 세그먼트 끝을 다음 세그먼트의 시작에 혼합 혼합될 부분이 유사하지 않으면 어색함 유사성은 혼합의 시간 간격에서 모든 DOF상에서 차이점의 합으로 정의 2017-2학기 컴퓨터 애니메이션
CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation BVH 모션 캡처 파일 예 (1) HIERARCHY ROOT Hips { OFFSET 0.000000 0.000000 0.000000 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT Chest OFFSET 0.000000 5.613096 0.000000 CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftCollar OFFSET 0.003804 10.354579 1.025227 JOINT LeftShoulder 2017-2학기 컴퓨터 애니메이션
CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftElbow { BVH 모션 캡처 파일 예 (2) OFFSET 3.922637 0.000000 0.000000 CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftElbow { OFFSET 0.000000 -10.663884 0.000000 JOINT LeftWrist OFFSET 0.000000 -7.995827 0.000000 End Site OFFSET 0.000000 -7.382651 0.000000 } 2017-2학기 컴퓨터 애니메이션
CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightShoulder BVH 모션 캡처 파일 예 (3) JOINT RightCollar { OFFSET 0.003804 10.354579 1.025227 CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightShoulder OFFSET -4.149683 0.000000 0.000000 JOINT RightElbow OFFSET 0.000000 -10.516112 0.000000 JOINT RightWrist OFFSET 0.000000 -8.272484 0.000000 2017-2학기 컴퓨터 애니메이션
CHANNELS 3 Zrotation Xrotation Yrotation JOINT Head BVH 모션 캡처 파일 예 (4) End Site { OFFSET 0.000000 -6.939579 0.000000 } JOINT Neck OFFSET 0.000000 11.655956 0.000000 CHANNELS 3 Zrotation Xrotation Yrotation JOINT Head OFFSET 0.000000 3.471510 0.000000 2017-2학기 컴퓨터 애니메이션
CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftKnee BVH 모션 캡처 파일 예 (5) End Site { OFFSET 0.000000 5.311829 0.000000 } JOINT LeftHip OFFSET 3.435216 -1.201154 0.013477 CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftKnee OFFSET 0.000000 -13.564719 0.000000 JOINT LeftAnkle 2017-2학기 컴퓨터 애니메이션
CHANNELS 3 Zrotation Xrotation Yrotation End Site { BVH 모션 캡처 파일 예 (6) OFFSET 0.000000 -13.832756 0.000000 CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET 0.000000 -4.904603 0.000000 } JOINT RightHip OFFSET -3.422528 -1.185403 -0.025435 JOINT RightKnee OFFSET 0.000000 -13.657562 0.000000 2017-2학기 컴퓨터 애니메이션
CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightAnkle { BVH 모션 캡처 파일 예 (7) CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightAnkle { OFFSET 0.000000 -13.480612 0.000000 End Site OFFSET 0.000000 -4.784008 0.000000 } MOTION Frames: 482 Frame Time: 0.016667 2017-2학기 컴퓨터 애니메이션
BVH 모션 캡처 파일 예 (7) 1.662 31.427 60.304 -1.249 -4.859 -3.582 4.463 1.354 0.075 -13.732 3.052 3.999 95.677 1.705 -1.512 5.541 -3.491 0.339 1.259 -3.022 1.790 6.765 2.405 -4.446 -91.027 -7.187 4.910 -3.633 0.867 0.043 -2.879 0.120 -5.688 -1.132 -1.858 0.809 -2.969 -8.472 1.461 -1.304 3.919 -2.045 1.054 9.006 -0.191 2.695 -1.341 -0.615 0.361 4.452 4.756 0.484 8.095 0.193 -6.340 -0.815 1.224 1.659 31.427 60.307 -1.268 -4.835 -3.588 4.487 1.352 0.080 -13.802 3.059 3.999 95.651 1.737 -1.609 5.541 -3.521 0.340 1.298 -3.030 1.974 6.795 2.410 -4.418 -90.999 -7.145 4.917 -3.633 0.825 0.043 -2.862 0.151 -5.736 -1.141 -1.863 0.806 -2.988 -8.482 1.455 -1.283 3.890 -2.157 1.055 9.042 -0.193 2.781 -1.350 -0.638 0.381 4.430 4.692 0.484 8.102 0.194 -6.266 -0.819 1.206 1.657 31.428 60.310 -1.287 -4.811 -3.594 4.512 1.349 0.085 -13.872 3.066 3.999 95.624 1.769 -1.707 5.542 -3.550 0.341 1.337 -3.038 2.159 6.824 2.417 -4.389 -90.970 -7.101 4.924 -3.633 0.783 0.043 -2.845 0.182 -5.783 -1.150 -1.869 0.804 -3.006 -8.492 1.449 -1.262 3.860 -2.270 1.055 9.077 -0.196 2.867 -1.358 -0.661 0.401 4.408 4.628 0.484 8.108 0.194 -6.189 -0.824 1.187 … 2017-2학기 컴퓨터 애니메이션