반응형
내 맘대로 Introduction
*요즘은 최신 논문을 이해하는 것보다 과거 논문을 이해하는게 더 어려운 것 같다. 기념비적인 논문들은 특히 수학적으로 탄탄하기 때문에 내 부족한 수학 밑천으로는 이해하기가 벅차다. 이 논문도 마찬가지인 논문이고, 사실 상 10% 정도 컨셉 이해에 그쳤다. 정리 수준이 부끄럽지만 그래도 10%라도 잘 기억해보려고 기록해본다.
이 논문은 간단히 말하면, Mesh vertex를 xyz, normal 외에 어떤 property로 표현할 수 있을지 고민한 느낌이다. 다시 말하면 mesh vertex descriptor를 만드는 방법을 설명한다. 3D correspondence나 segmentation에 응용할 수 있는 기본기다.
핵심 아이디어는 열역학에서 나왔다. 열이 어떤 형상에서 퍼져나갈 때 그 퍼져나가는 양상은 표면의 굴곡에 영향을 받는다. 즉 주변 형상이 어떻게 생겼냐에 따라 속도, 열전달율 등이 다르다. 이런 현상에서 착안해서 mesh vertex 하나하나마다 열역학적으로 주변 neighbor를 고려했을 때 열이 퍼져나가는 특징을 부여하고 이를 descriptor로 사용하는 컨셉이다. 한마디로 열전달/열확산 특징을 descriptor로 사용하는 것이다.
굉장히 다른 필드에서 지식을 빌려와 이식한 것이라 저자가 대단하게 보일 뿐이다.
메모
모든 것의 시작 heat diffusion process다. 수식(1)과 같이 어떤 한 위치 x에서 시간 t 이후 열 상태는 mesh 상의 laplace-beltrami operator + 미분 term으로 표현 가능하다. mesh surface를 알고 있으면 모델링이 가능하다는 것. |
실제로 많은 연구가 있어 왔고, Laplace-beltrami operator의 eigenvalue, eigenvector로 만든 kernel로 표현하는 것이 정확하다고 밝혀져 있다. |
heat kernel로 계산해 낸 열 값은, 각 vertex의 특징을 나름 잘 반영하고 있는 대표값이기도 해서 mesh deformation에도 약간 강건한 특성이 있고 |
물리적으로 neighbor와 거리와도 연결점이 있기 때문에 활용할 가치가 굉장히 높은 값이다. |
특히, 시간 t에 따라 "퍼져나가는" 특징이 있기 때문에 t를 어떻게 설정하느냐에 따라 얼마나 좁게, 얼마나 멀리까지 주변 형상을 고려하느냐까지 조절할 수 있다. 마치 receptive field를 조절하는 느낌. |
확산 시간 t를 좁게 보아 좁은 neighbor만 보도록 설정할 경우, mesh를 전체 다 볼 필요없이 국소적인 mesh만 보고 계산해도 결과가 똑같다. (part part 계산하는 것도 t만 작으면 가능) 일종의 vertex 주변 형상과의 weighted average function인 셈이다. |
|
mesh deformation이 있을 때 heat kernel의 변화도 안정적인 편이다. 일종의 bound가 있어서 그 범위 안에서 움직이기 때문에 변형 전 후 heat kernel이 완전 변하는 일도 없다. |
heat kernel을 이렇게 다룬 이유는 결국 vertex descriptor로 쓰기 위함이다. 그러려면 필히 가볍고 계산하기 편해야 한다. 따라서 이를 descriptor로 만들 때, heat kernel에서 "neighbor"와 계산하는 값을 빼고 x to x 자기 자신으로의 확산 + 시간에 따른 변화만 다뤘다. x to y (neighbor)를 포함하면 계산량이 너무 많음. 이렇게 자기자신으로 neighbor 범위를 축소한 heat kernel 값을 HKS라고 이름 붙여 일종의 descriptor로 사용하기로 했다. 하나 약점은, laplace operator의 eigenvalue 계산했을 때 같은 값은 없다고 "가정"하고 가는 점이다. 즉 형상이 매우 반복적일 경우, descriptor가 비슷해진다. |
위 그림들처럼 반복 형상이 많을 때는 표현력이 떨어지는 단점이 있다. (이건 모든 descriptor가 풀지 못한 문제니까 어쩔 수 없다고 생각함.) |
그래도 여전히 짱짱맨은 맞다. 실제 geometry와 수학적으로 대응되어 있고 |
diffusion distance가 뭔진 모르겠지만, 또 다른 물리값과도 엮여있다. |
기존에 쓰던 GPS라는 방식보다 뛰어난 것도 확실함. |
실제 계산할 때는 어떻게 하느냐, Laplace-beltrami operator라는 것은 사실 N차원 manifold 상에서 정의된 것이라서 딱 mesh에 적용되는 개념은 아니다. 더 수학적으로 큰 개념. (내가 이해할 때는 큰 차이는 없는 듯) 이를 3차원 그것도 discrete vertex로 쪼개진 mesh에 적용할 때는 생각보다 operator 계산이 간단해진다. kernel function k(x,y)도 그냥 gaussian으로 퉁칠 수 있다. |
laplace operator 자체도 face area로 만든 A matrix를 활용해서 간단히 만들 수 있다. (실제로 계산하는 방법은 모르겠으나, 다른 N차원보다는 훨씬 간단해진다는 의미) |
실제로 mesh에 적용해보면 나름 구분력있게 descriptor가 뽑힘. 반복구조는 취약한 편. |
descriptor 간의 similarity는 어떻게 게산하느냐? cosine similarity로 계산하면 안되고 HKS 값 간의 l2 distance 쓰면 된다. |
하나 주의점은, distance 값이 t에 영향을 받긴 한다. t가 커서 멀리까지 확산 (넓은 neighbor까지 고려)한 경우에는 descriptor 간 차이가 좀 작아지는 편이다. -> 넓게 넓게 보고 있으므로 descriptor가 global해져서 local 표현력이 좀 줄어든다는 의미인 듯함. |
t가 다를 경우에는 다음과 같이 integral 형태로 차이값을 계산한다. |
여러 스케일 t를 사용할 경우 표현력이 증가함 |
반응형