RegularStepGradientDescent

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

Описание

Объект 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');

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

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

Алгоритмы

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

Представленный в R2012a