상세 컨텐츠

본문 제목

Real-time markerless tracking for augmented reality: The virtual visual servoing framework

학술

by 양고 2009. 3. 6. 12:55

본문


TVCG 2006
Comport, Marchand, Pressigout, and Chaumette
2월 23, 24일 몫.
이것이 Total Immersion에서 사용하는 알고리즘인 것으로 보인다. 왜 진작 몰랐을까...
These software environments have been implemented in C++ under both Linux and Windows XP and are now part of the D’Fusion software proposed by the Total Immersion company.
주 내용
pose computation and camera displacement estimation are formulated in terms of a full scale nonlinear optimization: virtual visual servoing.
Iteratively reweighted least squares (IRLS) is a common method of applying the M-estimator?
어쨌든 일반적인 (closed-loop) control theory에 의해 tracking을 수행.
visual features: feature point에서 contour에 normal 방향으로 edge를 찾는데, spatiotemporal moving edges algorithm을 사용. 이 때 주변 점들도 이용하기 위해 7x7 mask로 convolution한다 (좀 안습).
 
정보
t-immersion은 ODE를 사용하는군.


Moving Edges algorithm에 관해 추가 (2010.7.19):

솔직히 지난 번 리뷰 때는 단순 컨볼루션이라는 점에서 약간 실망해서 이 부분을 간과한 나머지 이해하지 못한 채 넘어갔다 (이해하지 못한지도 모른채). 그러나 실험구현을 위해서 다시 리뷰한 지금에서야 제대로 이해하게 되었다 (진짜?).
전에는 본문에 언급된 convolution이 단순한 SAD나 SSD일 것으로 추측했었으나, 다음과 같은 근거로 말 그대로 convolution임을 알 수 있다 (즉 difference가 아닌 multiplication의 절대치 합).

1. 1도에 하나씩이라고 볼 때 360개가 아니라 180개의 마스크만 있는 점. SAD라면 360개가 필요할 것이다.

2. 마스크가 실수(예: -100)인 점. grey level은 -100에서 100으로 normalize하는 것으로 보인다.

이 경우 일반적인 에지의 경우 (예를 들면 grey value -30에서 50으로 변하는) 에지 포인트에서 컨볼루션이 최대값을 가질 것이다.
그러나 +20에서 +80으로 변하는 edge는 detect하지 못할 것이다. 이런 edge들은 포기해도 괜찮은 것일까? → 오해다. 기다려 달라...가 아니고, convolution 계산 시 절대값을 취해서 더하는 것으로 착각했다.
제시된 마스크로 모든 에지를 검출 가능하다.
그렇다면 gradient 방향이 반대인 경우는?
즉 그림 (c)의 마스크를 사용할 때, 위가 어둡고 아래가 밝은 수평 에지는 찾을 수 있을까?
그런 경우 컨볼루션 값은 (-)로 큰 값을 가질 것이다. 즉 convolution의 absolute value를 취하여 maximum이 되는 포인트를 선택하면 된다.

관련글 더보기