CT Lab

第6章 コーンビームCTとFeldkamp(FDK)再構成

3 次元再構成の FDK 法をブラウザで実行し、コーンアーチファクトを観察する。

前章のファンビームは、1 次元検出器で 1 断面を撮影するものでした。検出器を 2 次元のフラットパネルに拡張すると、X 線はファン(扇)からコーン(円錐)状に広がり、線源の 1 回転で物体全体を覆う投影データが一度に得られます。これがコーンビーム CT です。歯科用 CT、血管撮影装置(C アーム)、産業用 CT などで広く使われています。ジオメトリはファンビームの zz 方向拡張です。線源は z=0z=0 平面内の半径 DSOD_{\mathrm{SO}} の円軌道上を線源角 β\beta で回り、検出器は面内方向 uu(単位ベクトル e^u\hat e_u)と回転軸方向 vv(単位ベクトル e^v\hat e_v)の 2 次元になります。アイソセンタ(原点)を通るように縮小した仮想検出器を計算に使う点も、前章と同じです。

S(β)=DSO(cosβ, sinβ, 0),P(u,v)=ue^u+ve^v,e^u=(sinβ,cosβ,0), e^v=(0,0,1)S(\beta) = D_{\mathrm{SO}}(\cos\beta,\ \sin\beta,\ 0), \qquad P(u,v) = u\,\hat e_u + v\,\hat e_v, \quad \hat e_u = (-\sin\beta, \cos\beta, 0),\ \hat e_v = (0,0,1)

円軌道データの本質的な限界

ただし、円軌道 1 周のコーンビームデータには本質的な限界があります。3 次元の物体を厳密に再構成できるための条件が Tuy の条件です。いわく、「再構成したい点を通るあらゆる平面が、線源軌道と少なくとも 1 点で交わること」。中央平面(z=0z=0)内の点はこの条件を満たします。しかし z>0|z| \gt 0 の点については、z=0z=0 平面に平行な平面が軌道と決して交わりません。円軌道では中央平面以外のデータが本質的に不足しており、どんなアルゴリズムを使っても厳密解は得られないのです。この不足が、コーン角が大きい(z|z| が大きい)領域ほど強く現れる「コーンアーチファクト」の原因になります。

線源軌道(z = 0)z線源中央平面の点軌道と交わる:厳密に再構成できるz ≠ 0 の点交わらない:データが足りない×

Tuy の条件。z ≠ 0 の点を通る水平な平面は円軌道と決して交わらず、円軌道のデータは本質的に不完全になる。

それでも円軌道は機構が単純なため、実用機のほとんどが採用しています。その事実上の標準再構成法が Feldkamp–Davis–Kress(FDK, 1984)法です。FDK はファンビーム FBP の自然な 3 次元拡張で、手順は 3 ステップ。① 各検出器画素に、斜めに入射するレイの経路長を補正するコサイン重み DSO/DSO2+u2+v2D_{\mathrm{SO}}/\sqrt{D_{\mathrm{SO}}^2+u^2+v^2} を掛ける。② 検出器の各行(vv を固定した uu 方向の 1 次元データ)にランプフィルタを畳み込む。③ 距離重み (DSO/L)2(D_{\mathrm{SO}}/L)^2 を掛けながら 3 次元逆投影する。ここで LL は線源からの中心レイ方向の深さ、(u,v)(u^*, v^*) はボクセル (x,y,z)(x,y,z) を通るレイが仮想検出器に当たる位置で、逆投影ではその値をバイリニア補間して全 β\beta について足し込みます。

p~(β,u,v)=DSODSO2+u2+v2  p(β,u,v),q(β,,v)=p~(β,,v)h\tilde p(\beta, u, v) = \frac{D_{\mathrm{SO}}}{\sqrt{D_{\mathrm{SO}}^2 + u^2 + v^2}}\; p(\beta, u, v), \qquad q(\beta, \cdot, v) = \tilde p(\beta, \cdot, v) * h f(x,y,z)=πNββ(DSOL) ⁣2q(β,u,v)f(x,y,z) = \frac{\pi}{N_\beta} \sum_{\beta} \left(\frac{D_{\mathrm{SO}}}{L}\right)^{\!2} q\bigl(\beta,\, u^*,\, v^*\bigr) L=DSOxcosβysinβ,u=DSO(xsinβ+ycosβ)L,v=DSOzLL = D_{\mathrm{SO}} - x\cos\beta - y\sin\beta, \qquad u^* = \frac{D_{\mathrm{SO}}\,(-x\sin\beta + y\cos\beta)}{L}, \qquad v^* = \frac{D_{\mathrm{SO}}\, z}{L}
線源検出器vv*ボクセル (x, y, z)奥行き LDSO距離重み(D_SO/L)²κcos κ = DSO/√(DSO² + u² + v²)コサイン重み:斜め入射の経路長を補正行ごと(v 固定)に u方向ランプフィルタ

FDK の幾何学。コサイン重みが斜め入射の経路長を、距離重み(D_SO/L)² が逆投影の奥行きを補正する。ランプフィルタは検出器の行(u 方向)ごとに掛かる。

z=0z=0 の中央平面では v=0v^* = 0 となり、コサイン重み、フィルタ、逆投影はいずれもファンビーム FBP と同じ式になります。したがって FDK の中央スライスは 2 次元ファンビーム FBP と厳密に一致します。一方、z|z| が大きくなるほどレイは中央平面から傾き、Tuy の条件を満たさないデータ不足の影響が現れます。zz 方向に変化の急な構造では上下の縁がぼけ、値が低下します。これが典型的なコーンアーチファクトです。下のシミュレーションで直接確かめられます。

シミュレーション:コーンビームの3Dジオメトリ

コーンビームの撮影ジオメトリを 3D 表示します。マウスの左ドラッグで視点を回転、ホイールでズーム。β\beta スライダーか再生ボタンで線源を軌道上で回し、DSOD_{\mathrm{SO}} スライダーで線源距離を変えると、コーン半開角の変化が見て取れます。表示しているのは線源の反対側にある実検出器(線源–検出器間距離 =2DSO= 2\cdot D_{\mathrm{SO}}、拡大率 2)で、再構成の計算にはこれをアイソセンタへ縮小した仮想検出器(半幅 1.4)を使います。両者は同じレイ束を表しています。

3D ビューを読み込み中…

シミュレーション:FDK再構成の実行

3D Shepp-Logan ファントムをラスタライズし、コーンビーム順投影から FDK 再構成までをブラウザ内で実行します。解像度 NN(ボリュームは N3N^3 ボクセル)、投影数、再構成フィルタを選んで「実行」を押してください。WebGPU が使えれば GPU で、使えなければ CPU(Web Worker)で計算します。結果は下の 3 断面ビューアに表示されます。

解像度 N
投影数
再構成フィルタ
計算バックエンド: 確認中…

目安:N=64 は CPU でも十秒程度ですが、N=128 を CPU(Worker)で実行すると数分かかることがあります(WebGPU なら数秒)。実行中はキャンセルできます(GPU 実行中の処理は中断できないことがあります)。

シミュレーション:直交3断面ビューア

再構成ボリュームをアキシャル(zz 固定)・コロナル(yy 固定)・サジタル(xx 固定)の 3 断面で表示します。各列の上段が FDK 再構成、下段が真のファントムで、スライダーで断面位置を動かせます。スライス RMSE は FOV 円柱(r0.9r \le 0.9z0.9|z| \le 0.9)内で真値と比較した値です。

コーンアーチファクトを観察するには、アキシャルの zz スライダーを中央(z=0z = 0)から上下へ動かすのが早道です。中央付近では RMSE が最小で、真値とほぼ一致します。物体のある範囲では z|z| が大きくなるほど RMSE が単調に増加し、楕円体の上下端がぼけて値が沈むのが分かります(ファントムの上端 z0.8|z| \approx 0.8 を越えるとスライスがほぼ空になるため、RMSE は再び下がります)。コロナル/サジタル断面では、物体の上下の縁(zz 方向のエッジ)がぼけて暗くなる様子が一目で確認できます。面内(xxyy 方向)のエッジは端のスライスでも鮮明なままです。この対比にも注目してください。

まだ結果がありません。上のセクションで FDK 再構成を実行してください。

FDK 再構成(上段)と真のファントム(下段)の直交 3 断面。

円軌道の限界

コーンビーム CT は、2 次元検出器によって 1 回転でボリューム全体の投影を集める実用的なジオメトリです。ただし円軌道は中央平面以外で Tuy の条件を満たさず、データは本質的に不完全です。FDK 法はファンビーム FBP を 3 次元に拡張した近似再構成で、コサイン重み、行方向ランプフィルタ、距離重み付き逆投影の 3 ステップからなります。中央スライスは 2D ファンビーム FBP と厳密に一致し、z|z| が大きいほどコーンアーチファクトで劣化します。ここまでの再構成はすべて解析的(1 パス)な方法でした。次章では発想を変えて、再構成を最適化問題として解きます。

ボクセルと部分体積効果

3 次元画像の各値は、有限の幅と高さを持つボクセル内の平均です。骨と軟部組織の境界のように1 つのボクセルへ複数の物質が入ると、CT 値はその中間になります。これが部分体積効果です。薄いスライスと小さな面内画素は微細構造を分離しやすくしますが、各ボクセルへ入る光子数が減るためノイズは増えます。面内画素寸法は FOV と行列サイズ、z 方向分解能は検出器コリメーション、ヘリカル pitch、再構成法、スライス厚に左右されます。

参考文献

このページの内容