Про системы распознавания лиц. Как производители улучшают качество распознавания, а люди им мешают
Давно собирался изложить письменно рассуждения на тему. Естественно, с пруфами. Финальным пинком послужили периодические обращения из СМИ на тему "а вот это могут?", "а точно распознают?", "а если в маске?" и т.п. Темы законности и степени влезания в жизнь граждан в данном посте касаться не буду.
Итак, различные плюшки компьютерного зрения и его лютую полезность для всех и каждого не тайна. Они были много раз описаны в соответствующих статьях на тему. Но если хотите освежить знания, кратко есть у РБК. Таким образом, для бизнеса и государства всё ясно - надо внедрять. Но тут наступает пандемия и начинают вылезать нюансы.
Оказывается, если человек надел маску, система распознавания часто превращается в систему нераспознавания лиц и приходиться пользователям смартфонов деградировать до уровня разблокировки гаджета отпечатком или, ужас-ужас, вводом пароля. По крайней мере про ухудшения распознавания говорится в исследовании Национального института стандартов и технологий США (NIST). Индивидуальные средства защиты, полностью закрывающие нос и рот, ставят компьютерные алгоритмы в тупик, увеличивая вероятность ошибочного срабатывания на 5–50%. Эти и другие утверждения, транслировавшиеся вчера в СМИ вызывают вопросы у меня.
Предполагаю, что падения качества распознавания будет только на тех системах, которые обучались на "открытых" лицах. "Открытых", в данном случае, означает не закрытых посторонними предметами или растительностью. В принципе, это и наблюдалось весной с айфонами. Однако уже тогда были найдены "костыли", позволяющие распознать лицо, закрытое маской.
Для того чтобы заставить Face ID узнавать пользователя в маске, нужно в процессе установки изображения, по которому датчик будет распознавать лицо своего владельца, сначала прикрыть маской только одну половину лица, а затем другую, оставив первую неприкрытой. Важно: на открытой части лица должны быть видны нос и рот.Суть проблемы проста и понятна: системы распознавания лиц в основном полагались на измерение расстояния между точками в "ключевых зонах": глаза, нос, рот. А тут вдруг люди начали 2\3 точек скрывать. Естественно качество упало.
Но разработчики и исследователи тоже не дураки. Задача распознавания частично скрытого лица лежала на поверхности с момента появления самих систем распознавания лиц. Беглый гуглёж приводит нас к посту на Хабре, в котором упомянута научная работа 2017 года.
Статья «Идентификация маскированных лиц (DFI) по ключевым точкам с использованием пространственной свёрточной сети» (Disguised Face Identification (DFI) with Facial KeyPoints using Spatial Fusion Convolutional Network; arXiv:1708.09317v1) уже тогда предлагало очевидное решение по перегруппировке ключевых точек.
Как известно, распознавание лиц работает путём идентификации на лице человека нескольких ключевых точек — и их соединения, в результате чего формируется уникальная «графическая» подпись. Эти ключевые точки обычно находятся вокруг глаз, носа и губ. Чтобы система могла работать при закрытой нижней половине лица исследователи расположили больше ключевых точек вокруг глаз и носа.
Собственно, это и легло в основу дальнейших усовершенствований.
Лирическое отступление. Стоит однако понимать, что те новости о возможностях систем компьютерного зрения, что вы могли видеть и слышать, касаются разных систем. А начать стоит с того, что компьютерное зрение не равно системе распознавания лиц. Люди часто валят все возможности в одну кучу, приписывая системам распознавания лиц и детект жестов, и построение моделей поведения человека (например, для выявления магазинных воришек). Все эти возможности есть, но они есть у разных систем. Конец лирического отступления.
На данный момент разные компании рапортуют о разных достижениях в плане качества распознавания частично перекрытого лица. Так, сооснователь NtechLab Александр Кабаков в интервью The Bell скромно сказал без конкретных цифр:
Наш алгоритм достаточно точный и хорошо работает с перекрытием. Его основная задача изначально была определять преступников. Поэтому очки, усы, борода и другие вещи, которые используют для маскировки, она распознает хорошо. Понятное дело, что сейчас люди надевают маски не потому, что они преступники, а потому, что прибегают к разумным мерам защиты. Но алгоритм все равно имеет высокую точность, и камеры, на которых система сейчас установлена, дают большую вероятность, что лицо в маске будет распознано. У нас уже были истории, когда распознавались люди в мотоциклетных шлемах, так что маска вряд ли сработает для защиты от алгоритма.А вот исследователи из Брэдфордского университета под руководством профессора Хассана Угайла (Hassan Ugail) в мае 2019 года сообщили об улучшенной модели распознавания лиц, добившись точности распознавания 90% на половине лица и 100% по трём четвертям лица. Научная статья «Глубокое распознавание лиц с использованием несовершенных данных о лицах» ("Deep face recognition using imperfect facial data") опубликована в журнале Future Generation Computer Systems (doi:10.1016/j.future.2019.04.025).
Но развивать только одно направление (распознавание лица) для идентификации человека было бы глупо. Поэтому уже сейчас анонсированы доработки, которые позволят определять человека по каким-либо отличительным признакам. В первую очередь, по походке. Уверен, в перспективе идентификация условного анонима будет проводиться по совокупности признаков: распознавание лица + распознавание походки. Это актуально для задачи с частичным перекрытием лица. Если количество людей ограничено (например, работниками заводка, жильцами дома), распознавание только по точкам вокруг глаз работает неплохо. Но если надо натянуть эту сову на масштабы города, увеличивается количество ложных результатов. И тут на помощь придёт второй источник - походка.
Как борются? Принципиально есть 2 подхода: затруднить распознавание или испортить сам софт для распознавания. Коротка поясню оба.
Затруднить распознавание - самый простой путь, потому что здесь каждый сам себе художник. Можно заматываться шарфом по самые уши. Можно носить специальный камуфляж аки Капитан Джек Воробей. Можно даже криповую маску напечатать.
Однако добавление дополнительных источников (определение походки, например) нивелирует этот способ. Тем не менее, это пока работает.
Другой способ борьбы недавно предложили исследователи из Чикагского университета - клоакинг фотографий. Суть в том, что можно вносить в фото человека такие искажения, которые будут невидимы глазу, но будут видимы машинному зрению и испортят его.
Алгоритм Fawkes эффективно подрывает базу обучения «вражеской» нейросети. Перед публикацией каждой фотографии в ней делаются незаметные попиксельные изменения, после чего она становится не то что непригодной для использования при обучении, а буквально портит систему распознавания лиц.
Интуитивно понятное пояснение в 2D-пространстве из четырёх признаков A, B, U, T, почему модель, обученная на искажённых фотографиях, не распознаёт лица на оригиналах. Слева — границы принятия решений при обучении на оригиналах, справа — границы принятия решений при обучении после клоакинга.
Проблема эффективности описанного способа кроется в пользователях. Не секрет, что системы распознавания лиц используют данные из открытых источников. И если вы ещё не дошли до этой мысли сами, вот вам она в лоб: всё, что вы загрузили когда-либо в Сеть больше вам не принадлежит. Все крупные компании используют данные своих пользователей в корыстных целях. Иногда их на этом ловят. Иногда нет.
Поэтому меняйте культуру поведения в Сети. Ну а если всё устраивает или вы понимаете, что прогресс не остановить, то расслабьтесь и наблюдайте, что будет дальше. И на этом ужасном разочаровании у меня всё.