Глава 1. Алгоритм выявления признаков постобработки изображения 8
Глава 2. Реализация алгоритма 20
Глава 3. Результаты и тестирование 26
Заключение 35
Список литературы 36
Автореферат
Анцелевич А.А. «Выявление признаков постобработки изображений». Магистерская диссертация: стр. 38, рис. 10, библ. 34 назв.
Ключевые слова: обработка, сегментация изображения, граф, нормализованный разрез, дубликаты.
Объект исследования - изображения, подвергнутые обработке.
Цель работы: реализовать метод выявления признаков постобработки изображения путём сведения к задаче о поиске оптимального нормализованного разреза в графе, возможно, модифицировав его, и проверить, действительно ли он позволяет решить поставленные задачи, и применим на практике.
В процессе работы был детально разобран и реализован алгоритм поиска признаков постобработки в изображениях. Разработанное приложение было оптимизировано, было проведено его тестирование, были найдены режимы работы приложения с более высокими показателями точности.
Реализованное приложение может быть запущено на обычном персональном компьютере.
Помимо информации о наличии выявленных признаков постобработки полученное приложение генерирует карту поданного на вход изображения, на которой выделены его участки, возможно подвергнутые постобработке.
Существуют различные методы постобработки цифровой фотографии. Человек не всегда способен определить, что фотография отредактирована. Фотографии могут использоваться в качестве свидетельства тех или иных фактов, поэтому изменение содержимого фотографии может служить средством фальсификации этих фактов. Так, например, можно фальсифицировать новости, результаты научных исследований, доказательства в суде.
В цифровые фотографии добавляются фрагменты других фотографий, из них удаляются участки (например, закрашиванием, копированием других участков того же снимка), фотография составляется из частей других фотографий, меняются различные характеристики изображения (такие, как яркость, цвет) и так далее.
Человек может не распознать признаки постобработки фотографий, но некоторые из них можно обнаружить, проведя глубокий анализ цифрового изображения. На таких признаках основывается множество алгоритмов, позволяющих делать предположения о наличии постобработки.
Многие из этих алгоритмов были собраны и систематизированы [1] Гэни Фаридом, сделавшим немалый вклад в изучение данной проблемы. Среди таких алгоритмов можно выделить несколько основных классов:
1. Алгоритмы, основанные на попиксельном анализе. Статистика по значениям пикселей и по соотношениям между ними может быть кардинально изменена в результате постобработки, значения некоторых показателей могут оказаться за пределами нормы. Например, в [2] описан алгоритм, выявляющий статистиче ские соотношения, проявляющиеся при передискретизации изображения. Некоторые алгоритмы основаны на нахождении повторяющихся участков изображения. [3], [4], [5] В некоторых случаях при анализе фотографии используется информация о том, каким образом она была сделана. Часть таких алгоритмов основана на учёте особенностей работы фотоаппарата, в частности, технологии преобразования спроецированного на фотоматрицу оптического изображения в аналоговый электрический сигнал или в поток цифровых данных [6], [7], [8].
2. Алгоритмы, использующие артефакты сжатия. Рассматриваются изображения, к которым было применено сжатие с потерями, например, изображения в формате JPEG. В частности, при комбинации изображений с разной степенью сжатия становится возможно обнаружить признаки постобработки. Например, на таких статистических артефактах основан алгоритм, описанный в [9]. В [10] описан алгоритм, основанный на таблицах квантования, используемых в процессе сжатия.
3. Алгоритмы, работающие с изображёнными объектами и их характеристиками. Например, в [11] описывается выявление геометрических несоответствий в изображениях с отражающими поверхностями, в [12], [13] - алгоритмы, учитывающие освещение объектов, в [14] - блики на глазах, в [15] - надписи на плоских поверхностях.
4. В отдельный класс выделяются методы, использующие машинное обучение. Поставленная задача трудно формализуема, поэтому в некоторых случаях проще собрать некоторые факторы, проанализировав изображение, и запустить алгоритм машинного обучения, разметив обучающую выборку. Например, в [26] используется искусственная нейронная сеть.
Различные идеи алгоритмов накладывают соответствующие ограничения на класс обрабатываемых изображений: часть алгоритмов требует наличия определённых объектов на фотографиях, другая часть - определённых характеристик светочувствительной матрицы, с использованием которой была сделана фотография, третья - конкретных алгоритмов сжатия, применённых к изображениям. Некоторые алгоритмы накладывают строгие ограничения на способ искомой постобработки (например, алгоритмы, выявляющие повторяющиеся участки изображений).
Существует ПО, позволяющее решать задачу выявления признаков постобработки изображений. Например, в [16] описан платный плагин, использующий для выявления признаков монтажа таблицы квантования, поиск дубликатов и массивы цветных фильтров. [17] - плагин для GIMP, позволяющий выявлять дубликаты в изображениях. Существуют и другие инструменты, но они редко используются массово. В основном, выявление признаков постобработки изображений - предмет научного исследования, а не инструмент, которым можно воспользоваться в практических целях.
В ходе данной работы были поставлены следующие задачи:
1. Реализовать приложение, которое путём глубокого анализа изображений позволит выявлять в них признаки постобработки. Приложение должно быть лёгким, работать на одной машине по возможности быстро. Помимо ответа на вопрос, была ли произведена постобработка, приложение должно предоставлять дополнительную информацию о типе постобработки и о подозрительном участке изображения. Класс изображений не ограничивается их содержимым и степенью их сжатия.
2. Протестировать реализованное приложение, определить, с какой точностью оно работает.
Для решения поставленной задачи не применимы алгоритмы второго и третьего классов. Также не применимы алгоритмы, использующие информацию о том, каким образом была сделана фотография. Немалая часть алгоритмов, основанных на машинном обучении, использует в качестве классификатора искусственные нейронные сети, тогда как для поставленной задачи, возможно, подошёл бы классификатор, более прозрачно работающий с факторами (например, случайный лес, или бустинг над деревьями).
Гэни Фарид предложил алгоритм [18], основанный на сведении задачи выявления признаков постобработки изображения к задаче поиска минимального нормализованного разреза в графе. Данный алгоритм не предполагает наложения ограничений на тип изображения, степень сжатия, содержимое фотографии. Используется исключительно информация о яркости отдельных пикселей и их групп. Изображение разбивается на части, не соответствующие друг другу по различным критериям. Таким образом, итог работы алгоритма - не только ответ на вопрос, было ли изображение подвергнуто постобработке, но и критерий, в соответствии с которым дан ответ на этот вопрос, и соответствующие участки изображения, если ответ положительный.
Данный алгоритм был принят в качестве метода решения поставленной задачи.
Таким образом, цель данного исследования: реализовать предложенный метод, возможно, модифицировав его, и проверить, действительно ли он позволяет решить поставленные задачи, и применим на практике.
В ходе данной работы было разработано приложение, принимающее на вход произвольное изображение и генерирующее на выходе три карты изображения в соответствии с различными признаками постобработки изображений, а также три числовых ответа, которые могут коррелировать с вероятностью того, что к изображению была применена постобработка.
Реализованное приложение опубликовано на Сп1НиЬ [34].
Было также проведено тестирование реализованного приложения на оригинальных и обработанных изображениях.
Цель исследования также была выполнена - описанный метод был полностью реализован и была продемонстрирована возможность его применения. При работе с изображениями, не обладающими никакими общими известными свойствами, взятыми из архивов, приложение показало точность, превышающую 50%.
Также на отдельных примерах можно было убедиться, что карты изображения в некоторых случаях позволяют выявлять обработанные участки изображений.
Но точность работы приложения остаётся слишком низкой для того, чтобы его можно было полноценно применять на практике. На неё повлияли существующие ограничения по памяти и по времени, из-за которых алгоритм был модифицирован с потерей точности - был выбран некий порог, ниже которого все веса рёбер объявляются нулевыми, изображение уменьшалось до определённых размеров, чтобы с ним можно было работать
Возможно, дальнейшая оптимизация позволит снять некоторые ограничения по точности и улучшить качество работы приложения. Помимо оптимизации допустимы эксперименты с модификациями алгоритма, с добавлением новых весовых функций, с уточнением алгоритма поиска оптимального нормализованного разреза в графе.