모션 캡쳐는 기본적으로 인체의 스켈레톤 움직임을 측정하는 것이다.
심플한 대 목표는 측정이고, 이 측정 방식에는 여러가지가 있다.
Active Marker는 사실 잘 모르겠다. 애초에 워낙 고가의 방식이기도 해서 자료가 별로 없다. 나는 모션캡쳐를 하면서 이쪽으론 쳐다도 보지 않았으므로 이 포스팅 시리즈에서는 2, 3, 4만 다루겠다.
근데, 쓰다보니 분량 조절에 실패해서.. 이번 포스팅에서는 2번만 다룰 것이다.
일단 간단하게 요약을 하면,
- 몸에 마커를 붙인다.
- 촬영한다.
- 컴퓨터상에서 인식하고 마커의 위치를 계산한다.
- 마커의 위치를 기반으로 Human Skeleton을 형성한다.
좀 더 구체적으로 알아보자.
'마커'라는 말 자체는 '표시'하는 것을 의미한다.
그러니까 이 패시브 마커 기반 방식은 몸 곳곳에 특정한 표시를 해두고 이를 촬영하여 컴퓨터로 인식해내는 방식으로 모션캡쳐를 하는 것이다.
흔히 '모션캡쳐'하면 떠오르는 이미지가 단색 쫄쫄이를 입고 스튜디오에서 촬영하는 것인데, 이 쫄쫄이가 바로 마커를 쉽게 인식하기 위한 수트이다.
그럼 몸에 어떻게 표시를 할까? 그러니까, 어떤 마커를 사용할까?
주로 적외선을 이용한다. 적외선 카메라라고 검색하면 주로 3종류의 카메라가 나오는데, 가시광선+깊이의 RGBD 카메라, 온도 측정 카메라, 야간 카메라(CCTV)이다. 이 모션캡쳐는 셋 중에 뽑자면 CCTV에 해당한다.
카메라에는 수광 센서 혹은 이미지 센서라는 부품이 있다. 카메라라는 것이 애초에 렌즈로 빛을 굴곡하여 상(image)을 형성하고, 그 빛이 모이는 상을 수광 센서로 인식하여 디지털 신호로 변환하는 놈이다.
이 때 사람이 보는 것과 동일하게 상을 표현하기 위해서 모든 일반 카메라의 수광 센서에는 'IR cut-off filter'가 붙어있다. 이름 그대로 적외선을 차단하는 필터이다.
IR cut-off filter | 가시광선 파장만 통과시킨다. |
적외선을 차단하고 가시광선만 수광 센서에 입력되면 우리 눈에 자극되는 신호를 최대한 동일하게 구현할 수 있는 것이다.
이 필터는 눈으로 보면 그냥 유리다.(보통 약간 붉은 색이며, 사파이어 글라스 등의 재질이다.)
그리고 이 IR cut-off filter를 떼고, 'IR pass filter'를 수광 센서에 붙이면 특정 길이 이상의 파장만 인식하는, 즉 적외선만 인식하는 카메라가 되는 것이다.
일반적으로 이 파장은 850nm 또는 940nm이다.
IR pass filter | 850nm 이상의 파장만 통과시킨다. |
이 필터는 눈으로 보면 아무 것도 보이지 않거나 거울처럼 보인다. 가시광선 투과율이 0%이기 때문이다.
IR pass filter를 붙인 카메라로 영상을 찍었을 때,
햇빛이 없는 실내에서 는 그저 어두컴컴하고 조명만 아주 희미하게 보인다.
햇빛이 있는 야외에서는 우리 눈으로 보기에 사물의 형상은 구분되지만 색은 구분할 수 없다.
이런 느낌 |
실제로 gray-scale의 데이터가 나오는 건 아니지만, gray-scale과 다를 바 없다.
1박 2일의 야외 취침 텐트 내부 카메라나, 야간 CCTV를 생각하면 편하다.
이 필터들이 무조건 수광 센서 딱 붙어있는 건 아니고, 전문 사진작가들이 일부러 pass filter로 찍는 경우도 많기에 교체를 위하여 원통형 긴 렌즈 부분에서 수광 센서에 가장 가까운 부분에 위치하기도 한다.
우리는 중학교 과학 시간에 정반사와 난반사만 배웠지만, 재귀 반사라는 것도 존재한다.
간단하게, 빛이 입사된 방향에 반대로 반사될 때 재귀 반사라고 표현한다.
빛을 재귀 반사하는 물체에 쏘았을 때 빛을 쏜 방향에서는 특히나 밝게 빛나 보인다.
일부 표지판, 자동차 번호판, 형광 조끼 등이 이런 재귀 반사 물질을 사용한 것이다.
재귀 반사를 하는데, 특히 적외선 파장의 빛을 더 잘 반사하는 마커다. 보통 구형이며, 어딘가에 부착하기 쉽게 플라스틱 플레이트와 함께 구성되어 있다.
이런 식으로 생겼다. |
이제 슬슬 견적이 보인다.
패시브 마커 기반의 모션 캡쳐는 몸에 적외선 재귀 반사 물질을 마커로 붙이고, IR pass filter를 붙인 카메라로 촬영을 하는 것이다. 이 때 적외선 카메라에는 꼭 적외선 빛을 내는 지향성 라이트가 있어야 한다.
그리고 필터와 라이트의 적외선 발광/수광 파장도 일치해야 한다. 그냥 850nm로 맞추면 편하다.
그렇게 세팅을 하면 아래 영상과 같이 촬영된다.
내 유튜브다..ㅎㅎ
그럴리가. 이렇게 쉬운 일이었으면 모션캡쳐 스튜디오 하루 대여비용이 300만원일 리가 없다.
패시브 마커 기반 모션캡쳐에서 제일 어려운 일은 장비 구성과 마커 인식이 아니다. 바로 Calibration이다.
캘리브레이션이 무엇인가. 모니터 캘리브레이션은 들어봤는데 카메라 캘리브레이션은 도대체 뭐하는 놈인가.
카메라 캘리브레이션은 "주어진 영상으로부터 핀홀(pinhole) 카메라 모델의 매개변수(parameter)를 찾는 과정"이다.
Geometric camera calibration이라고도 한다.
핀홀 카메라는 뭐고 매개변수는 뭐야? 이거 다 설명하려면 포스팅 10개는 써야 한다. 내 주변 사람들은 한 번씩 다 봤다는 국룰 블로그를 레퍼런스로 남겨두겠다.
아무튼 간단하게 얘기해서 내부 파라미터는 정규 평면과 이미지 평면의 관계를 서술하며, 외부 파라미터는 월드 좌표와 카메라 좌표의 관계를 서술한다.
일반적으로 카메라 캘리브레이션을 한다고 얘기하면 보통 내부 파라미터를 찾는 경우가 많다. 그래서 좀 관심 있으신 분들은 OpenCV같은 걸로 ChessBoard 만들어서 해봤을 듯 싶다.
이런 식으로 체스판의 좌표와 픽셀 좌표를 대응하여 내부 파라미터를 구한다. |
내부 파라미터를 구했다면 영상에서 마커를 인식하고, 정규 평면(UV 평면)으로 변환한다. 그리고 점을 동차(homogeneous) 좌표계를 통해 직선으로 만들고, 외부 파라미터로 실제 공간상의 직선으로 변환한다.
이론적으로 여러 카메라에서 동일한 뷰를 촬영하고 캘리브레이션 했을 때, 동일한 마커를 가리키는 직선들은 한 점에서 교차하며, 그 교점이 마커의 실제 좌표이다.
이 과정을 모든 마커에 대해서 진행하면 마커들의 (m 혹은 mm단위의) 3차원 공간상 좌표를 구할 수 있고, 이로부터 Human Skeleton을 만들면 되는 것이다! (가령 팔꿈치 양 옆에 마커를 붙었으면 둘의 중점을 팔꿈치 관절의 좌표로 표현한다.)
이제 모션 캡쳐를 하면 될까? 아니다. 괜히 "이론적으로"에 bold 처리를 한 것이 아니다. 이론은 그렇다. 이론은. 이론만 그렇다....
일단 내부 파라미터를 구하는 것부터 쉽지 않을 가능성이 크다. 체스보드로 하면 될 것 같지만서도 생각보다 정확도가 나오지 않으며, 전제 조건이 초점이 맞는 거리에 체스판이 존재하는 것이다. 근데 모션캡쳐는 최소 3~5m에서 수십m까지의 환경에서 촬영되므로, 그 정도 거리에서 A4용지에 체스보드를 출력하면 잘 보이지도 않는다. 그래서 Calibration Cube라는 것을 제작하기도 하는데, 이걸 큰 사이즈로 제작하는 것도 쉬운 일이 아닌 것이다. 그렇게 얻은 파라미터 값의 정확도도 낮을 것이고.
체스보드가 출력된 캘리브레이션 큐브 | 이렇게 괴랄하게 생긴 것도 있다. |
그러니까 이 캘리브레이션만을 위해서 온갖 논문이 나온다. "이런 조건에선 이런 어려움이 있으므로 이런 도구를 만들어 캘리브레이션하면 된다." 라는 식으로.
그리고 내부 파라미터를 얻고 나서는 외부 파라미터도 얻어야 하므로, 캘리브레이션이란 놈은 참 귀찮고도 어려운 과정이 아닐 수가 없다.
뭐 상기한 고전적인 방식으로 캘리브레이션을 할 수도 있다. 근데 실제 모션캡쳐 비즈니스들은 어떻게 할까?
그냥 적당히 어찌저찌 캘리브레이션할 수는 없을까? 그게 바로 오토 캘리브레이션이다.
동적 캘리브레이션이라는 용어를 쓰는데, 마커 기반 모션캡쳐 분야의 유명한 회사 VICON은 상기한 온갖 장비들과 calibration wand라는 걸 제작해 판매한다. VICON의 카메라로 wand를 휘두르는 모습을 촬영한 뒤, 이를 VICON NEXUS라는 자체 프로그램으로 wand를 인식하여 동적 캘리브레이션을 한다.
이렇게 생긴 놈을 | 이렇게 촬영하면 |
이렇게 프로그램에서 알아서 인식하고 알아서 자체 알고리즘으로 파라미터를 계산해준다. |
그러니까 이 VICON이라는 회사는 스튜디오 장비 구성부터 결과 얻는 자체 알고리즘까지 완비한 회사이고, 이게 상당히 정확하다보니 인기도 많고 가격도 높다.
일단 돈이 많으면 VICON을 이용하면 된다. 컨설팅도 해줄 거다. 한 수천만원 정도 들지 않을까? 물론 스튜디오 부동산값은 빼고.
돈이 없으면 동적 캘리브레이션을 진행하는 알고리즘을 공부해 직접 구현하거나, 그런 걸 해주는 저가 프로그램 혹은 오픈소스를 찾으면 된다.
결론이 뭔가 상당히 맥 빠지는데, 본 포스팅은 일단 패시브 마커를 기반으로 모션캡쳐를 하는 방법을 설명하는 게 목적이다.
관련하여 필자가 실제로 어떻게 시도했는가에 대해선 시리즈를 연재하면서 차차 알려드리겠다. 거기에는 wand calibration 방법도 포함될 예정이다.