Unknownpgr

CT Reconstruction

2023-07-28 14:42:11 | Korean

오늘 갑자기 CT 영상이 어떻게 복원되는지가 궁금해졌습니다. 그래서 CT 영상 복원에 대한 가설을 간단하게 세우고 직접 실험을 해보았습니다.

Hypothesis

CT에 대해 아래와 같은 사실을 알고 있습니다.

거기에 다음과 같은 추가적인 추론을 할 수 있습니다.

Modeling

이를 바탕으로 먼저 다음과 같이 균질한 물체에서 X-ray의 감쇄를 모델링했습니다.

I=I0eμxI = I_0 e^{-\mu x}

이때 I0I_0는 물체를 통과하기 전의 빛의 세기, II는 물체를 통과한 후의 빛의 세기, μ\mu는 물체의 투과계수, xx는 물체의 두께입니다.

계산의 편의를 위하여 I0I_0를 1로 두면 아래와 같이 변형할 수 있습니다.

I=eμxI = e^{-\mu x}

이로부터 X-ray가 물체를 통과하면서

물체를 통과한 후의 빛의 세기 II는 다음과 같이 표현할 수 있습니다.

I=eμ0Δx0eμ1Δx1eμ2Δx2...=ei=0nμiΔxiI = e^{-\mu_0 \Delta x_0} e^{-\mu_1 \Delta x_1} e^{-\mu_2 \Delta x_2} ... \\ = e^{-\sum_{i=0}^n \mu_i \Delta x_i}

이는 계산하기 어려우므로 양변에 로그를 취하면 다음과 같이 변형할 수 있습니다.

lnI=_i=0nμiΔxi\ln I =- \sum\_{i=0}^n \mu_i \Delta x_i

여기서 nnμi\mu_i는 ray마다 다른 값을 가지므로 여러 ray들을 한 번에 행렬로 표현할 수 없습니다. 이를 해결하기 위해 다음과 같은 방법을 사용합니다.

그러면 위 수식은 다음과 같은 형태로 표현됩니다.

lnIi=j=0nμjWi,j\ln I*i = - \sum*{j=0}^n \mu*j W*{i,j}

이는 다음과 같이 행렬 연산으로 표현할 수 있습니다.

lnI=Wμ\ln I = -W\mu

이때 μ\mu는 각 미소 단면의 투과계수를 원소로 가지는 벡터이고, WW는 선택 행렬입니다. II는 측정된 각 ray의 빛의 세기를 원소로 가지는 벡터입니다.

단면을 미소 면적으로 나눈 개수를 n, ray의 개수를 m이라고 할 때, 각 행렬은 다음과 같은 크기를 가집니다.

μ=(n,1)W=(m,n)I=(m,1)\mu = (n, 1) \\ W = (m, n) \\ I = (m, 1)

이때 일반적으로 nmn \neq m이므로 WW는 square matrix가 아닙니다. 그러므로 이 행렬 연산은 exact solution을 가지지 않으며, pseudo-inverse를 이용하여 해를 구해야 합니다. 그러면 아래와 같은 형태로 표현할 수 있습니다.

μ=W+lnI\mu = -W^+ \ln I

계산의 편의를 위해 D=lnID = -\ln I라고 하면

W+D=μ(W+=(WTW)1WT)W^+ D= \mu\\(W^+ = (W^T W)^{-1} W^T)

Implementation

코드는 Python, Numpy, OpenCV를 사용하여 구현했으며 아래 리포지토리에 있습니다.

https://github.com/unknownpgr/ct-reconstruction

Result

원본 이미지와 대단히 흡사한 이미지가 얻어진 것을 확인할 수 있습니다.

Discussion

위 과정에서 가장 오랜 시간이 걸리는 작업은 pseudo-inverse를 구하는 것입니다. Pseduo-inverse 연산의 computational time complexity는 O(m2n)O(m^2n)인데 (mm은 ray의 개수, nn은 미소 면적의 개수) WW 행렬의 크기는 (23000,4096)(23000, 4096) 정도로 대단히 크기 때문입니다. 그러나 ray를 방사하는 방법만 정해지면 WW 행렬은 변하지 않습니다. 따라서 ray를 방사하는 방법을 미리 정해두고 WW 행렬 및 그 pseudo-inverse를 미리 계산해두면 이후에는 시간을 크게 절약할 수 있을 것입니다.


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -