Вскоре после уезда Важного Гостя из Яндекса, в офисе сработала пожарная сигнализация. Я уж было подумал подумал, что Владимир Владимирович поджёг офис, на прощание. Но нет -- это, говорят, было очередное ложное минирование.
Ещё много лет назад, приходилось слышать про системы распознавания лиц, что они могут "запомнить" не более 10000 разных лиц. Если "скормить" им больше, они либо начинают их путать между собой, либо перестают надёжно распознавать. Это вполне годится как система контроля доступа на объект в пару сотен человек, но, конечно, не годится для розыска подозреваемого по всему городу (хотя, если реагировать на каждое срабатывание, эффективность оперативно-розыскных мероприятий можно увеличить). Если зайти на сайт findface.ru, разыскивающий лица в ВК по фото, то можно убедиться, что его точность распознавания лишь не более чем на порядок превосходит эту цифру.
Из своего опыта работы со статистикой (я же статистическим моделированием занимался), могу сказать, что выборку размером N обычно можно надёжно рассортировать не более чем по N0.5 ячейкам. Как обычно происходит машинное обучение? Системе скармливают набор пар вход-выход, который загодя где-то берётся. На каком-то этапе выход даже не нужен, если систему учат просто искать значимые различие между объектами (особенно это касается всякого deep learning). Допустим, разработчик системы распознавания лиц получил доступ к базе данных паспортов. Сколько там лиц? Допустим, порядка 100М (количество фото в ВК имеет, кстати, сопоставимый порядок). Корень из них как раз даёт эти самые 10K.
Как улучшить эту точность? Очевидно: нужно больше примеров. Это не обязательно должны быть разные люди. Для эффективности ML будет даже лучше, если на каждое лицо будет не по одному примеру, а много разных: с разных ракурсов, с разной причёской, под разным градусом, при разном освещении, в разном настроении и т.п. Если у нас на каждого человека есть 100 фото, то это может помочь улучшить точность распознавания в 10 раз.
Что можно сделать для получения такой базы?
Первый этап. Обучаем "по-старинке", используя базу данных паспортов и трюки с искусственным загрублением, а также некоторое количество вручную подготовленных примеров.
Второй этап. Во многих домах нынче ведётся видеонаблюдение. При этом множество лиц, заходящих в один и тот же подъезд, обычно более-менее ограничено и постоянно. Система уже достаточно умна, чтобы различить и "запомнить" всю эти пару сотен лиц. А если где-то и ошибётся -- привлекут местного участкового, он разберётся и поправит. После этого она может в автоматическом режиме опознавать проходящих мимо камеры, фотографировать с разных ракурсов и рассовывать примеры по разным папочкам. В какой-то момент база данных с таких объектов сводится воедино и используется для настройки более совершенных алгоритмов ML.
Третий этап. Выбираются объекты по-крупнее, в тех же населенных пунктах. Почта, супермаркеты, школы и т.п. И ведь согласитесь, ложное минирование -- хороший повод установить нужное оборудование в стороне от лишних глаз. Крупные офисы с электронной пропускной системой вроде "Яндекса" тоже годятся. Тем более, задача различения лиц на первом этапе сильно упрощается, т.к. его распознают ещё и по пропуску.
Четвёртым этапом, надо полагать, будут вокзалы, аэропорты и т.п., а также просто людные пешеходные улицы. Причём данные из разных точек наблюдения будут сопоставляться. Даже если система так и не научится различать каждого из 100М человек, дифференциальный анализ здесь поможет. Т.е., пусть у нас в города A и Б есть похожие как две капли воды братья-близнецы. Если один уехал в город Ц, а другой в город Д, то система это отследит и будет знать, кто из них кто. Проблем начнутся, только если они встретятся вместе, вместе скроются с её глаз, и уже потом вместе или по отдельности снова попадут в поле зрения. Тогда информация о том, кто из них кто, будет утеряна. Но здесь, конечно же, можно подключить специально обученных людей, которые устранят эту неопределенность, даже не попавшись подозреваемым на глаза.
Или же можно пытаться сделать это тоже автоматически, отслеживая контакты, в т.ч. и прослушиванием трафика мобильных устройств. Тогда проблем вообще нет.
И так вот, этап за этапом, Большой Брат накроет всех очень толстым и тяжелым колпаком!