Авторы статьи решают задачу image manipulation detection and localization, где для предложенной картинки нужно определить, есть ли изменения вида splicing, copy-move, removal и, если есть, вывести маску, где эти изменения применены.
Пример картинок с изменением и соответствующими масками.
Исследователи реализуют архитектуру сети на основе HRNet и предложенного SCCM модуля для нахождения spatial и channel-wise корреляций. Сеть состоит из Top-down и Bottom-up проходов. В первом проходе из исходной картинки извлекаются признаки четырёх разных размерностей с помощью HRNet. Далее во втором проходе каждый из четырёх наборов признаков пропускается через SCCM и Detection Head, благодаря чему удаётся оценить вероятность того, что картинка была изменена, и узнать маску предполагаемого изменения.
Полученная архитектура работает и обучается быстрее предшественников и при этом станосится SOTA подходом в задачах детекции и локализации.
Исходная картинка пропускается через HRNetV2p-W18, благодаря чему получается четыре набора признаков размерностей
Основное нововведение статьи состоит в предложенном способе находить spatial и channel-wise корреляции, а затем объединять их.
Прежде всего к признаками применяется функция
Далее применяются
После чего происходит вычисление spatial and channel-wise attentions и их upsampling(
В конце концов вычисляются residuals и искомая маска.
Обучение происходит на binary cross-entropy loss, который учитывает качество детекции и всех полученных масок.
Обучение происходило на 116,583 картинках с splicing class, 100,000 с copy-move class, 78,246 с removal class, и 81,910 фотограций без изменений. В статье также подробно описан способ генерации этих данных для обучения.
На вход подавались картинки размером 256x256, обучение просходило с batch size = 10 и learning rate 2e-4 с уменьшением вдвое каждые пять эпох(всего их 25) на Nvidia GTX 1080Ti. Всего 2M параметров на HRNet(бралась предобученная на ImageNet), 0,9M на Detection Head и 0,7M на остальную часть Bottom-up пайплайна.
В качестве метрик в статье используют F1 и AUC и измеряют качество для задач локализации и детекции отдельно. Кроме этого, для задачи локализации ещё делают дообучение под домен датасета, на котором считается оценка.
Оригинальный PSCC-Net показывает лучшее качество на датасетах Columbia, CASIA, NIST16 и IMD20. На Coverage он оказывается вторым(table II). Дообученная модель стала лучшей на датасетах Coverage, CASIA, NIST16(table III).
В задаче детекции PSCC-Net также показала лучшие результаты среди других моделей.
Все эти результаты приводят исследователей к выводу о том, что их модель становится SOTA подходом на момент выхода статьи.
- Взять HRNet с большим числом параметров, чем в предложенной статье. Например HRNet W64(вместо W18, как в статье).
- Увеличить число параметров в SCCM блоке, уменьшив параметр
$r$ до двух. Эта идея позволит уменьшить проблему боттленека(про которую авторы даже не писали) во время применения функции$h$ . Сейчас их опасение про недостаток видеопамяти менее актуально ввиду появления всё более новых видеокарт. - Попробовать взять другой энкодер (например EfficientNet или какой-нибудь ViT) и отказаться от применения четырёх разных слоёв для генерации масок, вместо этого использовать только один SCCM. Применение четырёх разных слоёв выглядит довольно нецелостно и у меня есть интуитивное ощущение, что эту часть можно оптимизировать. Кроме этого, мой вариант должен лучше распараллеливаться.
- Можно ускорить процесс обучения и инференса модели, если использовать только две или три маски вместо четырёх. В статье(Table V) показано, что качество от Mask 3 к PSCC-Net растёт незначительно, но при этом время исполнения возрастает на 25%.