ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

多様な MRI イメージのレジストレーション

この例では、imregister を使用して、強度ベースのイメージ レジストレーションにより 2 つの MRI (磁気共鳴画像) を一般的な座標系に自動的に整列させる方法を説明します。他の手法とは異なり、特徴を検索したり、コントロール ポイントを使用したりしません。多くの場合、強度ベースのレジストレーションは医療画像および遠隔測定イメージに適しています。

手順 1: イメージの読み込み

この例では、膝の 2 枚の MRI (磁気共鳴) 画像を使用します。固定イメージはスピン エコー イメージであり、移動イメージは反転回復を行ったスピン エコー イメージです。同時に 2 枚の矢状スライスが取得されますが、ややずれています。

fixed = dicomread('knee1.dcm');
moving = dicomread('knee2.dcm');

関数 imshowpair は、レジストレーション プロセスのあらゆる部分でのイメージの可視化に役立つ関数です。この関数は、モンタージュ形式で 2 枚のイメージを個別に表示したり、2 枚のイメージを重ねて位置ずれの程度を示したりするために使用します。

figure, imshowpair(moving, fixed, 'montage')
title('Unregistered')

imshowpair で重ね合わせたイメージで、灰色の領域は類似した強度の領域に対応し、マゼンタおよび緑色の領域は片方のイメージが他方のイメージよりも明るい部分を示します。イメージの組によっては、緑色およびマゼンタの領域にレジストレーションの誤差が示されない場合もありますが、この例では色の情報を使用して位置ずれが示される箇所を簡単に表示できます。

figure, imshowpair(moving, fixed)
title('Unregistered')

手順 2: 初期レジストレーションの設定

関数 imregconfig を使用すると、imregister での使用に適したオプティマイザーおよびメトリックの構成を簡単に選択できます。この 2 つのイメージは異なる強度分布を取るため、ここでは多モードの構成が示唆されます。

[optimizer,metric] = imregconfig('multimodal');

2 つのイメージ間の歪みには、スケーリング、回転および (場合によっては) せん断が含まれています。イメージのレジストレーションにはアフィン変換を使用します。

imregister によって既定の設定でイメージが完璧に整列することは非常にまれですが、どのプロパティを最初に調整するかを決定するための手段としては有効です。

movingRegisteredDefault = imregister(moving, fixed, 'affine', optimizer, metric);

figure, imshowpair(movingRegisteredDefault, fixed)
title('A: Default registration')

手順 3: レジストレーションの改善

初期レジストレーションはうまくいきませんでした。特に右端に沿って、十分に整列していない領域が、まだかなりあります。オプティマイザーおよびメトリックの構成プロパティを調整して、レジストレーションを改善してみましょう。

オプティマイザーおよびメトリックの変数は、そのプロパティによってレジストレーションを制御するオブジェクトです。

disp(optimizer)
disp(metric)
  registration.optimizer.OnePlusOneEvolutionary

  Properties:
         GrowthFactor: 1.050000e+00
              Epsilon: 1.500000e-06
        InitialRadius: 6.250000e-03
    MaximumIterations: 100
  registration.metric.MattesMutualInformation

  Properties:
    NumberOfSpatialSamples: 500
     NumberOfHistogramBins: 50
              UseAllPixels: 1

オプティマイザーの InitialRadius プロパティでは、パラメーター空間で幾何学的変換を調整するために使用する初期ステップ サイズを制御します。既定のパラメーターでマルチモーダル レジストレーションの問題が収束しない場合は、まず InitialRadius パラメーターを調整することをお勧めします。最初に、InitialRadius の既定値を、スケール係数 3 で小さくします。

optimizer.InitialRadius = optimizer.InitialRadius/3.5;

movingRegisteredAdjustedInitialRadius = imregister(moving, fixed, 'affine', optimizer, metric);
figure, imshowpair(movingRegisteredAdjustedInitialRadius, fixed)
title('Adjusted InitialRadius')

InitialRadius の調整の効果は良好でした。上端および右端のイメージの整列が著しく改善されています。

オプティマイザーの MaximumIterations プロパティでは、オプティマイザーで許可される最大反復回数を制御します。MaximumIterations の値を大きくすると、レジストレーション検索をより長く実行できるため、より良いレジストレーション結果が見つかる可能性があります。反復回数を多くして、前の手順の InitialRadius を使用した場合、レジストレーションは引き続き改善されるでしょうか。

optimizer.MaximumIterations = 300;
movingRegisteredAdjustedInitialRadius300 = imregister(moving, fixed, 'affine', optimizer, metric);

figure, imshowpair(movingRegisteredAdjustedInitialRadius300, fixed)
title('B: Adjusted InitialRadius, MaximumIterations = 300, Adjusted InitialRadius.')

前のレジストレーションで使用したオプティマイザーの InitialRadius 設定を再利用して、オプティマイザーの反復回数を増やすことにより、レジストレーションはさらに改善されました。

手順 4: 初期条件を使用したレジストレーションの改善

移動イメージと固定イメージを関連付ける適切な初期条件をレジストレーションに対して設定できる場合に、最適化ベースのレジストレーションは最適に機能します。レジストレーション結果を改善するための便利な手法は、剛体 ('rigid') などの単純な変換タイプから始めて、その変換結果をアフィン ('affine') などの複雑な変換タイプの初期条件として使用することです。

関数 imregtform では、imregister と同じアルゴリズムを使用しますが、出力として返されるのは、レジストレーションされた出力イメージではなく、幾何学的変換オブジェクトです。相似 ('similarity') モデル (変換、回転およびスケール) に基づいて初期変換を推定するには、imregtform を使用します。

前のレジストレーション結果では、オプティマイザーの MaximumIterations プロパティと InitialRadius プロパティを変更後に改善が見られました。レジストレーションをさらに調整しながら、初期条件を使用する間は、オプティマイザーのこれらの設定を保持してください。

tformSimilarity = imregtform(moving,fixed,'similarity',optimizer,metric);

レジストレーションは、既定の MATLAB 座標系 (固有座標系とも呼ばれます) で解決されているため、固定イメージの位置と解像度を定義する既定の空間参照オブジェクトを入手してください。

Rfixed = imref2d(size(fixed));

imwarp を使用して、imregtform からの幾何学的変換出力を移動イメージに適用し、固定イメージと揃えます。imwarp の 'OutputView' オプションを使用して、リサンプリングされた出力イメージのワールド座標範囲と解像度を指定します。'OutputView' として Rfixed を指定すると、リサンプリングされた移動イメージの解像度とワールド座標範囲が、固定イメージと同じになります。

movingRegisteredRigid = imwarp(moving,tformSimilarity,'OutputView',Rfixed);
figure, imshowpair(movingRegisteredRigid, fixed);
title('C: Registration based on similarity transformation model.');

出力された幾何学的変換の "T" プロパティは、移動イメージ内のポイントを固定イメージ内の対応するポイントにマッピングする変換行列を定義します。

tformSimilarity.T
ans =

    1.0331   -0.1110         0
    0.1110    1.0331         0
  -51.1491    6.9891    1.0000

幾何学的変換の初期条件として相似 ('similarity') の結果を使用するアフィン ('affine') 変換モデルを使用することにより、imregister で 'InitialTransformation' の Name/Value を使用して、このレジストレーションを調整します。レジストレーションの調整後の推定には、せん断の可能性が含まれます。

movingRegisteredAffineWithIC = imregister(moving,fixed,'affine',optimizer,metric,...
    'InitialTransformation',tformSimilarity);
figure, imshowpair(movingRegisteredAffineWithIC,fixed);
title('D: Registration from affine model based on similarity initial condition.');

'InitialTransformation' を使用して、完全なアフィン モデルを使用する imregtform の 'similarity' の結果を調整した場合も、良いレジストレーション結果が得られました。

手順 5: 妥当な改善程度の決定

imregister の実行結果を別の設定および初期条件と比較すると、imregister で変更可能な入力パラメーターは多数あり、それぞれが異なるレジストレーション結果を生じさせる可能性があることがわかります。

figure
imshowpair(movingRegisteredDefault, fixed)
title('A - Default settings.');

figure
imshowpair(movingRegisteredAdjustedInitialRadius, fixed)
title('B - Adjusted InitialRadius, 100 Iterations.');

figure
imshowpair(movingRegisteredAdjustedInitialRadius300, fixed)
title('C - Adjusted InitialRadius, 300 Iterations.');

figure
imshowpair(movingRegisteredAffineWithIC, fixed)
title('D - Registration from affine model based on similarity initial condition.');

2 つのイメージの整列を 1 つの品質メトリックで正確に表現することはできないため、レジストレーション結果を量的に比較することは困難な場合があります。多くの場合、レジストレーション結果は、結果を可視化することによって質的に判断しなければなりません。上記の結果では、C) と D) のレジストレーション結果はいずれも非常に良好で、見分けるのは困難です。

手順 6: 別の可視化手法

多様なレジストレーションの品質が改善されると、レジストレーションの品質を視覚的に判断することはさらに難しくなることがよくあります。これは、位置のずれた領域が、強度の差が原因で不明瞭になる場合があるためです。imshowpair を別の表示モードに切り替えることで、表示されていなかった詳細情報が明らかになることがあります (そうでない場合もあります)。

この情報は役に立ちましたか?