exponenta event banner

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