CT Lab

第12章 深層学習・AIによるCT画像改善

ミニ CNN デノイザをブラウザ内で学習させ、深層学習による CT 画質改善の原理と限界を体験する。

CT の画質は突き詰めると線量との交換です。被ばくを減らすために入射光子数 I0I_0 を下げると、第4章で見たとおり投影のポアソンノイズが増え、ランプフィルタがそれを増幅して FBP 像はざらつきます。第8章の逐次近似法はノイズの統計と事前知識(正則化)を組み込んでこれと戦えますが、計算コストと調整すべきパラメータが増えます。2010 年代後半、ここに第三の選択肢が現れました。高線量画像と低線量画像のペアから「ノイズの消し方」そのものを学習してしまう、深層学習です。現在では複数のベンダーの臨床装置に深層学習再構成(DLR)が搭載されています。

画像ドメインの深層学習:残差学習

最も基本的な構成は画像ドメインの教師あり学習です。低線量の再構成像 yy を入力に、高線量の再構成像 xx を教師(正解)として、ニューラルネットワーク fθf_\theta にその対応を学ばせます。このとき xx を直接出力させるのではなく、ノイズ yxy - x を予測させて入力から引く形にするのが定石です(残差学習)。

x^=yfθ(y),L(θ)=E[fθ(y)(yx)22]\hat{x} = y - f_\theta(y), \qquad L(\theta) = \mathbb{E}\,\bigl[\,\lVert f_\theta(y) - (y - x) \rVert_2^2\,\bigr]

理由は単純で、「何もしない」に近い解(fθ0f_\theta \approx 0)から出発できるからです。ネットワークは恒等写像を苦労して覚える必要がなく、ゼロ平均のノイズ成分だけを学べばよいので、小さなネットワークでも学習が速く安定します。LDCT(低線量 CT)向けの RED-CNN や画像ノイズ除去の DnCNN など、この分野の代表的な手法はみなこの形です。

低線量像 yfθネットワーク f_θノイズ推定 f_θ(y)入力をそのまま渡す出力 x̂ = y − f_θ(y)学習:f_θ(y) を y − x に近づけるf_θ ≈ 0 から出発できる

残差学習。ネットワークはノイズ f_θ(y) だけを予測し、入力から引く。恒等写像を学ぶ必要がない。

ミニ CNN の構成

この章のシミュレーションが学習するのは、本物の畳み込みニューラルネットワーク(CNN)です。ただし実用モデルの縮小版で、3×3 の畳み込み層を 3 つ(チャネル数 1 → 8 → 8 → 1)、間に ReLU を挟んだだけの構成です。層 ll のチャネル cc の出力は次の形で計算されます。

zc(l)=ReLU ⁣(bc+cwcczc(l1))z^{(l)}_{c} = \mathrm{ReLU}\!\left(b_c + \sum_{c'} w_{c c'} * z^{(l-1)}_{c'}\right)

パラメータは重みとバイアス合わせて 737 個、受容野は 7×7 画素です。RED-CNN が約 180 万パラメータですから、規模は 2000 分の 1 以下ですが、畳み込み・残差学習・確率的勾配降下という原理はまったく同じです。FBP 像の画素スケールのノイズを消すには、この規模でも足ります。

ミニ CNN(3 層)y1conv 3×3・ReLU881y受容野 7×7737 パラメータミニ U-Net(2 レベル)y18スキップ接続(8ch)平均プーリング 2×216最近傍 ×2連結 8+16→2481yconv 3×3+ReLUプーリング/アップサンプルスキップ・連結残差の引き算

この章で学習できる 2 つのネットワーク。上:3 層のミニ CNN(1→8→8→1、受容野 7×7)。下:2 レベルのミニ U-Net。プーリングで受容野を広げつつ、スキップ接続が高解像度の情報を保つ。

学習データはその場で合成します。ランダムな楕円ファントムを生成し、順投影 → ポアソンノイズ付加 → FBP で「ノイズあり / なし」の画像ペアを作り、そこから 32×32 のパッチを切り出してミニバッチにします。最適化には Adam を使います。勾配 gtg_t の 1 次・2 次モーメントの移動平均 m^t,v^t\hat m_t, \hat v_t でステップ幅をパラメータごとに正規化する方法で、学習率の調整にほとんど手がかかりません。

θt+1=θtηm^tv^t+ϵ\theta_{t+1} = \theta_t - \eta\, \frac{\hat m_t}{\sqrt{\hat v_t} + \epsilon}

Shepp-Logan は学習データに入れない

重要な設計上の選択がひとつあります。Shepp-Logan と自由描画のファントムは、意図的に学習データから外してあります。学習に使っていないデータでの性能、すなわち汎化を、あとで正しく測るためです。

U-Net:医用画像の定番アーキテクチャ

3 層 CNN の受容野は 7×7 でした。ストリークのような長距離のアーチファクトを扱うにはもっと広い文脈が必要ですが、畳み込み層を単純に積み増すと計算もパラメータも急増します。U-Net の答えはダウンサンプリングです。解像度を半分に落とせば、同じ 3×3 畳み込みが実質 2 倍の距離をカバーします。縮小しながら文脈を読み(エンコーダ)、拡大して解像度を戻します(デコーダ)。縮小で失われる細部は、同じ解像度のエンコーダ特徴をデコーダへ横渡しするスキップ接続が補います。この U の字の形が名前の由来です。

この構造は医用画像処理の事実上の標準です。スパースビュー CT に適用した FBPConvNet(2017)以来、低線量ノイズ除去も学習ベース MAR も、その多くは U-Net の変種として作られています。長距離のアーチファクトを消しつつ画素スケールの細部を守るという CT の要求に、多重解像度の受容野がちょうど噛み合うからです。

下のシミュレーションでは 2 レベルの縮小版を学習できます。conv 1→8 → 平均プーリング → conv 8→16 → 最近傍アップサンプリング → スキップ連結 8+16→24 → conv 24→8 → conv 8→1、出力は同じく残差引き算です。パラメータは 3057 個(3 層 CNN の約 4 倍)、受容野は約 12×12。本家の U-Net は最大プーリングで 4〜5 レベルまで掘り下げますが、原理はこの縮小版とまったく同じです。シミュレーションでアーキテクチャを切り替えると、収束の速さ、最終的な RMSE、エッジの残り方を比較できます。

シミュレーション:ミニ CNN をブラウザで学習させる

「学習開始」を押すと、Web Worker 上で学習ループが回り始めます(毎秒数十ステップ)。学習損失(MSE)と、学習に使っていない検証画像に対する RMSE の 2 本の曲線が下がっていき、中央の CNN 出力パネルからノイズが消えていく過程をそのまま観察できます。学習ノイズ I0I_0 を切り替えると、その水準のノイズ用にゼロから学習し直します。アーキテクチャを切り替えたときも同様に、ゼロから学習し直します。

ノイズ入力(FBP)

計算中…
RMSE(対 教師)

CNN出力

計算中…
RMSE(対 教師)

教師(ノイズなしFBP)

計算中…

アーキテクチャ

学習ノイズ I₀

学習ステップ0
パラメータ数

学習曲線

「▶ 学習開始」を押すと損失曲線が現れます

ミニCNNデノイザのブラウザ内学習。左から、検証用のノイズ入力(FBP)、現在のネットのCNN出力、教師(ノイズなしFBP)。学習が進むと損失と検証RMSEが下がり、出力パネルのノイズが消えていく。アーキテクチャを切り替えると、3層CNNとミニU-Netをそれぞれゼロから学習し直し、収束の速さと画質を比べられる。

汎化を試す

学習済みのネットワークは、学習中に一度も見ていないデータでどこまで働くでしょうか。次のシミュレーションでは、上で学習したネットワークをそのまま Shepp-Logan や自由描画のファントムに適用できます。比較対象として、古典的なガウス平滑化(σ = 1.2 px)も並べます。

観察すべき点は 2 つあります。第一に、テストノイズが学習時と同じ水準なら、CNN はガウス平滑化より輪郭を保ったままノイズを消し、RMSE でも上回ります。一様にぼかすのではなく、ノイズらしいパターンだけを引き算することを学んでいるからです。第二に、テストノイズを学習時の水準から大きく変えると結果が変わります。学習時より強いノイズは取り切れずに残り、逆に学習時が強ノイズだった場合は、弱ノイズの画像まで過剰に平滑化して細部を消します。学習した分布の外では性能が保証されないことは、深層学習の基本的な性質です。

シミュレーション:学習済み CNN を未知データに適用する

まず上のシミュレーションで 100 ステップ以上学習してから、「学習済み CNN を適用」を押します。ファントムやテストノイズを変えると、CNN が得意な条件と苦手な条件が見えてきます。自由描画で細い構造を描くと、CNN がそれをノイズと間違えて消す様子も観察できます。

ファントム

WL 0.500 / WW 1.00右ドラッグ / Shift+ドラッグ:WL/WW調整

テスト条件

先に上のシミュレーションで 100 ステップ以上学習を進めてください。

学習済みミニCNNを未知のデータへ適用する。Shepp-Loganや自由描画のファントムは学習に使っていない。テストノイズを学習時の水準から変えると、ガウス平滑化との差(エッジ保存)や、CNNの取り残し・消しすぎが観察できる。

限界とリスク:ハルシネーションと評価

分布外での性能低下には、ノイズの取り残しや過平滑化よりも深刻な形態があります。強力な生成的モデルは、学習分布に「ありそう」な構造を、実際には存在しない場所に描き込むことがあります(ハルシネーション)。滑らかで自然に見える像の中に偽の構造が混ざったり、本物の微小病変が「ノイズらしい」として消されたりするおそれがあり、診断画像では重大なリスクになります。

このため深層学習手法の評価では、RMSE や PSNR のような画素単位の誤差だけでは不十分とされています。これらの指標は過平滑化された像を高く評価しがちで、診断に効く細部の保存を測れないからです。低コントラスト病変の検出能をファントムや観察者実験で測るタスクベース評価が重視され、臨床導入では線量低減率の主張がどの評価条件で得られたかを読むことが重要になります。

投影ドメインから拡散モデルまで

画像ドメインの後処理は出発点にすぎません。研究と製品はデータの生まれる場所へさかのぼっています。

投影・デュアルドメイン:ノイズや欠損は本来サイノグラム上の現象なので、投影ドメインで補正するネットワーク、さらに投影と画像の両ドメインを再構成層でつないで同時に学習するデュアルドメイン構成があります。第11章の金属アーチファクトでも、LI や NMAR の代わりにサイノグラムの欠損をネットワークに修復させる学習ベース MAR(DuDoNet など)が研究されています。

展開型ネットワーク(unrolled networks):第8章の逐次近似の反復更新式を有限回で打ち切り、各反復を学習可能な層に置き換える方法です(LEARN、Learned Primal-Dual など)。

xk+1=Λθk ⁣(xk,  AT ⁣(Axkp))x^{k+1} = \Lambda_{\theta_k}\!\left(x^k,\; A^{\mathsf T}\!\left(A x^k - p\right)\right)

物理モデル AA(順投影)を式の中に残し、正則化に相当する部分 Λθk\Lambda_{\theta_k} を学習します。物理モデルを明示できる点は画像後処理だけのネットワークにはない利点ですが、有限回の更新や学習済み演算子がデータ整合性を自動的に保証するわけではありません。最終出力の残差 Ax^pA\hat x-p も評価する必要があります。

初期像 x⁰(FBP)ブロック 0Aᵀ(Ax−p)Λθブロック 1Aᵀ(Ax−p)Λθブロック 2Aᵀ(Ax−p)Λθx⁰x³ = x̂測定サイノグラム p物理(固定)Aᵀ(Ax−p)学習ブロック Λ_θ第 7 章の 1 反復 ≒ 1 ブロック

展開型ネットワーク。反復を有限個のブロックに展開し、物理モデル A は固定のまま、正則化に当たる Λ_θ だけを学習する。

拡散モデル・生成事前分布:ノイズから画像を段階的に生成する拡散モデルを「CT 画像らしさ」の事前分布として使い、測定データとの整合を条件に生成を誘導する方法です。スパースビューや超低線量など欠損の大きい問題で強力ですが、生成モデルであるだけにハルシネーションの管理がいっそう重要になります。

臨床の DLR:Canon の AiCE、GE の TrueFidelity、Philips の Precise Image など、複数のベンダーが深層学習再構成を臨床装置へ導入しています。製品ごとに学習データ、損失関数、再構成パイプラインは異なり、詳細が公開されていない場合もあります。ノイズや読影者評価の改善は報告されていますが、効果は部位、線量、病変検出タスク、比較対象によって変わります。

深層学習を使うときの要点

FBP は解析的な逆変換を使い、逐次近似は物理モデルと明示的な正則化を使います。深層学習では、正則化に相当する性質の一部をデータから学びます。その効果は学習データの分布に依存するため、未知の撮影条件や病変で同じ性能が得られるとは限りません。出力画像だけでなく、データ整合性やタスクベースの指標を含めて評価することが重要です。

参考文献

このページの内容