今回は、非線形な画像変換を用いた位置合わせを紹介します。線形あるいは非線形な変換とは、どういう意味でしょうか?
まず、平行移動と回転だけを用いた位置合わせは、形が変わらない(剛体)ので、「剛体位置合わせ」と呼ばれます。また、平行移動と回転だけでなく、拡大・縮小等の変形も含まれるアフィン変換は、形が変わっている(非剛体)ので、「非剛体位置合わせ」と呼ばれます。しかし、両者とも変換前後の座標の関係は、下のような線形変換な表現行列(アフィン変換行列)で表されるので、「線形変換による位置合わせ」と言えます。
一方、上のような線形変換な表現行列で表すことができないような画像変換による位置合わせを「非線形変換による位置合わせ」と呼びます。もちろん、形が変わるので、「非剛体位置合わせ」になります(図2)。
非線形変換による位置合わせを実装できるplugin(bUnwarpJ)が、Fijiに搭載されています。
今回は、図2の2つの画像を用いて「非線形変換による位置合わせ」を実装してみようと思います。
非線形変換のアルゴリズムには、B-spline法が用いられています。
B-spline関数は、CGの分野などにおいても、空間の任意の位置における変位を記述する、自由形状変形(free form deformation)によく用いられます。
この手法では、画像上に制御点を格子状(間隔δ)に設定し、その点を移動させることで変形を行い、その他の点の移動は補間によって求めます(図3)。下式のように、任意の座標における変位場μ(x, y)は、近傍4点の制御点の変位場Φ(i, j)にB-spline関数を掛けたものの足し合わせで表わされます。これにより、なめらかな任意の変形が表現されます。
では、位置合わせpluginを実装してみましょう。
まず、Fijiのplugins > Registration > bUnwarpJを選択します(図4)。
各パラメータを設定します。Source画像とTarget画像を選択し、registrationのモードは精度や速度の好みに合わせて選択できます。Verboseにチェックを入れると変形場や変形後の制御点の位置情報も取得できます(図5)。
均一な間隔で配置されていた制御点が、位置合わせによって移動している様子が分かります。制御点の変位ベクトルの情報も得られます(図6)。このような非線形な画像変換によって、位置合わせを行うことができました(図7)。
次に、肺のCT画像に対して非線形変換による位置合わせを施した例を紹介します。
最大呼気と最大吸気の呼吸位相に分けて再構成した2つのCT(図8)において、最大呼気画像から最大吸気画像に向けて位置合わせを行います。位置合わせを行う前は、横隔膜近傍に大きな差分が見られます。
最大呼気画像から最大吸気画像に向けて非線形変換による位置合わせを行った結果得られた、制御点位置の変化と変位ベクトルの情報を図9に示します。肺野の下方に近づくにつれて変位ベクトルの大きさが大きくなっている様子が分かります。
最大呼気から最大吸気へ位置合わせした後の画像と最大吸気の画像を図10に示します。差分画像を図8と比較すると、位置合わせにより差分が大幅に減少したことが分かります。横隔膜近傍の差分はほとんど見られなくなりました。
図9で得られたような、ボクセル毎の変位ベクトルの情報を数学的に処理し、ボクセル毎の肺機能の情報に変換し、放射線治療の最適化に応用する研究も行われています。
*今回用いた脳MRI画像は、McConnell Brain Imaging Centerが公開しているBrain Webという脳MRIのデータベースからダウンロードしました。(http://brainweb.bic.mni.mcgill.ca)