Medical Image Registration - Non-rigid registration via ICP

Gyuha Park·2021년 8월 31일
0

Medical Image Analysis

목록 보기
20/21
post-thumbnail

1. Iterative Closest Point

위 그림에서 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이다.

2. Non-rigid ICP Registration

Non-rigid registration은 rigid registration과 같이 모든 moving image의 points를 fixed image의 point로 이동할 하나의 transformation을 구하는 것이 아니라, 각 point vv마다 transformation XX를 구하는 것이 목적이다.

Non-rigid ICP registration은 아래 세가지 식 들을 최소화 함으로 최적의 XX를 반복해서 구한다.

  • Distance term

    Eˉd(X):=viVwidist2(ui,Xivi)\bar{E}_d(X):=\sum\limits_{v_i\in V}w_i\text{dist}^2(u_i,X_iv_i)

    Fixed image의 point TT와 transformed moving image의 point XiviX_iv_i의 거리를 나타낸다. wiw_i는 각각의 point마다 주는 가중치이다.

    위 식을 변형하면 다음과 같다.

    W:=diag(w1,,wn)W:=\text{diag}(w_1,\ldots,w_n)

    In=n×n  identity matrixI_n=n\times n \ \ \text{identity matrix}

    =Kronecker product\otimes =\text{Kronecker product}

    viVwidist2(ui,Xivi)=(WI3)([X1Xn][v1vn][u1un])2\sum\limits_{v_i\in V}w_i\text{dist}^2(u_i,X_iv_i)=\left|\left|(W\otimes I_3)\left(\begin{bmatrix}X_1& & \\ &\ddots& \\ & &X_n\end{bmatrix}\begin{bmatrix}v_1\\\vdots\\v_n\end{bmatrix}-\begin{bmatrix}u_1\\\vdots\\u_n\end{bmatrix}\right)\right|\right|^2

    D:=[v1Tv2TvnT]D:=\begin{bmatrix}v_1^T& & & \\ &v_2^T\\ & &\ddots& \\ & & &v_n^T\end{bmatrix}

    U:=[u1,,un]TU:=[u_1,\ldots,u_n]^T

    Eˉd(X)=W(DXU)F2\bar{E}_d(X)=||W(DX-U)||_F^2

  • Stiffness term

    Eˉs(X):={i,j}ϵ(XiXj)GF2\bar{E}_s(X):=\sum\limits_{\{i,j\}\in \epsilon}||(X_i-X_j)G||_F^2

    G:=diag(1,1,1,γ)G:=\text{diag}(1,1,1,\gamma)

    M=node-arc incidence matrixM=\text{node-arc incidence matrix}

    Es(X)=(MG)XF2E_s(X)=||(M\otimes G)X||_F^2

    서로 인접한 points의 transformation XX의 차이가 최소가 되도록 하여 stiffness 효과를 주는 것이다. GG는 affine transformation과 translation term 사이의 비율을 조정하는 역할을 한다.

  • Landmark term

    Eˉl(X):=(vi,l)LXivil2\bar{E}_l(X):=\sum\limits_{(v_i,l)\in\mathcal{L}}||X_iv_i-l||^2

    El(X)=DLXULF2E_l(X)=||D_LX-U_L||_F^2

    Landmark와 그에 해당되는 XiviX_iv_i의 거리 차를 나타낸다.

  • Complete cost function

    전체 식 들을 조합하면 다음과 같다.

    Eˉ(X):=Eˉd(X)+αEs(X)+βEl(X)\bar{E}(X):=\bar{E}_d(X)+\alpha E_s(X)+\beta E_l(X)

    α\alpha값은 iteration 마다 점점 줄여나간다.

    그리고 아래와 같이 AXBAX-B 형태로 변경이 가능하다.

    Eˉ(X)=[αMGWDβDL]X[0WUUL]F2=AXBF2\bar{E}(X)=\left|\left|\begin{bmatrix}\alpha M\otimes G\\WD\\\beta D_L\end{bmatrix}X-\begin{bmatrix}0\\WU\\U_L\end{bmatrix}\right|\right|_F^2=||AX-B||_F^2

    즉, pseudo inverse로 최적의 XX를 구할 수 있게 된다.

    X=(ATA)1ATBX=(A^TA)^{-1}A^TB

profile
Live on mission ✞

0개의 댓글