ドキュメンテーション

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

registration.optimizer.RegularStepGradientDescent クラス

パッケージ: registration.optimizer

規則的なステップ勾配降下オプティマイザー構成オブジェクト

説明

RegularStepGradientDescent オブジェクトは、イメージ レジストレーションの問題を解決するために関数 imregister に渡す規則的なステップ勾配降下による最適化の構成を記述します。

構築

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

プロパティ

GradientMagnitudeTolerance

勾配の大きさの許容誤差。

GradientMagnitudeTolerance は、最適化プロセスを制御する正のスカラー値です。勾配の値が GradientMagnitudeTolerance より小さい場合、オプティマイザーが横ばい状態に達している可能性があります。GradientMagnitudeTolerance の既定値は 1e-4 です。

MinimumStepLength

収束の許容誤差。

MinimumStepLength は、収束の精度を制御する正のスカラー値です。MinimumStepLength を小さい値に設定すると、最適化の計算速度は低下しますが、より正確なメトリクスの値に収束する可能性が高くなります。MinimumStepLength の既定値は 1e-5 です。

MaximumStepLength

初期ステップ長。

MaximumStepLength は、最適化に使用する初期ステップ長を制御する正のスカラー値です。MaximumStepLength を大きな値に設定すると、計算時間が減ります。ただし、MaximumStepLength の設定値が大きすぎる場合、オプティマイザーが収束しない可能性があります。MaximumStepLength の既定値は 0.0625 です。

MaximumIterations

最大反復数。

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

RelaxationFactor

ステップ長の減少係数。

RelaxationFactor は、オプティマイザーが収束中にステップ サイズを減らす速度を定義する 0 ~ 1 のスカラー値です。オプティマイザーは、勾配の向きが変更されたと判断すると、ステップ長のサイズを減らします。メトリクスにノイズが含まれる場合、RelaxationFactor をより大きい値に設定できます。その結果、計算時間が長くなりますが、収束の安定性は向上します。RelaxationFactor の既定値は 0.5 です。

コピーのセマンティクス

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

すべて展開する

RegularStepGradientDescent オブジェクトを作成し、これを使用して同じデバイスでキャプチャされた 2 つのイメージのレジストレーションを行います。

参照イメージを読み取って、レジストレーションが行われていないコピーを作成します。

fixed  = imread('pout.tif');
moving = imrotate(fixed, 5, 'bilinear', 'crop');

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

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

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

optimizer = registration.optimizer.RegularStepGradientDescent

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

metric = registration.metric.MeanSquares;

より良い精度を得るために、ここでオプティマイザー構成を変更します。

optimizer.MaximumIterations = 300;
optimizer.MinimumStepLength = 5e-4;

レジストレーションを実行します。

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

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

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

アルゴリズム

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

規則的なステップ勾配降下による最適化では、最適化がイメージ類似度メトリクスの勾配に沿って極値の方向に進むように、変換パラメーターが調整されます。勾配の方向が変わるまでは各計算間で勾配に沿って一定長のステップを使用し、方向が変わった時点でステップ長を半分に減らします。

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

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