Атлас, спрятанный в наших фотографиях: что 67 608 семейных снимков знали о том, где мы побывали

У меня было 67 608 фотографий. Двадцать лет, самая старая — из 2006 года, разбросанные по 73 разным камерам и телефонам, что были у семьи за это время. Все они были в резервной копии, все «в сохранности» и совершенно недосягаемы. Никто не листает двадцать лет снимков назад, чтобы найти один день в конкретном городке, потому что сам поиск тяжелее, чем воспоминание. Архив не был бесполезным. Это был второй мозг без входной двери. И вот я её построил и навёл на всю эту груду ИИ, чтобы выяснить, что же там на самом деле лежит. То, что вышло с другого конца, оказалось не улучшенной строкой поиска. Это был набор карт, которые я, оказывается, носил в себе всё это время.
Если коротко
- 67 608 фотографий за двадцать лет и 73 камеры — каждой дано машиночитаемое «понимание» того, что на ней.
- Я обучил обычную модель моему личному вкусу примерно на тысяче собственных «избранных» — без гигантского обучения, просто маленькая надстройка сверху.
- 53 242 снимка уже знали, где они сделаны. Для 14 363, которые не знали, модель угадывала по одним только пикселям — впечатляюще и ненадёжно.
- Скучный метод всякий раз бил эффектный: пропавшую геопозицию проще восстановить по соседним снимкам, сделанным за пару минут до и после.
- Наградой стала не строка поиска. Это 86 поездок за двадцать лет, нарисованные как памятные карты по следу, который оставили сами фотографии.
Такой архив есть у каждой семьи — и у каждой компании
На самом деле это история не про фотографии. Каждая организация, которую я видел, сидит на том же самом, только крупнее: двадцать лет писем, по которым нельзя искать по смыслу, общий диск на сорок тысяч документов, к которым нет никакой карты, годы тикетов поддержки, где лежит ответ на вопрос следующей недели — если бы кто-то сумел его отыскать. Данные все на месте, все в резервной копии — и фактически мертвы, потому что разобрать их вручную дороже, чем ценность любой отдельной находки. Моя галерея — просто та версия этого архива, что досталась лично мне, и достаточно маленькая, чтобы один человек попробовал её разбудить за выходные.
Задача была скромной. Я хотел, чтобы двадцать лет снимков превратились во что-то, чему можно задавать вопросы. Где мы вообще были. Какие из них хоть чего-то стоят. Покажи хорошие с побережья, тот год, когда дочь — ну, в общем, такой вопрос, на который можно ответить, только если куча знает, что в ней лежит. Ничего из этого не достать из папки с 67 608 безымянными файлами. А всё это лежит внутри самих картинок и ждёт, пока что-нибудь их прочитает.
Шаг первый: дать каждому снимку понимание того, что он такое
Первый ход — тот, что делает возможным всё остальное, — незаметно стал дешёвым. Ты прогоняешь каждое изображение через модель зрения, которая превращает картинку в список из 768 чисел — «эмбеддинг», — улавливающий, о чём этот снимок. Две фотографии пляжа окажутся с похожими числами, даже если их разделяют одиннадцать лет и два континента. Это делает открытая, готовая модель под названием CLIP; я прогнал через неё все 67 608 фотографий на собственной машине — без облака и без платы за каждый снимок.
Как только каждый снимок становится точкой в этом пространстве, «поиск» перестаёт означать имена файлов и начинает означать смысл. Можно простыми словами попросить «снежная горная деревня» и получить нужные снимки, при том что их никто никогда не размечал. Для компании в этом и весь прорыв: эмбеддинг — это разница между архивом, по которому ты гоняешь grep, и архивом, с которым можно по-настоящему разговаривать. Скучный инфраструктурный шаг — один раз превратить всё в числа — это и есть то, что потом делает возможными интересные вопросы.
Шаг второй: научить её моему вкусу, а не «хорошему вкусу»
Вот здесь стало лично, и здесь же прячется самый переносимый урок. Есть готовая модель, которая оценивает, насколько фотография «эстетически приятна», — она с радостью скажет, что закат красивее парковки. Полезно и не то, что мне было нужно. Обобщённая красивость — не моя. Мои любимые фотографии часто технически ничем не примечательны и при этом незаменимы лично для меня.
Поэтому вместо того чтобы принять обобщённую оценку, я научил систему моему вкусу. Я взял те примерно тысячу фотографий, что годами отмечал как избранные, в качестве примеров «да», кучу проходных кадров — в качестве примеров «нет» — и обучил поверх замороженных эмбеддингов крошечную модель. Не гигантское обучение — тяжёлая модель остаётся ровно такой, как была, — просто маленькая надстройка, которая выучивает единственное, чего не знает: что нравится мне.
Сработало лучше, чем я ожидал. По шкале от нуля до единицы фотографии, которые я вручную отметил избранными, в среднем набрали 0,84. Вся библиотека в среднем — 0,20. Модель действительно выучила форму моего предпочтения по тысяче примеров и теперь могла применить её ко всем 67 608: 7 737 снимков перевалили за 0,8, а 5 380 — за 0,9. Готовая подборка лучшего, собрать которую самому у меня никогда не хватало терпения. Урок для всех, у кого есть обобщённая ИИ-модель и конкретная задача: тебе крайне редко нужно обучать собственного гиганта. Тебе нужна замороженная общая модель и пара сотен собственных размеченных примеров, чтобы научить её тому единственному, что есть только у тебя.
Шаг третий: геопозиция, которую никто не записывал
Дальше пошла та часть, что превратила строку поиска в атлас. Из 67 608 фотографий 53 242 уже несли в себе GPS-координаты, вшитые телефоном, который их снял. Это само по себе — карта на двадцать лет. Но у 14 363 геопозиции не было вовсе: старые камеры, срезанные метаданные, скриншоты моментов.
И я попробовал вернуть их на карту — и вот тут эффектное и скучное сошлись лбами. Для 10 867 из них я использовал модель, которая угадывает, где на Земле сделан снимок, по одним только пикселям — без метаданных, лишь по свету и пейзажу. То, что это вообще работает, по-настоящему поражает. И при этом в себе она уверена редко — и честно в этом признаётся: её средняя уверенность — 0,04. Она скажет тебе, что пляж «вероятно, средиземноморский», и ошибётся достаточно часто, чтобы ни одной отдельной догадке нельзя было верить.
Остальные 3 496 я заполнил скучным способом: если у снимка геопозиции нет, а у соседних кадров, снятых за три минуты до и после, она есть, то он почти наверняка был в том же месте. Средняя уверенность этого метода — 0,74. Способ невзрачный, работает только когда соседи вообще есть — и оказывался прав почти всегда. Эффектную модель по пикселям я нанёс на карты бледным намёком, а скучную интерполяцию — как факт. Этот разрыв — впечатляющая, но неуверенная догадка против скучного, но надёжного расчёта — самое полезное, что я для себя заново открыл, и он применим к любой демонстрации в духе «смотрите, что умеет ИИ», какую тебе когда-нибудь покажут.
Двадцать лет, восемьдесят шесть поездок, нарисованных по следу
Как только у каждого снимка появилась геопозиция — записанная или восстановленная — след сам собой собрался в 86 отдельных поездок за двадцать лет. А поездка с координатами и датами — это уже не список. Это маршрут. И я нарисовал каждую на спутниковой карте — так, как её и хочется помнить.

Эта началась как метка перелёта — «из Москвы» в Нью-Йорк, потом перелёт в Хьюстон — и стала тремя тысячами километров американского Юго-Запада, всей дугой от побережья Залива до Лос-Анджелеса, прочерченной по порядку, в котором делались снимки. Я не вёл маршрута. Его вела камера.

Романтическая дорога, петля из дома и обратно, где каждый городок, в котором мы останавливались, всплывает подписанной точкой просто потому, что мы там сняли кадр. От той недели не сохранилось ни одного плана. Эта карта восстановлена целиком по тому, где щёлкал затвор.

Ни одной из этих карт месяц назад не существовало, и вся информация в них существовала всё это время. Вот что я продолжаю прокручивать в голове. Я ничего не добавил. Поездки уже были закодированы в двадцати годах фотографий — их просто нельзя было прочитать, пока каждый снимок не узнал, где и когда он сделан. Карты — это архив, наконец вслух говорящий то, что он всегда знал.
Что было и что стало, простыми словами
| Было | Стало | |
|---|---|---|
| Фотографии | 67 608 файлов без поиска | поиск по смыслу, словами |
| Качество | в куче все кадры равны | мой вкус, 5 380 лучших наверху |
| Геопозиция | 53 242 на карте, 14 363 потеряны | каждый снимок размещён — записан или восстановлен |
| Двадцать лет | груда без дат | 86 поездок, нарисованных картами |
Что бы я сделал иначе
Поначалу я слишком долго полагался на эффектный метод. Модель геопозиции по пикселям — настоящее чудо, и мне хотелось сделать её героем: взмахнуть палочкой над 14 363 неразмещёнными снимками и получить их все обратно. От этого меня удержали её собственные оценки уверенности, тихо кричавшие: «не верь мне ни в одном отдельном случае». Честный вывод был виден с самого начала: опирайся на скучный надёжный метод везде, где он применим, а эффектный оставляй лишь намёком. В следующий раз я поверю цифрам быстрее, чем эффектной демонстрации.
Но вывод поважнее — для всех, кто сидит на мёртвом архиве и считает дело безнадёжным: экономика перевернулась, а большинство этого даже не заметило. Раньше, чтобы прочесть двадцать лет неструктурированных данных, нужно было платить человеку, который вручную всё это разберёт. Теперь самое тяжёлое — понять, что представляет собой каждый элемент, оценить его по твоим собственным меркам, даже восстановить метаданные, которых никто никогда не записывал, — обходится дёшево и часто выполняется прямо на твоём компьютере. Архив никогда не был бесполезным. Он просто ждал, когда задать ему вопрос станет почти бесплатно, — и этот момент уже настал.
С чего бы ты начал, если бы знал: тот самый безнадёжный архив теперь можно разбудить за выходные?
Нужно что-то похожее для вашего бизнеса? Посмотрите, как я могу помочь →
Заберите чек-лист «AI Audit Kickoff»
Пятнадцать вопросов, которые стоит задать про свои процессы, прежде чем тратить деньги на ИИ. Тот самый первый час, с которого я начинаю настоящий аудит, одностраничным PDF. Оставьте почту и получите его сразу, плюс изредка письмо, когда напишу что-то стоящее. Без спама, отписка в один клик.