ドキュメンテーション

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

registration.optimizer.OnePlusOneEvolutionary クラス

パッケージ: registration.optimizer

1 プラス 1 の進化のオプティマイザー構成オブジェクト

説明

OnePlusOneEvolutionary オブジェクトは、イメージ レジストレーションの問題を解決するために関数 imregister に渡す 1 プラス 1 の進化の最適化の構成を記述します。

構築

optimizer = registration.optimizer.OnePlusOneEvolutionary()OnePlusOneEvolutionary オブジェクトを作成します。

プロパティ

GrowthFactor

探索範囲の成長係数。

GrowthFactor は、パラメーター空間で探索範囲を広げる速度を制御するためにオプティマイザーが使用する正のスカラー値です。GrowthFactor を大きな値に設定すると、最適化の速度は向上しますが、メトリクスの局所的な極値だけが検索される結果となることがあります。GrowthFactor を小さい値に設定すると、最適化の速度は低下しますが、より良い解に収束する可能性が高くなります。GrowthFactor の既定値は 1.05 です。

Epsilon

探索範囲の最小サイズ。

Epsilon は、探索範囲の最小サイズを調整して収束の精度を制御する正のスカラー値です。Epsilon を小さい値に設定すると、メトリクスの最適化の精度は高まりますが、計算にかかる時間が長くなります。Epsilon を大きい値に設定すると、計算の所要時間が短くなりますが、精度は損なわれます。Epsilon の既定値は 1.5e-6 です。

InitialRadius

探索範囲の初期サイズ。

InitialRadius は、オプティマイザーの初期の探索範囲を制御する正のスカラー値です。InitialRadius を大きな値に設定すると、計算時間が減ります。ただし、InitialRadius の値が大きすぎると、最適化が収束しなくなる可能性もあります。InitialRadius の既定値は 6.25e-3 です。

MaximumIterations

オプティマイザー最大反復数。

MaximumIterations は、オプティマイザーが任意に与えられるピラミッド レベルで実行する最大反復数を決定する正のスカラー整数値です。レジストレーションは、オプティマイザーが最大反復数に到達する前に収束する場合があります。MaximumIterations の既定値は 100 です。

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、MATLAB® ドキュメンテーションの「オブジェクトのコピー」 (MATLAB)を参照してください。

すべて展開する

異なるプロトコルを使って取得された膝の 2 枚の MRI イメージのレジストレーションを行います。

イメージをワークスペースに読み取ります。

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

位置のずれたイメージを表示します。

imshowpair(fixed, moving,'Scaling','joint');

異なるセンサーのイメージのレジストレーションを行うのに適しているオプティマイザー構成オブジェクトを作成します。

optimizer = registration.optimizer.OnePlusOneEvolutionary
optimizer = 

  registration.optimizer.OnePlusOneEvolutionary

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

MattesMutualInformation メトリクス構成オブジェクトを作成します。

metric = registration.metric.MattesMutualInformation;

問題が大域的最大値に収束するように、オプティマイザーのプロパティを調整します。オプティマイザーが問題を解くために使用する反復の数を増やします。

optimizer.InitialRadius = 0.009;
optimizer.Epsilon = 1.5e-4;
optimizer.GrowthFactor = 1.01;
optimizer.MaximumIterations = 300;

移動イメージと固定イメージのレジストレーションを行います。

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

レジストレーションが行われたイメージを表示します。

figure
imshowpair(fixed, movingRegistered,'Scaling','joint');

アルゴリズム

関数 imregister はイメージのレジストレーションで反復処理を使用します。imregister に渡すメトリクスは、レジストレーションの精度を評価するためのイメージ類似度メトリクスを定義します。イメージ類似度メトリクスは、2 つのイメージを取って、イメージがどのくらい類似しているかを記述するスカラー値を返します。imregister に渡すオプティマイザーは、類似度メトリクスを最小化または最大化するための方法論を定義します。

進化アルゴリズムは、可能な限り最良のレジストレーション結果を提供する一連のパラメーターを反復により検索します。このプロセスでは最後の反復 (親) からのパラメーターを摂動、つまり突然変異させます。新しい (つまり子の) パラメーターによって結果が改善される場合、その子が新しい親となり、次回の反復ではそのパラメーターをよりアグレッシブに摂動します。親の方がより良い結果につながる場合には、そのまま親として使用され、次回の摂動ではアグレッシブの度合いを低くします。

代替方法

関数 imregconfig を使用して、典型的なイメージ レジストレーション シナリオのオプティマイザー構成を作成します。

参考文献

[1] Styner, M., C. Brechbuehler, G. Székely, and G. Gerig. "Parametric estimate of intensity inhomogeneities applied to MRI." IEEE Transactions on Medical Imaging. Vol. 19, Number 3, 2000, pp. 153-165.

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