Как работают технологии компьютерного зрения и какие задачи они решают
Применение компьютерного зрения становится востребованными в разных сферах – оплата по биометрии лица в ритейле или общественном транспорте, городское видеонаблюдение, системы контроля доступа на социально значимых и промышленных объектах, анализ состояния водителей, определение средств индивидуальной защиты на производстве, банковские и государственные сервисы.
Что такое компьютерное зрение
Компьютерное зрение – это часть прикладной математики. Задача в компьютерном зрении ставится следующим образом: по данным фото или видео ответить на все те же вопросы, на которые бы ответил живой человек. Есть алгоритмы решения для таких задач, как поиск объектов на изображении (например, лиц людей), их классификация и распознавание, отслеживание их перемещения в кадре и распознавание действий. Но текущие алгоритмы, в отличие от человека, не так хорошо распознают контекст и выделяют причинно-следственные связи.
Чтобы компьютер научился «видеть» и решать ту или иную задачу, используют алгоритмы машинного обучения. Для этого собирают большие наборы данных, внутри которых выделяют объекты, признаки или их комбинации.
Как это работает
Один из частных случаев компьютерного зрения, все чаще встречающийся нам в жизни – это распознавание лиц. Биометрия используется для оплаты в кафе, подтверждения банковских операций, при регистрации на порталах финансовых и государственных услуг.
Работает такая система следующим образом. Программа анализирует изображение, поступающее с камер, на наличие лиц в кадре. Когда лицо обнаружено, запускается алгоритм его отслеживания в видеопотоке – программа определяет, на какомиз кадров видео лицо запечатлено в лучшем качестве и ракурсе. На этом кадре с помощью алгоритма находятся ключевые точки лица, позволяющие определить его ориентацию на изображении. Портрет, «довернутый» с помощью ключевых точек лица до нужного стандартного положения, отправляется на сервис распознавания.
Из стандартного формата JPEG он преобразуется в дескриптор – набор неизменяемых параметров лица, который используется для последующего сравнения снимка с другим изображением. Дальше программа сравнивает два дескриптора и выдает ответ, занесен ли в базу попавший в кадр человек. Задача алгоритма распознавания заключается в том, чтобы дескрипторы, полученные из изображений одного и того же человека, были похожи, а для разных людей – различны.
Как создаются технологии
В основе современных систем компьютерного зрения лежат алгоритмы машинного обучения, как правило, это нейронные сети. Для их обучения нужно большое количество изображений с метками того, какие объекты на них находятся. В процессе обучения сеть сама определяет элементы, которые будет искать в других изображениях, чтобы распознать их с минимальным количеством ошибок. Иногда они совпадают с привычными нам деталями (если нейросеть решит, что узнавать собак ей помогают носы, она их запомнит), но чаще всего ее выбор не поддается интерпретации.
Актуальные задачи технологий
Одна из задач, которую перед биометрическими системами поставила пандемия, — распознавание лиц в масках. Это стало большим вызовом для рынка, так как их наличие снижает точность работы стандартных алгоритмов на 20%-50%. Основная проблема в подобных кейсах – значительное уменьшение количества информации, по которой можно построить хорошее представление лица.
В целом процесс распознавания лица в маске ничем не отличается от обычного. Система находит лицо, выравнивает его по ключевым точкам и формирует дескриптор (биометрический шаблон). Однако каждый из этих этапов становится сложнее – при наличии маски тяжелее найти лицо и его ключевые точки на изображении, поэтому конечный дескриптор получается менее точным. Чтобы решить эту проблему, необходима большая работа по формированию наборов данных для обучения нейронных сетей, в них учитывается наличие у человека различных атрибутов – очков, головных уборов, макияжа, маски и т. д. В итоге можно получить единый алгоритм, который одновременно может работать как на людях с масками, так и без.
Как определить лучший алгоритм
Для сравнения различных биометрических технологий по точности принято оценивать по показателям:
- ошибки первого рода – доля ложно-отрицательных (FNR, False Negatives Rate или FRR, False Rejection Rate) срабатываний от общего количества положительных запросов;
- ошибки второго рода – доля ложно-положительных (FPR, False Positives Rate или FAR, False Acceptance Rate) срабатываний от общего количества отрицательных запросов.
Например, если рассмотреть процесс разблокировки мобильного телефона при помощи технологии распознавания лиц, то FNR – это вероятность того, что ваш телефон вас не узнает, а FPR – это вероятность того, что злоумышленник сможет разблокировать ваш телефон своим лицом.
Помимо этого, важно учитывать быстродействие, стоимость, безопасность, масштабируемость и удобство использования решения.
Отраслевым бенчмарком является тестирование NIST Face Recognition Vendor Test Ongoing, которое ежегодно проводит Национальный институт стандартов и технологий США на больших закрытых наборах данных. Его цель – определить наиболее универсальные алгоритмы распознавания лиц, которые одинаково успешно работают в самых разных сценариях применения: Visa, Border, Visaborder, Mugshot. Их отличие в том, что тестирование проводится на разных типах изображений: фото на документы, снимки при прохождении паспортного контроля в аэропорту, портрет для картотеки. Типичный уровень точности современных систем распознавания лиц – FNR=0.003 при FMR=0.000001.
Почему технологии взлетели сейчас и что будет дальше
Прорывной рост технологий напрямую зависит от количества тренировочных данных и наличия компьютерных мощностей. Сейчас все эти условия сложились, и в мире есть сверхмощные компьютеры и все необходимые ресурсы для решения самых сложных задач. Если 10 лет назад в нейронной сети могло быть несколько тысяч настраиваемых параметров, то теперь их может быть несколько миллионов.
Количество доступных данных для обучения нейронных сетей также увеличилось на порядок. Помимо этого, активно продолжаются исследования в области обучения новых алгоритмов компьютерного зрения – каждый год выходят тысячи научных публикаций с описанием новых подходов к решению той или иной задачи, улучшающих точность работы алгоритма.
Одна из основных проблем нейронных сетей – требование большого количества размеченных данных для их обучения. Наблюдается тренд на создание таких алгоритмов, для обучения которых можно использовать данные без разметки или лишь небольшую ее часть. Много внимания уделяется повышению эффективности алгоритмов компьютерного зрения для работы на устройствах с небольшим количеством вычислительных ресурсов, например, на мобильных телефонах, видеокамерах и других умных устройствах. Также можно ожидать появление более комплексных решений для анализа большего количества атрибутов объектов с учетом контекста.