OnePlusOneEvolutionary

Строение оптимизатора «один плюс один»

Описание

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

Создание

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

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

  • Вход

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

Свойства

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

Чтение изображений в рабочую область. Изображения являются мультимодальными, потому что они имеют разную яркость и контрастность.

fixed  = dicomread('knee1.dcm');
moving = dicomread('knee2.dcm');

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

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

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

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

optimizer = registration.optimizer.OnePlusOneEvolutionary
optimizer = 
  registration.optimizer.OnePlusOneEvolutionary

  Properties:
         GrowthFactor: 1.050000e+00
              Epsilon: 1.500000e-06
        InitialRadius: 6.250000e-03
    MaximumIterations: 100

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

metric = registration.metric.MattesMutualInformation;

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

optimizer.InitialRadius = 0.009;
optimizer.Epsilon = 1.5e-4;
optimizer.GrowthFactor = 1.01;
optimizer.MaximumIterations = 300;

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

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

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

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

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

Алгоритмы

Эволюционный алгоритм итерирует, чтобы найти набор параметров, которые дают наилучший возможный результат регистрации. Он делает это, возмущая, или мутируя, параметры от последней итерации ( родительского элемента). Если новые (дочерние) параметры дают лучший результат, то ребенок становится новым родительским элементом, параметры которого возмущены, возможно, более агрессивно. Если родительский элемент даёт лучший результат, он остается родительским элементом, а следующее возмущение менее агрессивно.

Ссылки

[1] Styner, M., C. Brechbuehler, G. Székely, and G. Gerig. «Параметрическая оценка неоднородностей интенсивности, применяемых к МРТ». Транзакции IEEE по медицинской визуализации. Том 19, № 3, 2000, стр. 153-165.

Введенный в R2012a