医用画像処理の基礎 - DICOM、CT、MRI の画像データと処理技術
医用画像処理の概要 - モダリティと画像の特徴
医用画像処理 (Medical Image Processing) は、CT、MRI、超音波、X 線、PET などの医療画像を解析し、診断支援や治療計画に活用する技術分野です。一般的な画像処理とは異なる固有の課題と要件があります。
主要なモダリティ (撮像装置):
- CT (Computed Tomography): X 線の吸収係数を断層画像化。骨・肺・腹部の診断に使用。解像度 0.5-1mm、16bit (HU 値)
- MRI (Magnetic Resonance Imaging): 水素原子核の磁気共鳴を画像化。軟部組織のコントラストに優れる。解像度 0.5-2mm
- 超音波 (US): 音波の反射で画像化。リアルタイム、非侵襲、低コスト。解像度 1-3mm
- PET (Positron Emission Tomography): 放射性薬剤の分布を画像化。代謝活性を可視化。がんの検出に使用
- X 線: 単純撮影。胸部、骨折の診断。2D 投影画像
医用画像の特殊性:
- 高ビット深度: CT は 12-16bit (4096-65536 階調)。通常の 8bit 画像処理では情報が失われる
- 3D ボリュームデータ: CT/MRI は数百枚のスライス画像で構成される 3D データ
- 異方性ボクセル: スライス内解像度 (0.5mm) とスライス間隔 (1-5mm) が異なる
- 規格準拠: DICOM 規格に従ったデータ管理が必須
医用画像処理では、誤診につながる処理は許されないため、アルゴリズムの信頼性と再現性が最重要視されます。FDA (米国食品医薬品局) や PMDA (日本の医薬品医療機器総合機構) の承認が必要な場合もあります。
DICOM 規格 - 医用画像の標準フォーマット
DICOM (Digital Imaging and Communications in Medicine) は、医用画像の保存・通信・表示に関する国際標準規格です。画像データだけでなく、患者情報、撮影条件、装置情報などのメタデータを統合的に管理します。
DICOM ファイルの構造: DICOM ファイルは「タグ-値」ペアの集合で構成されます。各タグは (グループ番号, エレメント番号) で識別されます。
- (0010,0010): Patient Name - 患者名
- (0020,000D): Study Instance UID - 検査の一意識別子
- (0028,0010): Rows - 画像の行数
- (0028,0011): Columns - 画像の列数
- (0028,1050): Window Center - ウィンドウ中心値
- (0028,1051): Window Width - ウィンドウ幅
- (7FE0,0010): Pixel Data - 画像ピクセルデータ
Python での DICOM 処理: pydicom ライブラリで DICOM ファイルを読み書きできます。ds = pydicom.dcmread('image.dcm') で読み込み、ds.pixel_array で NumPy 配列としてピクセルデータにアクセスします。CT 画像の場合、ピクセル値を HU (Hounsfield Unit) に変換するには hu = pixel_value × RescaleSlope + RescaleIntercept を適用します。
DICOM の階層構造: Patient → Study (検査) → Series (シリーズ) → Instance (画像) の 4 階層で管理されます。1 回の CT 検査で 200-1000 枚のスライス画像が生成され、それぞれが 1 つの DICOM ファイルとなります。PACS (Picture Archiving and Communication System) がこれらを一元管理し、院内ネットワークで配信します。
CT 画像のウィンドウ処理 - HU 値と表示制御
CT 画像は Hounsfield Unit (HU) という物理量で組織の X 線吸収係数を表現します。HU 値の範囲は -1024 から +3071 (12bit) ですが、人間の目は同時に 256 階調程度しか識別できないため、観察したい組織に合わせてウィンドウ (表示範囲) を設定します。
代表的な HU 値:
- 空気: -1000 HU
- 肺: -500 HU
- 脂肪: -100 HU
- 水: 0 HU
- 軟部組織: +40 HU
- 骨 (海綿骨): +300 HU
- 骨 (皮質骨): +1000 HU
ウィンドウ設定の例:
- 肺野条件: WL (Window Level) = -600, WW (Window Width) = 1500。肺の微細構造を観察
- 縦隔条件: WL = 40, WW = 400。軟部組織のコントラストを強調
- 骨条件: WL = 300, WW = 1500。骨折や骨病変を観察
- 脳条件: WL = 40, WW = 80。脳実質の微細な濃度差を検出
ウィンドウ処理の実装:
display_value = (hu_value - (WL - WW/2)) / WW × 255
WL-WW/2 以下は 0 (黒)、WL+WW/2 以上は 255 (白) にクリッピングします。Python では np.clip((hu - (wl - ww/2)) / ww * 255, 0, 255).astype(np.uint8) で実装できます。同じ CT データでもウィンドウ設定を変えることで、肺、骨、軟部組織など異なる構造を選択的に可視化できます。
医用画像のセグメンテーション - 臓器・病変の自動抽出
医用画像セグメンテーションは、画像から特定の臓器や病変領域を自動的に抽出する技術です。治療計画、定量評価、手術ナビゲーションの基盤となる重要な処理です。
従来手法:
- 閾値処理: HU 値の範囲で組織を分離。骨 (> 200HU) や空気 (< -500HU) の抽出に有効
- 領域拡張法: シード点から類似ピクセルを連結的に拡張。肝臓や腎臓の抽出に使用
- Level Set 法: 曲線発展方程式で輪郭を進化させる。複雑な形状に対応可能
- Atlas ベース: 標準脳アトラスとの非剛体レジストレーションで脳領域を分割
深層学習手法:
- U-Net (2015): 医用画像セグメンテーションの標準アーキテクチャ。エンコーダ-デコーダ + スキップ接続で少量データでも高精度。Dice スコア 0.9 以上を多くのタスクで達成
- nnU-Net (2021): データセットに応じてネットワーク構造、前処理、学習パラメータを自動最適化する自己構成型フレームワーク。23 の医用画像セグメンテーションタスクで最高精度を達成
- MONAI: PyTorch ベースの医用画像 AI フレームワーク。3D U-Net、Swin UNETR など最新モデルを提供
3D セグメンテーションの課題: CT/MRI は 3D ボリュームデータのため、2D スライスごとの処理では連続性が保証されません。3D U-Net は 3D 畳み込みで空間的連続性を保持しますが、GPU メモリの制約 (512 × 512x512 で約 16GB) があります。パッチベースの学習とスライディングウィンドウ推論で対処します。
MRI 画像の特徴と処理技術
MRI は強い磁場と高周波パルスで水素原子核の信号を検出し、軟部組織のコントラストに優れた画像を生成します。CT と異なり放射線被曝がなく、撮像パラメータの変更で多様なコントラストが得られます。
MRI のコントラスト:
- T1 強調画像: 脂肪が高信号 (白)、水が低信号 (黒)。解剖学的構造の観察に使用
- T2 強調画像: 水が高信号 (白)、脂肪が中間信号。浮腫や炎症の検出に有効
- FLAIR: 脳脊髄液を抑制した T2 強調。脳病変の検出に最適
- 拡散強調画像 (DWI): 水分子の拡散を画像化。急性期脳梗塞の早期検出に必須
MRI 特有の前処理:
- バイアスフィールド補正: RF コイルの不均一性による輝度ムラを補正。N4ITK アルゴリズムが標準。SimpleITK の
N4BiasFieldCorrectionImageFilterで実装 - 頭蓋骨除去 (Skull Stripping): 脳画像から頭蓋骨・頭皮を除去し、脳実質のみを抽出。BET (FSL) や SynthStrip (FreeSurfer) が代表的ツール
- 標準空間への変換: MNI 空間や Talairach 空間への非剛体レジストレーション。ANTs の SyN アルゴリズムが高精度
定量的 MRI: 近年は T1 マッピング、T2 マッピングなど、組織の物理パラメータを定量的に計測する手法が発展しています。従来の定性的な画像と異なり、数値として組織特性を評価できるため、疾患の早期検出や治療効果の定量評価に活用されています。
医用画像 AI の実践 - 開発から臨床応用まで
医用画像 AI を実際に開発・運用する際の具体的なツール、データセット、規制対応、品質管理について解説します。研究から臨床実装までのパイプラインを示します。
開発ツールとフレームワーク:
- MONAI: NVIDIA と King's College London が開発。医用画像に特化した PyTorch 拡張。3D データローダー、医用画像変換、損失関数を提供
- SimpleITK: ITK の Python ラッパー。レジストレーション、フィルタリング、セグメンテーションの基本処理を提供
- 3D Slicer: オープンソースの医用画像ビューア・解析プラットフォーム。プラグインで機能拡張可能
- FreeSurfer: 脳 MRI の解析に特化。皮質厚計測、脳領域分割の標準ツール
公開データセット:
- MICCAI Challenge: 毎年開催される医用画像解析コンペティション。多様なタスクのデータセットを提供
- Medical Segmentation Decathlon: 10 種類の臓器セグメンテーションタスク。nnU-Net のベンチマーク
- TCIA (The Cancer Imaging Archive): がん画像の大規模アーカイブ。数万症例の CT/MRI を無料公開
規制と品質管理: 医用画像 AI を臨床で使用するには、日本では PMDA のクラス II 医療機器としての承認が必要です。FDA の 510(k) や De Novo 申請も同様です。開発時には IEC 62304 (医療機器ソフトウェアのライフサイクル) に準拠した品質管理が求められます。学習データのバイアス (人種、年齢、装置の偏り) への対策も重要で、多施設データでの検証が推奨されます。