Розпізнавання артефактів на екрані

Розпізнавання артефактів на екрані
У зв'язку з постійним підвищенням рівня розвитку інформаційних технологій з кожним роком електронні документи стають все більш зручними та затребуваними у використанні та починають домінувати над традиційними паперовими носіями інформації. Тому дуже важливо вчасно звернути увагу на захист інформації не тільки на традиційних паперових носіях, а й на електронних документах. Кожна велика компанія, яка має комерційні, державні та інші таємниці, хоче запобігати можливим витокам інформації та компрометації секретних відомостей, а при виявленні витоку вживати заходів щодо припинення витоків та виявлення порушника.

Трохи про варіанти захисту

Для виконання цих завдань вводяться певні захисні елементи. Такими елементами можуть бути штрих-коди, видимі мітки, електронні мітки, але найцікавішими є приховані мітки. Одними з найяскравіших представників є водяні знаки, вони можуть бути нанесені на папір або додаватися перед друком на принтері. Вже ні для кого не секрет, що принтери ставлять свої водяні знаки (жовті крапки та інші мітки) під час друку, але ми розглядатимемо інші артефакти, які можуть бути проставлені на екрані комп'ютера, на робочому місці співробітника. Такі артефакти генеруються спеціальним програмним комплексом, який описує артефакти поверх робочого простору користувача, мінімізуючи помітність самих артефактів і не заважаючи роботі користувача. Ці технології мають стародавнє коріння з погляду наукових розробок і алгоритмів подання прихованої інформації, що використовуються, але в сучасному світі досить рідко зустрічаються. Здебільшого цей підхід зустрічаються у військовій сфері та на паперових носіях, для оперативного виявлення недобросовісних службовців. Комерційне середовище дані технології лише починають освоювати. Зараз активно починають застосовуватися видимі водяні знаки для захисту авторських прав різних медіа файлів, а ось невидимі трапляються досить рідко. Але вони й викликають найбільший інтерес.

Артефакти безпеки

Розпізнавання артефактів на екрані Невидимі для людини Водяні знаки утворюють різні артефакти, які можуть бути в принципі непомітні для ока людини, можуть маскуватися у зображенні у вигляді дуже маленьких точок. Ми розглянемо видимі об'єкти, оскільки невидимі оку можуть бути за межами стандартного кольору більшої частини моніторів. Дані артефакти мають особливу цінність у зв'язку з їх високим ступенем невидимості. Однак зробити повністю невидимими ЦВЗ неможливо. У процесі їх впровадження в зображення вносяться певного роду спотворення зображення контейнера, на ньому з'являються певні артефакти. Розглянемо 2 типи об'єктів:

  1. Циклічні
  2. Хаотичні (внесені шляхом перетворення зображення)

Циклічні є певною кінцевою послідовністю елементів, що повторюються, яка повторюється жодного разу на зображенні екрана (Рис. 1).

Хаотичні артефакти можуть бути викликані різного роду перетвореннями зображення, що накладається (Рис. 2), наприклад, впровадження голограми.

Розпізнавання артефактів на екрані
Мал. 1 Циклічні артефакти
Розпізнавання артефактів на екрані
Мал. 2 Хаотичні артефакти

Спочатку розглянемо варіанти розпізнавання циклічних артефактів. Такими артефактами можуть бути:

  • текстові водяні знаки, що повторюються по всьому екрану
  • бінарні послідовності
  • набір хаотичних точок у кожному осередку сітки

Всі перелічені артефакти наносяться безпосередньо поверх контенту, що відображається, відповідно їх можна розпізнати шляхом виявлення локальних екстремумів гістограми кожного з колірних каналів і відповідно вирізати всі інші кольори. Цей спосіб передбачає роботу з комбінаціями локальних екстремумів кожного каналу гістограми. Проблема впирається в пошук локальних екстремумів на досить складному зображенні з безліччю деталей, що різко переходять, гістограма виглядає дуже пилкоподібною, що робить даний підхід незастосовним. Можна спробувати застосовувати різні фільтри, але вони внесуть свої спотворення, які можуть призвести до неможливості виявлення водяного знака. Також є варіант розпізнавання даних артефактів з допомогою певних детекторів кордонів (наприклад, детектор кордонів Канни). Дані підходи мають своє місце для досить різких по переходу артефактів, детекторами можна виділити будки зображень і надалі вибрати колірні діапазони всередині контурів для бінаризації зображення з метою подальшого виділення самих артефактів, але ці методи вимагають досить тонкого налаштування для виділення необхідних контурів, а також бінаризації самого зображення щодо кольорів у виділених контурах. Дані алгоритми вважаються досить ненадійними і намагаються використовувати більш стабільні зображення, що не залежать від виду колірних складових.

Розпізнавання артефактів на екрані
Мал. 3 Водяний знак після перетворення

Що ж до хаотичних артефактів, про які йшлося раніше, алгоритми їхнього розпізнавання будуть кардинально іншими. Оскільки утворення хаотичних артефактів передбачається шляхом накладання на зображення якогось водяного знака, який трансформують будь-яким із перетворень (наприклад, дискретним перетворення Фур'є). Артефакти від таких перетворень розподілені по всьому екрану і складно виявити їхню закономірність. Тому водяний знак буде розташований по всьому зображенню у вигляді «випадкових» артефактів. Розпізнавання такого водяного знака зводиться до прямого перетворення зображення за допомогою перетворень. Результат перетворення представлений малюнку (Рис. 3).

Але виникає низка проблем, які перешкоджають розпізнаванню водяного знака у не ідеальних умовах. Залежно від типу перетворення можуть бути різні складності, наприклад, неможливість розпізнавання при документі, отриманому шляхом фотографування під великим кутом щодо екрана або просто знімок досить поганої якості, або захоплення екрана, збережене у файлі зі стиском з великими втратами. Всі ці проблеми ведуть до ускладнення виявлення водяного знака, у випадку зі знімком під кутом необхідно застосовувати більш складні перетворення, або застосовувати афінні перетворення для зображення, але жодне не інше не гарантує повне відновлення водяного знака. Якщо розглянути випадок із захопленням екрана виникають дві проблеми, перша це спотворення при відображенні на самому екрані, друга це спотворення при збереженні самого зображення з екрана. Першу досить складно контролювати з огляду на те, що існують матриці для моніторів різної якості, і через відсутність того чи іншого кольору інтерполують колір залежно від свого кольору, тим самим вносячи спотворення в сам водяний знак. Другу ще складніше, зважаючи на те, що можна зберегти скріншот у будь-якому форматі і відповідно втратити частину колірного діапазону, отже, ми можемо просто втратити сам водяний знак.

Проблеми впровадження

У світі існує досить багато алгоритмів впровадження водяних знаків, але жоден не гарантує 100% можливість подальшого розпізнавання водяного знака після його впровадження. Основну складність є визначення комплексу умов відтворення, які можуть виникнути в кожному конкретному випадку. Як говорилося раніше складно створити алгоритм, що розпізнає, який би враховував всі можливі особливості спотворень і спроб пошкоджень водяного знака. Наприклад, якщо на поточне зображення застосувати Гауссів фільтр, і при цьому артефакти на вихідному зображенні були досить дрібними і контрастними на тлі зображення, то розпізнати їх стає неможливо, або частина водяного знака буде втрачена. Розглянемо випадок фотознімка, з великою ймовірністю на ньому буде муар (Мал. 5) і «сітка» (Мал. 4). Муар виникає через дискретність матриці екрану і дискретність матриці апаратури, що знімає, в цій ситуації виходить накладання двох сітчастих зображень один на одного. Сітка швидше за все частково перекриє артефакти водяного знака та викличе проблему розпізнавання, муар у свою чергу в деяких методах впровадження водяного знака унеможливлює його розпізнавання, оскільки він перекриває частину зображення з водяним знаком.

Розпізнавання артефактів на екрані
Мал. 4 Сітка зображення
Розпізнавання артефактів на екрані
Мал. 5 Муар

Для того щоб підвищити поріг можливості розпізнавання водяних знаків необхідно застосовувати алгоритми, засновані на нейронних мережах, що самонавчаються, і в процесі експлуатації, які самі навчатимуться розпізнаванню образів водяних знаків. Зараз існує безліч нейромережевих інструментів і сервісів, наприклад, від Google. За бажання можна знайти набір еталонних зображень та навчити нейронну мережу розпізнавати необхідні артефакти. Даний підхід має найперспективніші шанси виявлення навіть сильно спотворених водяних знаків, але швидкого виявлення вимагає великих обчислювальних потужностей і досить довге навчання коректного виявлення.

Все описане здається досить простим, але чим глибше занурюєшся в ці питання тим більше розумієш, що для розпізнавання водяних знаків необхідно витратити багато часу на реалізацію будь-якого алгоритму, і ще більше часу на доведення його до потрібної ймовірності розпізнавання кожного зображення.

Джерело: habr.com

Додати коментар або відгук