Методы распознавания радужной оболочки глаз
Не так давно идентификация людей по радужной оболочке глаз казалась фантастической технологией, использующейся только для защиты суперсекретных военных и правительственных объектов. Но с развитием искусственного интеллекта биометрический анализ проник в обычные смартфоны и уже умеет узнавать владельца по лицу. В этой статье мы расскажем, как с помощью нейросетей можно распознать радужную оболочку глаз по фотографиями, снятым на камеру телефона.
Введение
Радужная оболочка — видимая невооружённым взглядом часть глаза, располагающаяся между зрачком и склерой. Рисунок оболочки уникален для каждого человека и не меняется с возрастом, поэтому технология его распознавания является одной из самых эффективных способов идентификации личности. Традиционные системы безопасности используют инфракрасные камеры и излучатели, позволяющие наблюдать гораздо больше деталей текстуры. Но конструктивно их довольно тяжело использовать в обычных смартфонах из-за большой мощности и тепловыделения. Поэтому возникла необходимость научиться распознавать радужную оболочку в видимом свете.
Одно из исследований проводилось в рамках конкурса 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) можно ознакомиться на сайте Национального центра биотехнологической информации.