Как при автоматической проверке документов отличить оригинал от цветной ксерокопии или даже муляжа? Один из надежных признаков подлинности – наличие оптически-переменных защитных элементов (OVD, Optical Variable Device), например голограмм. Их внешний вид меняется при изменении угла обзора и положения источника света.
В Smart Engines мы разработали и запатентовали метод обнаружения OVD, который позволяет выявлять копии и муляжи с помощью сканера под управлением ИИ. Для проверки достаточно видимого диапазона и серии изображений документа, полученных при разных положениях подсветки. О том, как нам удалось реализовать такой подход и научить сканер обнаруживать муляжи по OVD, читайте под катом.

Как OVD помогают отличить оригинал от муляжа
Одним из наиболее распространенных видов атак на предъявление документа является использование его печатного образа, изготовленного на обычном принтере на основе цифрового изображения оригинального документа. В отличие от простой черно-белой ксерокопии, такие “муляжи” могут воспроизводить цветовое оформление, графические элементы и персональные данные документа с высоким качеством, что существенно усложняет их визуальное обнаружение.
При этом воспроизведение OVD-элементов, изменяющих внешний вид в зависимости от угла падения и отражения света, остается сложной задачей для злоумышленника. Поэтому одним из эффективных способов выявления подобных атак является анализ наличия OVD-элементов на предъявляемом документе.
Обычно, чтобы увидеть, как ведет себя OVD, документ меняют относительно источника света и наблюдателя – например, просто поворачивают паспорт в руках. Но в сканере такой сценарий не работает: документ лежит на рабочей поверхности, а камера зафиксирована.
Поэтому мы меняем не положение документа, а положение света. Для этого вокруг рабочей зоны располагаются несколько источников подсветки, которые включаются поочередно. Документ и камера остаются неподвижными, а направление освещения меняется.
На этой идее и построен наш метод. Положение документа и камеры фиксировано, а условия съемки меняются за счет управляемой подсветки.
Нам понадобится
Для эксперимента мы использовали сканер ПС4-02 производства нашего многолетнего партнера – ГК «Интек». В этом сканере изображение получает камера, а документ освещают шесть светодиодов. Каждый из них можно независимо включать и выключать, а также менять его условную мощность.

Именно управляемая подсветка дает нам то, что нужно для поиска OVD. Камера и документ остаются на месте, а направление освещения меняется: сначала включается одна лампа, затем другая и так далее.
В итоге вместо одного снимка получаем серию из шести изображений одного и того же документа. Важное преимущество такой схемы — все кадры попиксельно совмещены: положение документа относительно камеры от снимка к снимку не меняется. Меняется только освещение. Это нам и требовалось.
Подробности об алгоритме
Предложенный нами алгоритм анализирует серию изображений одного документа в разных режимах подсветки и состоит из четырех основных этапов:
1. Получение серии сырых изображений документа в разных режимах подсветки.
2. Нормализация сырых изображений серии.
3. Выделение признаков наличия OVD-элементов.
4. Классификация предъявленного документа – формирование вердикта о наличии OVD.
Самая объемная часть здесь – нормализация. Она нужна потому, что изменение яркости между шестью кадрами само по себе еще ничего не говорит о наличии голограммы. При переключении ламп меняется освещенность практически всего документа. Если оставить этот эффект как есть, он будет мешать искать локальные цветовые изменения, характерные для OVD.

Поэтому просто взять шесть кадров и сравнить их между собой не получится. Сначала придется отделить изменения, вызванные OVD, от изменений, которые создает сама система подсветки.
Начинаем с коррекции темнового тока: оцениваем сигнал сенсора при полностью выключенной подсветке и вычитаем его из рабочих кадров. Затем сканируем лист ламинированной белой бумаги в тех же режимах, что и документы, и для каждой лампы получаем калибровочное изображение. Эти изображения также корректируем по темновому току и сглаживаем, чтобы подавить мелкие локальные неоднородности. По полученным данным попиксельно корректируем яркость кадров документа — после этого влияние самой подсветки уменьшается, и можно сравнивать, как меняется цвет одного и того же участка между режимами.
Как из шести изображений получить карту OVD
После нормализации нас интересует уже не столько абсолютная яркость пикселя, сколько изменение его цвета между разными режимами подсветки.
Для этого цветовые векторы пикселей сначала проецируются на плоскость средней яркости. Смысл операции в том, чтобы уменьшить влияние общей яркости и оставить более полезную для нас информацию о цветовых изменениях. В исходном алгоритме при вычислении средней яркости также используются веса, полученные из калибровочных изображений.
Дальше для каждого пикселя вычисляется стандартное отклонение полученных цветовых векторов по всей серии.
Логика здесь довольно простая. Если участок документа не содержит OVD, его цветовые свойства между режимами меняются относительно слабо. Если в этой точке находится голограмма, переключение источников света вызывает заметные изменения – и стандартное отклонение становится выше.
Так из шести RGB-изображений получается новая карта — карта изменений. На рисунке 8 исходной статьи хорошо видно, что на документе с голограммой появляются выраженные области с высоким отклонением, тогда как на трех вариантах муляжей такой реакции практически нет.
Остается превратить эту карту в обычный ответ «OVD есть» или «OVD нет».
Для этого карта бинаризуется по порогу ovd_threshold: все точки выше него считаются кандидатами на OVD. Затем алгоритм оставляет только заданную прямоугольную область ovd_roi, где ожидается защитный элемент, и считает относительную площадь выделенных пикселей.
Если эта площадь превышает rel_area_threshold, алгоритм считает, что OVD присутствует. В рамках рассматриваемой задачи такой документ относится к оригиналам. Если площади недостаточно, система фиксирует атаку на предъявление.
Весь конвейер можно свести к одной строке: шесть режимов подсветки → нормализация → оценка изменения цвета → карта OVD → вердикт.
Вместо заключения
В сегодняшней статье мы не добавляли сканеру новый спектральный канал или дополнительную оптику. Все необходимые данные уже можно было получить существующей камерой и системой управляемой подсветки — нужно было научиться правильно их интерпретировать.
Шесть изображений одного документа при разных направлениях света дают возможность увидеть то, чего практически нет на каждом отдельном кадре: реакцию оптически-переменного элемента на изменение условий освещения.
В результате новый признак подлинности появляется не за счет усложнения оптики, а за счет алгоритма. И это, пожалуй, наиболее интересный результат всей работы: иногда, чтобы научить сканер видеть больше, не нужно добавлять ему новые «глаза».
Следите за нашими новостями и подписывайтесь на Telegram-канал!

