Как вы измеряете изменения с помощью CNN

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

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

1. Выявляйте соответствующие изменения и игнорируйте другие.

Важно, чтобы любая модель умела игнорировать изменения, не относящиеся к нашему варианту использования, и определяла ТОЛЬКО те, которые нам интересны. Для обнаружения изменений в зданиях с течением времени это может включать игнорирование изменений в дорогах, деревьях и воде. тела, для обнаружения старения другие изменения лица, такие как загар или появление новых не связанных между собой пятен / родинок, не будут иметь значения.

2. Будьте достаточно надежными, чтобы учесть немного разные условия ориентации / освещения.

Это скорее проблема нормализации данных, поскольку изображения, снятые с течением времени, будут иметь различия, которые было бы трудно устранять постоянно. Если изображения лиц снимаются с помощью смартфона, условия освещения и ориентации никогда не будут прежними. Точно так же изображения, полученные с помощью спутников, могут быть подвержены переменному облачному покрову, отражению солнечного света и изменениям азимутальных углов и углов места самого спутника.

3. Будьте модульными

Этот критерий в основном разделяет технику моделирования на 2 ячейки, в одной из которых можно выделить компоненты внутри модели, а в другой - нет. Техника, которая позволяет вам в некоторой степени изолировать различные части конвейера модели, в значительной степени лучше, поскольку вы можете затем использовать предварительно созданные части, которые построили другие, и объединить их вместе (зачем изобретать велосипед, как они говорят). Это станет более ясным, когда мы поговорим о Early Fusion Networks и их сравнении с сиамскими сетями.

Исходя из этих критериев, самый простой и легкий способ измерения изменений, то есть использование поэлементной разницы пикселей, не имеет значения. Есть способы сделать это более разумно, но результаты все еще намного хуже и не очень надежны. Сиамские сети спешат на помощь!

Сиамская сеть

Сиамская нейронная сеть принимает два изображения в качестве входных данных (захваченных с двумя разными временными метками), пропускает их через серию сверточных слоев, чтобы получить вектор признаков более высокого порядка для них обоих, а затем сравнивает эти векторы, используя евклидову норму для измерения изменений. . Идея состоит в том, что два изображения, в которых нет релевантных изменений, дадут одинаковые векторы в пространственном пространстве вектора признаков.

Важно отметить, что оба изображения проходят через одну и ту же сеть на этапе извлечения признаков.

Давайте посмотрим, как модели этого типа корректируют веса на этапе обучения.

Контрастная потеря

Для обучения сиамских сетей используется функция Contrastive Loss, которая пытается минимизировать расстояние между двумя векторами признаков, если нет изменений, и наоборот. Следующий наглядный пример пытается объяснить это в случае сценария классификации с двумя классами.

Давайте быстро и интуитивно посмотрим на это. Если оба изображения не содержат изменений, которые мы обучаем, фактическая метка будет равна 1. Если веса модели неверны, расстояние между векторами v1 и v2 будут высокими. Подставив обе эти вещи в формулу, мы получим высокое значение потерь L. Включается обратное распространение, и для уменьшения потерь оно регулирует веса таким образом, чтобы расстояние между векторами было меньше, чем раньше (для этого конкретного набора изображений). Запас m вводится для того, чтобы сеть могла создавать еще больше отдельных функций для изображений с изменениями.

Ранние сети Fusion

Существует очень похожий класс архитектур, популярных для обнаружения изменений, который носит название сетей Early Fusion (EF). Он включает в себя сначала объединение обоих входов по оси канала. Итак, если мы работаем с изображениями RGB, на входе будет 6-мерная матрица. На этот раз он будет проходить через одну сеть прямого распространения вместо двух параллельных в сиамских сетях.

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

Предположим, например, вы хотите увидеть изменения в том, как здания в определенном регионе изменились после решения местного правительства 5 лет назад вложить огромные средства в строительство корпоративных парков и торговых центров. Итак, у вас есть аннотированные данные о зданиях до инвестиций и после того, как они будут полностью построены. Было бы намного лучше, если бы модель, которую мы собираемся использовать, также могла бы использовать знания из других обобщенных и разнообразных наборов данных контуров зданий, состоящих из плиток и плиток изображений из городов по всему миру.

Способность сиамских сетей обеспечивать трансферное обучение, безусловно, является самой большой причиной их преимущества перед другими методами.

Как говорится, перемены - единственная константа. И именно это изменение при конкретной оценке может дать очень важные выводы.

использованная литература

  1. Ян Чжань, Кун Фу, Обнаружение изменений на основе глубинно-сиамской сверточной сети для оптических аэрофотоснимков (2017): https://www.semanticscholar.org/paper/Change-Detection-Based-on-Deep-Siamese -Сеть-для-Чжань-Фу / b702cf22afb725b1bf9d633ffdd96cfb00a87253
  2. Тянью Сонг, Реализация Pytorch: Siamese Network (2017): https://tianyusong.com/2017/11/16/pytorch-implementation-siamese-network/
  3. Мэтью Д. Ли, Кен Чанг и др., Сиамские нейронные сети для непрерывной оценки серьезности заболеваний и выявления изменений в медицинской визуализации (2020): https://www.nature.com/articles/s41746-020-0255-1
  4. Родриго Кайе Дауд, Бертран Ле Со, Обнаружение городских изменений для многоспектрального наблюдения Земли с использованием сверточных нейронных сетей (2018): https://www.groundai.com/project/urban-change-detection-for-multispectral-earth-observation- с использованием сверточных нейронных сетей
  5. Бо Фанг, Ли Пан, Сиамская структура на основе двойного обучения для обнаружения изменений с использованием би-темпоральных изображений оптического дистанционного зондирования VHR (2019): https://www.mdpi.com/2072-4292/11/11/1292