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

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