Как найти стереофото в библиотеке из тысяч снимков
Фотограф, снимающий много кадров с небольших изменений ракурса, случайно заполнил телефон акцидентальными стереоэффектами (wigglegram). Вместо того чтобы вручную искать эти серии, он написал скрипт на основе перцептивного хеширования (того же алгоритма, что использует TinEye для обратного поиска изображений) для автоматического обнаружения похожих фото.
Алгоритм вычисляет расстояние Хемминга между хешами изображений и выделяет серии похожих снимков, которые затем можно собрать в анимированные gif. Из многолетнего архива вышли сотни найденных стереоэффектов, от животных до архитектурных деталей. Скрипт опубликован на GitHub для Mac и работает с фото из iCloud или локальной папки.
Ключевые факты
- Перцептивное хеширование находит похожие изображения без криптографического хеша, сравнивая количество совпадающих битов
- Алгоритм использует расстояние Хемминга для определения порога сходства между парами фото
- Результат: сотни стереоанимаций вытащены из архива в несколько часов работы скрипта
- Инструмент работает на Mac с iCloud и поддерживает локальные папки с фотографиями
- Полный исходный код опубликован на GitHub для переиспользования
Почему это важно
Перцептивное хеширование решает практическую задачу поиска визуально похожих медиа при огромных объёмах данных. В отличие от криптографических хешей, которые меняют все биты при малейшем изменении, перцептивный хеш сохраняет схожесть с исходными данными. Это позволяет быстро находить дубликаты, похожие кадры или естественные последовательности в больших библиотеках медиа без машинного обучения и сложных моделей.
Кому это важно
Фотографы и видеографы, которые снимают серийно и накапливают огромные архивы кадров. Хранители цифровых коллекций, работающие с дедупликацией визуальных материалов. Разработчики систем обратного поиска изображений и медиа-организации. Любой, кто нуждается в автоматическом разделении случайных дублей и вариаций в большой фотобиблиотеке.
Как это применить
Скрипт на GitHub готов к использованию на macOS с доступом к iCloud-фотографиям или локальной папке. Достаточно указать источник и запустить, программа вычислит хеши всех фото (процесс медленный из-за скачивания с iCloud), найдёт серии похожих снимков и выведет результаты. Полученные группы можно затем обработать вручную или создать из них анимированные GIF. Для других ОС алгоритм легко переносится благодаря открытому коду.
Можно ли доверять
Подход основан на хорошо изученной технике, которую используют профессиональные системы поиска (TinEye, Google Lens). Автор ясно объясняет математику хеширования и показывает реальные примеры работы. Код опубликован открытым и может быть проверен. Единственное ограничение, качество результатов зависит от правильного выбора порога расстояния Хемминга, но это настраивается под конкретную библиотеку.
Риски и подводные камни
Скачивание фото из iCloud может быть очень медленным при большой библиотеке. Порог сходства нужно подбирать вручную, слишком низкий даст ложноположительные совпадения, слишком высокий пропустит реальные серии. Стереоэффекты работают лучше с животными и динамичными сценами, чем с неподвижной архитектурой. Алгоритм не различает разные объекты на одном фоне, может собрать в одну серию снимки совершенно разных моментов, если фон похож.
«My phone is full of wigglegrams that I took by accident. Years' worth, waiting for me to sit down and stitch them together.»
— Greg Sadetsky, автор скрипта