위 그림에서 moving image에서 빨간색 점 선, fixed image에서 파란색 점 선의 feature를 뽑았다고 가정하자.
첫 번째로 moving image의 feature의 중심 좌표를 구한 후 fixed image의 feature의 중심 좌표로 translation한다.
두 번째로 translation 후 moving image의 feature와 fixed image의 feature의 서로 가장 가까운 closest point를 찾아 matching되는 점들 사이의 rotation matrix를 pseudo inverse를 이용해 구한다.
이와 같은 과정을 closest point 간의 거리가 일정 수치 이내로 들어올 때 까지 계속 반복하는 것이 ICP이다.
Non-rigid registration은 rigid registration과 같이 모든 moving image의 points를 fixed image의 point로 이동할 하나의 transformation을 구하는 것이 아니라, 각 point v마다 transformation X를 구하는 것이 목적이다.
-
Distance term
Eˉd(X):=vi∈V∑widist2(ui,Xivi)
Fixed image의 point T와 transformed moving image의 point Xivi의 거리를 나타낸다. wi는 각각의 point마다 주는 가중치이다.
위 식을 변형하면 다음과 같다.
W:=diag(w1,…,wn)
In=n×n identity matrix
⊗=Kronecker product
vi∈V∑widist2(ui,Xivi)=∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣(W⊗I3)⎝⎜⎜⎛⎣⎢⎡X1⋱Xn⎦⎥⎤⎣⎢⎢⎡v1⋮vn⎦⎥⎥⎤−⎣⎢⎢⎡u1⋮un⎦⎥⎥⎤⎠⎟⎟⎞∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣∣2
D:=⎣⎢⎢⎢⎡v1Tv2T⋱vnT⎦⎥⎥⎥⎤
U:=[u1,…,un]T
Eˉd(X)=∣∣W(DX−U)∣∣F2
-
Stiffness term
Eˉs(X):={i,j}∈ϵ∑∣∣(Xi−Xj)G∣∣F2
G:=diag(1,1,1,γ)
M=node-arc incidence matrix
Es(X)=∣∣(M⊗G)X∣∣F2
서로 인접한 points의 transformation X의 차이가 최소가 되도록 하여 stiffness 효과를 주는 것이다. G는 affine transformation과 translation term 사이의 비율을 조정하는 역할을 한다.
-
Landmark term
Eˉl(X):=(vi,l)∈L∑∣∣Xivi−l∣∣2
El(X)=∣∣DLX−UL∣∣F2
Landmark와 그에 해당되는 Xivi의 거리 차를 나타낸다.
-
Complete cost function
전체 식 들을 조합하면 다음과 같다.
Eˉ(X):=Eˉd(X)+αEs(X)+βEl(X)
α값은 iteration 마다 점점 줄여나간다.
그리고 아래와 같이 AX−B 형태로 변경이 가능하다.
Eˉ(X)=∣∣∣∣∣∣∣∣∣∣∣∣∣∣⎣⎢⎡αM⊗GWDβDL⎦⎥⎤X−⎣⎢⎡0WUUL⎦⎥⎤∣∣∣∣∣∣∣∣∣∣∣∣∣∣F2=∣∣AX−B∣∣F2
즉, pseudo inverse로 최적의 X를 구할 수 있게 된다.
X=(ATA)−1ATB