- Статья перенесена из: публичного аккаунта WeChat «Алхимия машинного обучения»
- Автор: Alchemy Brother (авторизованный)
- Контактная информация автора: WeChat cyx645016617
- Название статьи: «Быстрая регистрация симметричных диффеоморфных изображений с помощью сверточных нейронных сетей»
- Ссылка на бумагу:АР Вест V.org/ABS/2003.09…
0 Обзор
1 Обзор дифференциального гомеоморфизма
представляет собой поле деформации с временным интервалом, равным 1. X на приведенном выше рисунке представляет поле деформации, а затем поле деформации плюс скорость поля деформации представляет собой поле деформации с более длинным временным интервалом.
Согласно алгебраической теории групп Ли, вывод таков:, мы можем вывести поле деформации с временным интервалом 1/2 из поля деформации с временным интервалом 1/4.
Из кода предыдущей статьи мы также можем знать, что реализация этой части статьи представляет собой следующую логику: взяв в качестве примера T=7 в SYMnet, каждый временной интервал делится намаленькие абзацы.
- Разделите поле деформации входа модели на, который называется
- пройти черезполучить
- пройти черезполучить
- Наконец получить
2 Структура модели
Идея этой модели заключается в том, что регистрируются два образа X и Y, изначально от X до Y, но теперь нам нужно найти промежуточное состояние Z между X и Y, пусть X зарегистрируется в Z, а затем пусть Y также зарегистрироваться на З.
на картинкеполе деформации от X до Y.
В заключительной части вывода нам обязательно нужно зарегистрироваться от X до Y. Поэтому мы сначала используемПусть X зарегистрируется в промежуточном состоянии Z, а затем используйтеПусть промежуточное состояние Z обратно зарегистрировано Z.
2.1 FCN
Часть извлечения признаков по-прежнему использует U-net (исходный U-net-подобный FCN):
- Вход сети по-прежнему сращивание двух изображений X и Y, 2-канальное изображение;
- В документе говорится, что в конце модели два сверточных слоя со свертывающимся слоем 5 используются для создания двух полей скоростей,
- с последующей активацией softsign
- Затем умножьте его на константу с, чтобы диапазон скоростей находился в [-с, с], а с, указанное в статье, равно 100, что эффективно при больших деформациях;
- За исключением выходного сверточного слоя, за каждым сверточным слоем следует слой активации ReLU.
- Согласно выводу дифференциального гомеоморфизма, если задано T=7, нам нужно толькоВот и все.
3 Функция потерь
- Самая важная потеря - это NCC, который обычно доступен для такого рода задач совмещения изображений. В статье используется NCC, также может использоваться MSE и т. д.
Потери модели SYMnet в статье составляют:
- измерить потерю сходства;
- Используйте определитель Якоби вместо потерь при сглаживании градиента.
3.1 similarity loss
Содержит две части::
- . Это хорошо понятно, то есть есть надежда, что Z, преобразованное из X в промежуточное состояние, и промежуточное состояние Z, преобразованное из Y, будут одинаковыми;
- Это тоже легко понять, т. е. я надеюсь, что Y и Y, преобразованные из X, такие же, как настоящие Y и X;
Среди них стоит отметить:
3.2 Якобианские потери
Автор предлагает потерю якобиана заменить гладкую потерю градиента воксельморфа.
Эта потеря заменяет предыдущую гладкую потерю градиента и уделяет больше внимания согласованности местных направлений. Используя существующие методы, такие как регуляризация L1 или L2, для ограничения градиента поля деформации, эта глобальная регуляризация значительно снизит точность регистрации.
В статье предлагается метод Якобиана, который накладывает ограничение согласованности на локальную ориентацию оцениваемого поля деформации.
где N — количество элементов в поле деформации,функция активации ReLU,представляет детерминант Якоби поля деформации в положении p. Определитель определяется следующим образом:
код показывает, как показано ниже:
def JacboianDet(y_pred, sample_grid):
J = y_pred + sample_grid
dy = J[:, 1:, :-1, :-1, :] - J[:, :-1, :-1, :-1, :]
dx = J[:, :-1, 1:, :-1, :] - J[:, :-1, :-1, :-1, :]
dz = J[:, :-1, :-1, 1:, :] - J[:, :-1, :-1, :-1, :]
Jdet0 = dx[:,:,:,:,0] * (dy[:,:,:,:,1] * dz[:,:,:,:,2] - dy[:,:,:,:,2] * dz[:,:,:,:,1])
Jdet1 = dx[:,:,:,:,1] * (dy[:,:,:,:,0] * dz[:,:,:,:,2] - dy[:,:,:,:,2] * dz[:,:,:,:,0])
Jdet2 = dx[:,:,:,:,2] * (dy[:,:,:,:,0] * dz[:,:,:,:,1] - dy[:,:,:,:,1] * dz[:,:,:,:,0])
Jdet = Jdet0 - Jdet1 + Jdet2
return Jdet
def neg_Jdet_loss(y_pred, sample_grid):
neg_Jdet = -1.0 * JacboianDet(y_pred, sample_grid)
selected_neg_Jdet = F.relu(neg_Jdet)
return torch.mean(selected_neg_Jdet)
It is worth noting that the proposed selective Ja- cobian determinant regularization loss means not to replace the global regularizer. Instead, we utilize both regulariza- tion loss functions in our method to produce smooth and topology-preservation transformations while alleviating the tradeoff between smoothness and registration accuracy.
Автор подчеркивает, что эта потеря Якоби не заменяет предыдущую потерю глобальной регуляризации, но и то, и другое.
Итак, вот потеря регуляризации градиента для L2:
Затем, чтобы также увеличить потери величины, необходимо убедиться, чтоиимеют одинаковую величину:
Таким образом, в целом, эта SYMnet имеет четыре части потерь:
4 результата
Неудивительно, что он оказался лучшим из лучших.
В статье основное внимание уделяется якобианам потерь, поэтому специально сделано влияние различных весов якобианов потерь на конечный результат.
Интересно, хотя автор говорит