メインコンテンツへスキップ
医療画像の前処理
レッスン 2 / 7|15分で読めます

医療画像の前処理

AIモデルの性能を最大限に引き出すための画像前処理技術。リサイズ、正規化、ノイズ除去、データ拡張の手法と医療画像特有の注意点を学びます

なぜ画像前処理が必要なのか

前処理の3つの目的(画質改善・入力統一・学習安定化)を上から下へ積み重ねたピラミッド図
前処理の目的は画質改善・入力統一・学習安定化の3層に整理でき、いずれも欠くことができません。

画像前処理とは、AIモデルに画像を投入する前に、画像を整理・変換・改善するプロセスです。前処理の品質はモデル性能に直結します。

前処理の3つの目的

  1. 画質の改善:ノイズやアーティファクトを低減し、病変の視認性を向上させる
  2. 入力の統一:異なる装置・撮影条件から得られた画像をモデルが受け入れ可能な形式に揃える
  3. 学習の安定化:値の範囲やスケールを統一し、勾配の発散や収束不良を防ぐ

医療画像が抱える課題

医療画像には、一般的な自然画像とは異なる課題があります。

  • ノイズ:低線量CTや高感度MRIでは信号対雑音比(SNR)が低下する
  • コントラスト不足:軟部組織間の濃度差がわずかで、病変と正常組織の区別が困難
  • 解像度の不統一:装置のメーカーやプロトコルにより画素サイズが異なる
  • アーティファクト:金属アーティファクト(CT)、動きアーティファクト(MRI)、音響陰影(超音波)など

視点

前処理は「地味だが致命的」

モデルのアーキテクチャ改善に注力しがちですが、前処理パイプラインの不備が性能のボトルネックになるケースは少なくありません。特に施設間のデータ統合時には前処理の標準化が成否を分けます。


基本的な前処理手法

リサイズ・Min-Max正規化・Z-score正規化・CLAHEの4手法を横並びで並べ、各手法の入出力イメージを示した比較図
リサイズ・正規化・コントラスト調整の3手法は前処理パイプラインの基本セットです。

リサイズ

CNNは固定サイズの入力を期待するため、画像サイズの統一は必須です。

設計上のポイント:

  • 入力サイズは224×224、512×512などモデルのアーキテクチャに合わせて選択
  • アスペクト比を維持するためパディングを併用する場合がある
  • 補間方法にはバイリニア補間やバイキュービック補間を使用(最近傍補間はジャギーが出やすい)

注意

リサイズと病変サイズの関係

過度な縮小は微小病変の情報を失わせます。肺結節検出では512×512以上、皮膚病変では元画像の解像度を可能な限り保持することが推奨されます。タスクの要件に応じた入力サイズの選定が重要です。

正規化

ピクセル値を一定の範囲にスケーリングします。

Min-Max正規化: ピクセル値を0〜1の範囲に線形変換する最も基本的な手法です。計算式は (x - min) / (max - min) です。

Z-score正規化: 平均を0、標準偏差を1にする標準化です。事前学習モデル(ImageNet)を使う転移学習では、ImageNetの平均・標準偏差で正規化するのが一般的です。

ウィンドウ処理(CT特有): CT画像ではHounsfield Unit(HU)の範囲をウィンドウ幅・ウィンドウレベルで制限し、目的の組織のコントラストを最大化します。肺野(W:1500, L:-600)と縦隔(W:350, L:50)では見える構造が大きく異なります。

コントラスト調整

  • ヒストグラム均等化:ピクセル値の分布を均一化し、全体のコントラストを改善
  • CLAHE(Contrast Limited Adaptive Histogram Equalization):局所領域ごとにヒストグラム均等化を適用し、局所コントラストを向上。医療画像では最も頻用される手法
  • コントラストストレッチ:使用されているピクセル値の範囲を拡張

ノイズ除去

ガウシアン・メディアン・バイラテラル・Non-local Meansの4フィルタをエッジ保持性能と処理速度の2軸で2x2グリッドに配置した比較図
ノイズ除去フィルタはエッジ保持性能と処理速度のトレードオフで選択します。

医療画像のノイズの種類

  • ガウシアンノイズ:撮像機器に起因するランダムな輝度変動。MRIやCTで普遍的に存在
  • ソルト&ペッパーノイズ:白い点と黒い点がランダムに散在。デジタル伝送エラーなどで発生
  • ポアソンノイズ:X線やCTで支配的。フォトン数に依存し、低線量撮影で顕著

ノイズ除去フィルタ

ガウシアンフィルタ

周囲のピクセルとの加重平均でノイズを平滑化します。処理が高速ですが、エッジもぼけるため微細構造の保持には不向きです。

メディアンフィルタ

近傍ピクセルの中央値で置換します。ソルト&ペッパーノイズの除去に有効で、エッジの保持性能がガウシアンフィルタより優れています。

バイラテラルフィルタ

空間的な距離と輝度の類似性の両方を考慮する適応型フィルタです。エッジを保持しながらノイズを除去できますが、計算コストは高くなります。

Non-local Means

画像全体から類似パッチを検索し、加重平均で復元する高度な手法です。MRIのノイズ除去で特に優れた結果を示します。

比較

フィルタ選択の指針

処理速度重視ならガウシアンフィルタ、エッジ保持が重要ならバイラテラルフィルタ、高画質が求められるMRIにはNon-local Meansが適しています。臨床タスクの要件とパイプライン全体の処理時間を考慮して選択しましょう。


データ拡張

元画像から回転・反転・スケーリング・輝度調整の4変換が放射状に派生し、複数の拡張画像を生成する様子を示したハブアンドスポーク図
データ拡張は1枚の元画像から複数の訓練サンプルを生成し、過学習を抑制します。

データ拡張の目的

データ拡張(Data Augmentation)は、既存の画像に変換を加えて訓練データを擬似的に増やす手法です。

  • データセットの実質的な拡大
  • 過学習の抑制
  • モデルの汎化性能の向上

幾何学的変換

  • 回転:小角度(±15°程度)の回転が一般的。胸部X線では大角度回転は不自然になる
  • 反転:水平反転は多くのタスクで有効。ただし、心臓の位置(左寄り)を前提とするモデルでは注意が必要
  • スケーリング:拡大・縮小により異なるサイズの病変への対応力を強化
  • 平行移動:画像を上下左右にシフト。ROIが画像端に位置するケースへの対応

色・輝度変換

  • 明度調整:撮影条件の違いを模擬
  • コントラスト調整:装置間の差異をシミュレート
  • ガンマ補正:非線形な明度変換

医療画像でのデータ拡張の注意点

一般画像で有効な拡張が医療画像では不適切な場合があります。

  • 解剖学的妥当性:上下反転は内臓配置を逆転させるため、多くのモダリティで使用不可
  • 病変情報の保持:過度なクロップやぼかしが病変を消失させないか検証が必要
  • クラス固有の拡張:正常画像と異常画像で適用すべき拡張が異なる場合がある

注意

医療画像データ拡張の落とし穴

左右反転は自然画像では定番ですが、胸部X線で心臓が右側に来る画像は右胸心(dextrocardia)と誤認される可能性があります。拡張手法は必ず放射線科医のレビューを経てから採用しましょう。


実践:モダリティ別の前処理パイプライン

胸部X線・CT・MRIの3モダリティについて、各前処理ステップを左から右の横フローで並べた3行構成のパイプライン比較図
モダリティごとに前処理ステップの内容と順序が異なり、特にCTのウィンドウ処理とMRIのバイアスフィールド補正は固有の工程です。

胸部X線画像

  1. リサイズ:512×512ピクセルに統一(アスペクト比を維持しパディング)
  2. 正規化:ピクセル値を0〜1にMin-Max正規化
  3. CLAHE適用:clipLimit=2.0、tileGridSize=8×8
  4. データ拡張:回転(±10°)、水平反転、明度調整

CT画像

  1. ウィンドウ処理:目的に応じたウィンドウ幅・レベルの設定(肺野/縦隔/骨条件)
  2. リサイズ:モデルの入力サイズに合わせて調整
  3. 正規化:ウィンドウ処理後のHU値を0〜1に変換
  4. スライス選択:3D入力なら連続スライス、2Dなら代表スライスの選択

MRI画像

  1. バイアスフィールド補正:N4ITKなどで磁場不均一による輝度ムラを補正
  2. 強度標準化:施設間・撮影間の信号強度差を揃える
  3. ノイズ除去:Non-local Meansフィルタの適用
  4. 正規化:Z-score正規化

まとめ

  • 画像前処理はモデル性能を左右する重要なパイプライン工程
  • リサイズ・正規化・コントラスト調整は基本3手法として必ず実装する
  • ノイズ除去はモダリティとタスクに応じてフィルタを選択する
  • データ拡張は強力だが、医療画像では解剖学的妥当性の確認が必須

次のレッスンでは、画像認識の中核技術であるCNN(畳み込みニューラルネットワーク)のアーキテクチャと学習メカニズムを掘り下げます。


セルフチェック

1. CT画像の前処理で、肺野と縦隔の描出を切り替えるために使用する手法はどれですか?

2. 胸部X線画像のデータ拡張で注意すべき点として、最も適切なものはどれですか?

3. MRI画像の前処理でバイアスフィールド補正を行う理由として正しいものはどれですか?

明日のアクション

Pythonでシンプルな前処理パイプラインを実装してみましょう。OpenCVとNumPyを使って、任意の画像に対してリサイズ(512×512)→ 正規化(0〜1)→ CLAHE適用の3ステップを順番に実行するスクリプトを書き、各ステップの画像を比較してみてください。