RegularStepGradientDescent

Регулярное строение оптимизатора градиентного спуска

Описание

A RegularStepGradientDescent объект описывает регулярное строение оптимизации градиентного спуска, которую вы передаете в функцию imregister для решения проблем регистрации изображений.

Создание

Можно создать RegularStepGradientDescent объект с использованием следующих методов:

  • imregconfig - Возвращает RegularStepGradientDescent объект в паре с соответствующей метрикой для регистрации мономодальных изображений

  • Вход

    metric = registration.optimizer.RegularStepGradientDescent;
    в командной строке создает RegularStepGradientDescent объект с настройками по умолчанию

Свойства

расширить все

Допуск величины градиента, заданный как положительная скалярная величина. GradientMagnitudeTolerance управляет процессом оптимизации. Когда значение градиента меньше GradientMagnitudeToleranceэто указывает, что оптимизатор мог выйти на плато.

Типы данных: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Допуск для сходимости, заданный как положительная скалярная величина. MinimumStepLength управляет точностью сходимости. Если вы задаете MinimumStepLength для небольшого значения оптимизация занимает больше времени, но, вероятно, она сходится по более точному метрическому значению.

Типы данных: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Начальная длина шага, заданная как положительная скалярная величина. Начальная длина шага является максимальной длиной шага, потому что оптимизатор уменьшает размер шага во время сходимости. Если вы задаете MaximumStepLength до большого значения время расчета уменьшается. Однако оптимизатор может не сходиться, если вы задаете MaximumStepLength к слишком большому значению.

Типы данных: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Максимальное количество итераций, заданное как положительный целочисленный скаляр. MaximumIterations является положительное скалярное целое число значением, которое определяет максимальное количество итераций, которые выполняет оптимизатор на любом заданном уровне пирамиды. Регистрация может сходиться, прежде чем оптимизатор достигнет максимального количества итераций.

Типы данных: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Коэффициент сокращения длины шага, заданный как положительная скалярная величина между 0 и 1. RelaxationFactor задает скорость, с которой оптимизатор уменьшает размер шага во время сходимости. Всякий раз, когда оптимизатор определяет, что направление градиента изменилось, он уменьшает размер длины шага. Если ваша метрика шумная, можно задать RelaxationFactor к большему значению. Это приводит к более стабильной сходимости за счет времени расчета.

Типы данных: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

Примеры

свернуть все

Создайте RegularStepGradientDescent объект и использовать его для регистрации двух изображений с одинаковой яркостью и контрастностью.

Прочтите эталонное изображение и создайте незарегистрированную копию.

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

Просмотрите несовпадающие изображения.

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

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

Создайте объект строения оптимизатора, подходящий для регистрации мономодальных изображений.

optimizer = registration.optimizer.RegularStepGradientDescent
optimizer = 
  registration.optimizer.RegularStepGradientDescent

  Properties:
    GradientMagnitudeTolerance: 1.000000e-04
             MinimumStepLength: 1.000000e-05
             MaximumStepLength: 6.250000e-02
             MaximumIterations: 100
              RelaxationFactor: 5.000000e-01

Создайте объект строения метрики.

metric = registration.metric.MeanSquares;

Измените строение оптимизатора, чтобы получить большую точность.

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

Выполните регистрацию.

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

Просмотр зарегистрированных изображений.

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

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

Алгоритмы

Регулярная оптимизация градиентного спуска шага регулирует параметры преобразования так, чтобы оптимизация следовала градиенту метрики подобия изображения в направлении экстремы. Он использует шаги постоянной длины вдоль градиента между расчетами, пока градиент не изменит направление. На данной точке длина шага уменьшается на основе RelaxationFactor, что по умолчанию уменьшает длину шага вдвое.

Введенный в R2012a