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

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

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

5 рівнів визначення схожості фотографій

Подібність фото залежить від спектру. Сучасні системи виявлення використовують кілька методів одночасно, кожен оптимізований для різного рівня:

РівеньМетод виявленняЩо вловлюєШвидкістьТочність
1. БайтоподібнийКриптографічний хеш (MD5/SHA-256)Точні копії файлів, дублікати AirDropНайшвидший100% (але вузький)
2. Піксельна ідентичністьСередній хеш (aHash)Повторно збережені або повторно закодовані версії того самого зображенняДуже швидко85%
3. Візуально схожіПерцептивний хеш (pHash/dHash)Обрізані, відфільтровані або дещо повернуті версіїШвидко92%
4. Семантично подібніНейронні вбудовування (CNN/Vision Transformer)Та сама сцена з різних ракурсів, серія серіїПомірний97%
5. Концептуально пов’язаніМультимодальні моделі у стилі CLIPРізні фотографії однієї теми чи темиПовільноЗалежить від контексту

Чому контрольні суми MD5 пропускають 80% візуальних дублікатів

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

  • Повторне збереження JPEG на іншому рівні якості → абсолютно новий хеш
  • Перетворення HEIC на JPEG → повністю новий хеш
  • Обрізання 2 пікселів від краю → абсолютно новий хеш
  • Додавання фільтра Instagram → абсолютно новий хеш
  • Скріншоти тієї самої фотографії → повністю новий хеш

У реальних фотознімках лише близько 15-20% дублікатів є точними копіями рівня байтів (зазвичай через передачу AirDrop або помилки синхронізації з хмарою). Решта 80% є візуальними дублікатами, які потребують перцептивного аналізу.

Як працює перцептивне хешування (pHash і dHash)

Перцепційне хешування генерує компактний відбиток, який фіксує візуальну структуру зображення, а не його необроблений байтовий вміст. Алгоритм працює за загальним конвеєром:

  1. Змінити розмір до дрібної сітки: зображення зменшується до невеликої роздільної здатності (зазвичай 8×8 або 32×32 пікселів), знищуючи дрібні деталі, але зберігаючи загальну структуру яскравості.
  2. Перетворити на градації сірого: інформація про колір відхиляється. Схожість сприйняття залежить насамперед від структури, а не відтінку - фото з теплим фільтром і фотографія з холодним фільтром все одно мають збігатися.
  3. Обчислити градієнт або середнє значення: для dHash (хеш різниці) кожен піксель порівнюється зі своїм правим сусідом. Для aHash (середній хеш) кожен піксель порівнюється із середньою яскравістю сітки. Кожне порівняння створює один біт: яскравіше = 1, темніше = 0.
  4. Створення двійкового відбитка: Результатом є 64-бітний (8×8) або 1024-бітний (32×32) двійковий рядок - перцептивний хеш.
  5. Порівняти за допомогою відстані Хеммінга: два зображення порівнюються шляхом підрахунку кількості бітів, які відрізняються між їхніми хешами. Відстань Хеммінга 0 = ідентична структура. Відстань ≤ 5 (із 64) = візуально майже ідентична. Відстань ≤ 10 = ймовірно подібна.

Чому pHash працює на відфільтрованих фотографіях

Оскільки алгоритм відкидає колір і дрібні деталі на кроці 1-2, версія фотографії, відфільтрована Instagram, створює майже такий самий хеш сприйняття, як і оригінал. Масштабна структура яскравості - світле небо вгорі, темна земля внизу - залишається незмінною незалежно від градації кольорів.

SSIM: вимірювання того, що насправді бачить людське око

Індекс структурної подібності (SSIM), розроблений Wang et al. у 2004 році виходить за рамки двійкового хешування. Він обчислює безперервну оцінку подібності (від 0,0 до 1,0) на основі трьох компонентів, які відображають людське візуальне сприйняття:

  • Порівняння яскравості: чи схожі середні рівні яскравості? (Компенсує різницю експозиції)
  • Порівняння контрастності: чи мають зображення подібний динамічний діапазон?
  • Порівняння структури: чи збігаються просторові моделі світлих і темних областей?

Показник SSIM вище 0,92 зазвичай означає, що більшість глядачів не розрізняють два зображення. Сучасні засоби очищення фотографій використовують цей поріг, щоб автоматично позначати майже дублікати, зберігаючи дійсно різні композиції.

Нейронні вбудовування: кордон глибокого навчання

Перцепційне хешування має проблеми з семантичною подібністю - фотографії однієї сцени, зроблені з різних позицій, або серійні послідовності, коли об’єкт значно переміщався між кадрами. У цих випадках нейронні мережі на пристрої (конволюційні моделі або моделі Vision Transformer) витягують багатовимірні вектори вбудовування.

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

Подібність вимірюється за допомогою косинусної подібності: косинуса кута між двома векторами. Косинус подібності 1,0 = ідентичний семантичний вміст. Поріг 0,85+ вловлює пакетні послідовності, майже ідентичні композиції та тонкі варіації, які не помічає лише перцепційне хешування.

Обробка на пристрої проти хмарної обробки: вимір конфіденційності

Запуск моделей нейронного вбудовування вимагає значної обчислювальної потужності. Деякі програми для очищення фотографій завантажують ваші зображення в хмарні графічні процесори для аналізу - величезний ризик конфіденційності. Сучасні пристрої Apple включають Neural Engine (16-ядерний на A17 Pro, 5 TOPS на M-серії), здатний запускати моделі зору CoreML повністю на пристрої. Це означає, що 512-вимірні вставки можна обчислити для 10 000 фотографій менш ніж за 3 хвилини без жодних даних, що залишають пристрій.

Підхід до обробкиШвидкість (10 тисяч фотографій)КонфіденційністьТочність
Графічний процесор Cloud (NVIDIA A100)30 секундФотографії, завантажені на зовнішні сервериНайвищий (найбільші моделі)
In-Device Neural Engine2-4 хвилини100% локальна, нульова мережева передачаВідмінно (оптимізовані моделі CoreML)
Лише центральний процесор на пристрої15-25 хвилин100% локальнийДобре (обмежена складність моделі)

Дивіться функцію виявлення нейронних дублікатів у дії

Swipe Photo Cleaner (Wipe AI) поєднує сприйнятливе хешування для швидкої початкової фільтрації з нейронними вбудованими на пристрої CoreML для глибокого семантичного групування. Результат: серійні серії, відфільтровані копії та майже ідентичні композиції автоматично групуються з виділенням найчіткіших фотографій - усе це обробляється локально на Neural Engine вашого пристрою без завантаження жодного байта в хмару.

Калькулятор Памяти iPhone & Экономии на iCloud

Оцените объем свободной памяти и сумму, которую можно сэкономить на подписке iCloud

Оценка дубликатов:~2 800 фото
Освободится памяти:~14.2 ГБ
Экономия на iCloud:~3 588 ₽ / год