Методы распознавания радужной оболочки глаз

Не так давно идентификация людей по радужной оболочке глаз казалась фантастической технологией, использующейся только для защиты суперсекретных военных и правительственных объектов. Но с развитием искусственного интеллекта биометрический анализ проник в обычные смартфоны и уже умеет узнавать владельца по лицу. В этой статье мы расскажем, как с помощью нейросетей можно распознать радужную оболочку глаз по фотографиями, снятым на камеру телефона.

Введение

Радужная оболочка — видимая невооружённым взглядом часть глаза, располагающаяся между зрачком и склерой. Рисунок оболочки уникален для каждого человека и не меняется с возрастом, поэтому технология его распознавания является одной из самых эффективных способов идентификации личности. Традиционные системы безопасности используют инфракрасные камеры и излучатели, позволяющие наблюдать гораздо больше деталей текстуры. Но конструктивно их довольно тяжело использовать в обычных смартфонах из-за большой мощности и тепловыделения. Поэтому возникла необходимость научиться распознавать радужную оболочку в видимом свете.

Одно из исследований проводилось в рамках конкурса NICE (Noisy Iris Challenge Evaluation) с использованием набора данных UBIRIS (University of Beira Iris). Датасет содержит изображения глаз, снятые с расстояния от четырёх до восьми метров в различных условиях. Многие фотографии сделаны с плохой фокусировкой, неудачным углом обзора, плохим освещением и другими зашумлениями для имитации реальных трудностей, с которыми можно столкнуться при распознавании радужной оболочки. На рисунке ниже показаны примеры снимков низкого качества.

Для этой задачи применяются как алгоритмические, так и нейросетевые методы. Исследователи из университета Донгук разработали два новых метода, основанных на свёрточных нейронных сетях. Первый метод применяется только к обычным фотографиям и использует три свёрточных архитектуры. Второй алгоритм основан на нейросети IrisDenseNet и может применяться как к изображениям, снятым при видимом свете, так и к инфракрасным снимкам.

Метод 1. Три нейросети

Общий ход алгоритма показан на рисунке ниже. Сначала по исходной фотографии определяется радужная оболочка и зрачок. Затем идентифицируются две периокулярные зоны, которые немного шире, чем область оболочки. Обнаруженные регионы преобразуются в три нормализованных изображения с полярными координатами, чтобы вычислить радиус радужной оболочки. Полученные кадры используются в качестве входных данных для трёх CNN, которые извлекают из них особые признаки и вычисляют расстояние (оценку) между обнаруженными и истинными признаками. Путём слияния трёх значений вычисляется общая оценка, на основе которой выполняется распознавание радужной оболочки.

— Получение трёх изображений

Периокулярные области помогают в тех случаях, когда рисунок радужки плохо различим из-за различных искажений. Они расширяют исследуемую зону, чтобы в дальнейшем избежать потери важных деталей и точнее выполнить нормализацию.

— Нормализация

Размер радужных оболочек может отличаться даже у глаз одного человека. Кроме того, зрачок может расширяться или сужаться при изменении уровня освещения. Чтобы эти факторы не влияли на процесс, выполняется нормализация полученных областей в изображения с полярными координатами, разделённые на секторы — одинаковые участки размером в один пиксель. Всего получается 8x256 секторов.

— CNN

Традиционные архитектуры, такие как AlexNet и VGGNet, обычно принимают на вход квадратные фотографии и используют симметричные фильтры. Однако полученные в результате нормализации изображения имеют несимметричный размер (8x256), поэтому предварительно обученные CNN для них не подходят. Чтобы решить эту проблему, исследователи предложили новую структуру нейросети с несимметричными фильтрами. 

Сеть состоит из восьми свёрточных слоёв и использует нестандартные размеры фильтров: 1x13x3, 1x13x64, 1x13x128 и так далее. Причины использования таких размеров заключались в том, что ширина изображения в полярных координатах намного превышает высоту, а вертикальная корреляция рисунка радужки больше, чем горизонтальная. Следовательно, эту избыточность можно уменьшить только с помощью фильтра, ширина которого намного больше высоты. 

Завершают структуру три полносвязных слоя. Подобная архитектура используется для всех трёх свёрточных нейросетей.

— Результаты экспериментов

Используемый датасет NICE.II содержит 1000 фотографий глаз и 171 класс. Для качественного обучения нейросети такого объёма данных обычно недостаточно. Поэтому датасет был дополнен до 81000 образцов с помощью различных операций над изображениями, а затем разделён на две подвыборки A и B примерно по 40000 образцов в каждой.

Для обучения нейросети использовался фреймворк Caffe, кросс-энтропийная функция потерь и оптимизатор Adam. 

Оценка точности модели проводилась с помощью биометрических метрик:

— ложное распознавание (False Access Rate, FAR)

— отказ распознавания (False Reject Rate, FRR)

Уровень ошибок в случае, когда FAR=FRR, называется EER (equal error rate) и обычно применяется для сравнения разных биометрических методов (чем он меньше, тем лучше). Также для оценки модели использовался индекс чувствительности (d-Prime Value) — чем выше его значение, тем эффективнее работает биометрическая система.

Чтобы оценить модель на фотографиях, снятых на обычные смартфоны, исследователи провели эксперимент с датасетом MICHE. Он содержит снимки глаз, сделанные на iPhone 5, Galaxy Tab2 и Galaxy S4. В таблице ниже можно увидеть сравнение описанного метода с другими существующими алгоритмами. Оценки ERR и d-Prime показывают, что решение достигает более высокой точности.

В дальнейшем исследователи планируют улучшить точность распознавания, разработав более глубокую структуру CNN и дополнив её другими методами извлечения признаков из изображений. 

Метод 2. IrisDenseNet

Алгоритм также предназначен для распознавания радужной оболочки глаза по обычным фотографиям. Исходное изображение отправляется в свёрточную нейросеть IrisDenseNet без какой-либо предварительной обработки. В процессе распознавания модель определяет семантическую сегментацию для радужной оболочки. 

На рисунке ниже показана архитектура нейросети. Она состоит из 13 слоёв и использует сочетание двух методов: свёрточная сеть с усиленным распространением признаков (DenseNet) и сеть типа энкодер-декодер SegNet. Это позволяет значительно улучшить процесс извлечения и распознавания признаков.

Архитектура включает пакетную нормализацию и функцию активации ReLU. Нейросеть обучалась с нуля на упомянутом наборе данных NICE.II, который также был расширен с помощью различных методов дополнения данных.

На рисунке ниже показаны успешные результаты сегментации, полученные IrisDenseNet.Эффективность метода измеряется метрикой Ea — средней ошибкой (чем меньше, тем лучше). Для наглядного представления результата определены два типа ошибок: ложноположительная и ложноотрицательная. Первая — ложноположительная классификация пикселя, не принадлежащего радужной оболочке, а вторая —  ложноотрицательная классификация пикселя оболочки. Ложноположительные и отрицательные ошибки отмечены зелёным и красным цветами соответственно.

Алгоритм также был протестирован на наборе данных MICHE и показал следующие результаты:

Видно, что метод превосходит предыдущие. Исследователи планируют оптимизировать его, уменьшив число слоёв нейросети без потери точности, чтобы сделать её более быстрой и доступной для использования на смартфонах.

Распознавание радужной оболочки — инновационный и надёжный метод биометрической аутентификации. Искусственный интеллект делает эту технологию более доступной для использования в камерах видеонаблюдения, смартфонах и прочих способах контроля доступа и безопасности. Кроме того, такая идентификация снизила бы риск отказа систем распознавания лиц. 

В следующей части статьи мы покажем практический кейс для распознавания и отслеживания глаз в реальном времени. Пишите в комментариях, пользуетесь ли вы биометрическими сенсорами? Снимаете блокировку отпечатком пальца, или может применяете Face Unlock?

C оригинальными материалами (1, 2) можно ознакомиться на сайте Национального центра биотехнологической информации.

Кейс Stworka: как создать ERP в облаке для 5000 строительных компаний

А также запустить маркетплейс для строителей и обрабатывать 1,5 млн артикулов ежедневно. Рассказываем, как компания Stworka развернула IT-инфраструктуру в Облаке...
Read More

Системы контроля версий: зачем они нужны и как их использовать

Мир разработки ПО издалека кажется непонятным и запутанным, но существуют инструменты, которые значительно упрощают жизнь и делают работу более эффективной....
Read More

Соглашение об уровне обслуживания (SLA)

Поговорим о документе, который может серьезно повлиять на успех проекта, будь то интернет-магазин, SaaS-платформа или любой другой онлайн-сервис. Речь пойдет...
Read More

Что такое S3 (Simple Storage Service)

Если вы только начинаете свой путь в разработке, вам обязательно нужно познакомиться с S3. Это краеугольный камень многих современных приложений...
Read More

Полный обзор NoSQL: особенности и использование

Развитие интернета диктует новые правила в разработке. Традиционные базы данных, которые называются реляционными (RDBMS), не справляются с задачами, которые требуют...
Read More

Как использовать DataSphere. Датасеты в DataSphere

Данные нужны в любой сфере: магазины анализируют продажи, в медцентры — истории болезней, ученые — результаты экспериментов. Чем больше информации,...
Read More

Основные задачи машинного обучения: классификация, регрессия, кластеризация и уменьшение размерности

Machine Learning ― это уже часть нашей повседневной жизни. От рекомендаций фильмов на Кинопоиске до спам-фильтров в почте — за...
Read More

Обзор CLI: командная строка и ее возможности

Когда были созданы первые компьютеры, операционной системой на них можно было управлять только при помощи ввода текстовых команд. Со временем...
Read More

Шардирование в базах данных: обзор концепции

В условиях стремительного роста объемов данных и увеличения нагрузок на информационные системы эффективность их масштабирования становится критически важной. Одним из...
Read More

Графический процессор (GPU): что это, для кого, разновидности

Дизайнерам, проектировщикам и разработчикам требуются мощные вычислительные ресурсы для работы. Обычный процессор (CPU) не справится с такими задачами, как обработка...
Read More