Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

OnePlusOneEvolutionary

(1+1) 進化のオプティマイザー構成

説明

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

作成

OnePlusOneEvolutionary オブジェクトは以下の方法を使用して作成できます。

  • imregconfig — マルチモーダル イメージのレジストレーションのための適切なメトリクスとペアになった OnePlusOneEvolutionary オブジェクトを返します

  • 以下のコマンド

    metric = registration.optimizer.OnePlusOneEvolutionary;
    をコマンド ラインに入力すると、OnePlusOneEvolutionary オブジェクトが既定の設定で作成されます

プロパティ

すべて展開する

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

データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

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

データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

探索半径の初期サイズ。正のスカラーとして指定します。InitialRadius を大きな値に設定すると、計算時間が減ります。ただし、InitialRadius の値が大きすぎると、最適化が収束しなくなる可能性もあります。

データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

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

データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

すべて折りたたむ

OnePlusOneEvolutionary オブジェクトを作成し、これを使用して、異なるプロトコルを使って取得された膝の 2 個の MRI イメージのレジストレーションを行います。

イメージをワークスペースに読み取ります。明度およびコントラストが異なるため、イメージはマルチモーダルになります。

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

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

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

Figure contains an axes object. The axes object contains an object of type image.

マルチモーダル イメージのレジストレーションに適しているオプティマイザー構成オブジェクトを作成します。

optimizer = registration.optimizer.OnePlusOneEvolutionary
optimizer = 
  registration.optimizer.OnePlusOneEvolutionary

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

マルチモーダル イメージのレジストレーションに適しているメトリクス構成オブジェクトを作成します。

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');

Figure contains an axes object. The axes object contains an object of type image.

アルゴリズム

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

参照

[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.

拡張機能

バージョン履歴

R2012a で導入

すべて展開する