Простой способ спрятаться от популярных систем распознавания лиц
Прошлым летом, когда миллионы людей вышли на улицы, протестуя против полицейского произвола после убийства Джорджа Флойда, государственные учреждения, не теряя времени, обратились к системам распознавания лиц для отслеживания участников протестов. В то же время власти стали призывать носить маски для сдерживания эпидемии Covid-19, и многие обнаружили в этой мере свои преимущества. Масштабное исследование, опубликованное Национальным институтом стандартов и технологий в июле 2020 года, установило, что при помощи маски можно обмануть некоторые системы распознавания лиц почти в половине случаев – это позволяло предположить, что протестующие в масках получают некоторую защиту от массовой слежки.
Это навело меня на мысль: как наиболее эффективно использовать маски и прочие повседневные аксессуары, чтобы запутать системы распознавания лиц? Я решил это выяснить.
По сведениям Gothamist, департамент полиции Нью‑Йорка использовал для преследования активиста движения Black Lives Matter Дэррика Ингрэма системы распознавания лиц (возможно, в сочетании с фотографиями из социальных сетей). Поступали данные о нескольких ошибочных арестах, в особенности темнокожих людей, которые были произведены в результате использования технологий. Я сам тестировал системы распознавания лиц вроде Clearview AI и мог лично убедиться в их мощности. Из-за широкого применения распознавания лиц для ареста участников протестов стали звучать призывы запретить подобные технологии, и по стране уже пошла волна законодательной деятельности по этому вопросу.
Многие активисты и участники протестов не захотели дожидаться законов, регулирующих применение систем распознавания лиц, и взяли дело в свои собственные руки, придумывая находчивые способы вызвать сбой в работе технологий. В ход пошли и анти-надзорная косметика, и особые кастомизированные стикеры, которые выглядят как QR-коды, и фильтры для фотографий, которые выступают в роли цифровой «маски». К сожалению, многие из этих способов не работают. А другие, например, анти-надзорная косметика, требуют больших временных затрат и сильно бросаются в глаза. Маски, напротив, легко снимаются и надеваются, к тому же их можно носить на людях, не привлекая к себе лишнего внимания.
Исследование Национального института стандартов и технологий, посвящённое влиянию масок на работу систем распознавания, было всеохватным – оно включало 89 платформ. Но имелись в нём и недочёты. Так, в экспериментах не использовались настоящие маски – исследователи накладывали на фотографии цифровые маски, а потом загружали отредактированные изображения для тестирования различных систем. Также выяснилось, что успешность распознавания сильно варьирует. Некоторые системы удавалось обмануть в 50% случаев, а другие – только в 5%. Я организовал серию экспериментов своими силами, чтобы понять, какие типы масок лучше всего морочат голову системам распознавания лиц.
Для тестирования я выбрал функцию сравнения лиц из программы Face++ от Megvii. Face++ — популярный провайдер сервисов по распознаванию. Получить доступ к платформе можно через API, и сравнение пары фотографий стоит всего 0,002 $, что делает платформу доступной практически для всех. Кроме того, по отзывам, Face++ хорошо справляется с распознаванием лиц в масках. Скорее всего, это объясняется тем, что компания-производитель родом из Китая, где маски были популярны ещё до пандемии. Вероятно, систему обучали на фотографиях людей в масках за годы до того, как они вошли в обиход на Западе.
Я начал с того, что загрузил самую обычную фотографию, на которой хорошо видно моё лицо, на платформу Face++, а потом добавил ещё одну, практически идентичную, сделанную в точно таком же освещении. С точки зрения системы распознавания лиц, это почти идеальные условия для сравнения.
Как и следовало ожидать, Face++ справилась с задачей и установила идентичность с точностью в 95,071%. Это дало мне общее представление о том, насколько хорошо срабатывает система.
Затем я приступил к тестированию с применением распространённых масок разных видов. Сперва я попробовал сфотографироваться в простой голубой одноразовой маске. Снимки, опять же, делались под одинаковым углом и в одинаковом освещении.
Нужно отдать должное: маска не слишком-то сбила Face++ с толку. Оценка вероятности упала до 74,765% — приличный спад, но всё-таки довольно высокая точность, учитывая, что я закрыл больше половины лица. Это подтверждает мои догадки о влиянии происхождения Face++, а также правоту всех исследований, которые сообщают, что компании уже реагируют на последствия пандемии и учат свои системы узнавать лица в масках.
Дальше я стал пробовать разные дизайны масок. Я предполагал, что маска N95 ещё сильнее ухудшит результат, так как закрывает большую площадь. Однако в реальности точность выросла до 77,59%.
Когда я надел маску сына с персонажами из мультфильма «Щенячий патруль», точность подскочила до 82,421% — думаю, это потому, что маска мне маловата и лицо просматривается лучше. Также я попробовал использовать маску с прикрепленной степлером фотографией Тома Круза спереди, надеясь обескуражить Face++ тем, что одно лицо располагается поверх другого – этой техникой успешно пользовались до меня. Не получилось: система правильно определила, где моё лицо, и установила совпадение с вероятностью 79,191%. Ну и смотрится подобное не так чтобы очень естественно.
Затем я протестировал кастомизированный анти-надзорный дизайн, созданный при помощи программы на Python, которая создаёт градиентную гистограмму, специально построенную таким образом, чтобы сбивать алгоритмы распознавания. Из этого тоже ничего не вышло – точность, наоборот, ещё и выросла до 83,864%. На этом этапе я уже начинал терять терпение. Казалось, что Face++ способна справиться чуть ли не с чем угодно. Чем сильнее я старался замаскироваться, тем более уверенно она меня опознавала.
В последней отчаянной попытке я решил попробовать способ, который казался слишком уж простым, чтобы сработать. Я снова надел свою простенькую голубую одноразовую маску, но на этот раз добавил к ней ещё и тёмные очки, которые обычно ношу. Когда я загрузил фотографию на платформу Face++, результаты меня огорошили. Сочетание маски и тёмных очков не просто снизило точность распознавания – оно помешало программе в принципе обнаружить лицо на фотографии. Просто дополнив маску очками, я фактически сделался невидимым для системы.
Казалось, что это слишком уж хорошо, чтобы быть правдой, поэтому я загрузил те же фотографии в другой популярный сервис для распознавания лиц, FaceX. API FaceX установил идентичность фотографии в маске с вероятностью в 70,39% — результат, сопоставимый с тем, что выдавала Face++. Но с добавлением тёмных очков вероятность упала до 11,18%, что вынудило систему заключить, что «эти лица принадлежат разным людям».
Но почему добавление на фотографию очков дало такой мощный эффект? Чтобы ответить на этот вопрос, не помешает пристальнее взглянуть на то, как платформы вроде Face++ идентифицируют людей. Такие системы обычно обучают определять набор разнообразных ключевых точек на лице: положение глаз, носа, рта, линия волос, форма лица. Вот какие ключевые точки Face++ выявил у меня на лице, сфотографированном без маски (они отмечены голубыми точками):
Добавление маски снижает точность определения – но не до нуля. Даже массивная N95 позволяет Face++ вполне отчётливо различать у меня на лице глаза и брови. Ориентируясь по скулам, система также может с приемлемой точностью достроить очертания той части лица, которая скрыта под маской. Она даже может составить какие-то более-менее обоснованные догадки о том, где у меня под маской располагаются нос и рот.
Но когда надеты тёмные очки, система лишается богатого и ценного набора данных, касающихся глаз и бровей. К тому же, края очков загораживают скулы настолько, что и из этого участка много информации не выжмешь. Вместе с тем, маска по-прежнему полностью прячет нос и рот, и скрывает область подбородка. В совокупности маска и очки, по всей видимости, отнимают у систем такой объём данных, что они теряют способность должным образом провести сравнение (а в некоторых случаях – и вообще опознать на фотографии лицо, как это вышло с Face++), и результат получается неверным.
Это серьёзный успех, особенно если учесть, что обычная одноразовая маска и тёмные очки чуть ли не с начала пандемии остаются моим стандартным прикидом «на выход». Если кто-то на улице увидит меня в таком виде, то и глазом не моргнёт – и при этом, как выясняется, я становлюсь невидимым для систем распознавания лиц, которые спокойно узнали бы моё лицо под простой маской.
Сколько ещё эта техника будет работать против систем распознавания лиц? Сложно сказать. Распознавание лиц как область знания постоянно развивается. Учитывая, что она крайне полезна при расследовании серьёзных преступлений, вдобавок к профилированию невинных людей, скорее всего, рано или поздно создатели алгоритмов распознавания сумеют их адаптировать к сочетанию маски и очков. Кроме того, в некоторых общественных местах тёмные очки запрещены, да и в помещениях их далеко не все носят (прозрачные линзы тут не срабатывают – только затемнённые). Также нельзя с уверенностью утверждать, что техника сумеет обмануть те алгоритмы, которые использует полиция и государственные учреждения – они могут отличиться от тех, которые находятся в общем доступе. Наконец, даже без технологий распознавания у этих учреждений есть множество других способов отслеживать людей.
Но на текущий момент, по крайней мере, для тех платформ, которые я рассматривал, сочетание тёмных очков и маски является простым и на удивление эффективным способом сохранить анонимность, даже в условиях массовой слежки.