Распознавание лиц является одной из основных задач в области компьютерного зрения с широким спектром приложений, включая: безопасность, биометрию, социальные сети, робототехнику и медицину. С развитием технологий глубокого обучения, сверточные нейронные сети (CNN) стали основным инструментом для решения этой задачи. Однако, несмотря на значительные успехи, точность и надежность распознавания лиц в реальных условиях остаются серьезной проблемой.
Сложности возникают из-за изменчивости внешнего вида лиц, ограниченности обучающих данных и высокой вычислительной сложности современных моделей. Изменения освещения, ракурса, выражения лица, а также наличие аксессуаров (очки, головные уборы) или шума в изображении усложняют задачу. Кроме того, в реальных приложениях часто доступно ограниченное количество примеров для каждого лица, что приводит к переобучению моделей, особенно в задачах верификации и one-shot learning [1]. Это подчеркивает необходимость разработки методов, способных работать в условиях реальных данных с высокой точностью и производительностью.
Одним из перспективных подходов к решению этих проблем является использование сиамских нейронных сетей в сочетании с CNN. Сиамские сети состоят из двух идентичных подсетей, которые обучаются на парах изображений и вычисляют степень их сходства. Это делает их эффективными для задач сравнения изображений, таких как верификация лиц.
За последние годы был достигнут значительный прогресс в этой области, включая такие исследования, как DeepFace, DeepID, FaceNet и другие [2, 3]. Они демонстрируют высокую точность на известных наборах данных, таких как LFW. В частности, использование функций потерь, таких как Contrastive Loss и Triplet Loss, позволяет улучшить качество обучения сиамских сетей. Однако проблемы, связанные с обучением на больших и разнообразных наборах данных, остаются нерешенными.
Целью данной статьи является выявление оптимальных архитектур и подходов для использования CNN в сиамских нейронных сетях. Основные задачи включают:
Результаты помогут улучшить точность и производительность систем распознавания лиц в условиях реальных данных, а также определить направления для будущих исследований.
Сиамские нейронные сети (Siamese Neural Networks) — архитектура, которая вычисляет метрику сходства между двумя объектами. Их ключевая особенность — использование двух (или более) идентичных подсетей с общими параметрами, каждая из которых обрабатывает свои входные данные. Это позволяет эффективно обучаться на парах примеров, сравнивая их и определяя степень сходства.
Каждое изображение из пары проходит через одну из подсетей, где извлекаются признаки. На выходе сети формируется эмбеддинг (вектор признаков) для каждого изображения, после чего их сходство оценивается с использованием функции расстояния, например, Евклидова или косинусного.
Архитектура сиамской сети состоит из следующих компонентов (см. рис. 1):
На этапе обучения сеть работает с парами изображений:
На этапе инференса сеть получает два изображения, вычисляет их эмбеддинги и оценивает сходство. Если значение функции расстояния меньше заданного порога, изображения считаются принадлежащими одному человеку.
Функции потерь играют ключевую роль в обучении сиамских нейронных сетей, так как они определяют, как сеть должна корректировать свои параметры для оптимального различения похожих и непохожих объектов.
Contrastive Loss — одна из наиболее популярных функций потерь для сиамских сетей. Она используется для обучения сети различать похожие и непохожие пары объектов, минимизируя расстояние между эмбеддингами похожих объектов и максимизируя расстояние между эмбеддингами непохожих [4].
Формула Contrastive Loss:
где D(x1, x2) — расстояние между эмбеддингами, y — метка класса (1 для разных лиц и 0 для одинаковых), m — минимальное допустимое расстояние между эмбеддингами разных лиц.
Triplet Loss используется для обучения эмбеддингов, обеспечивающих большую близость между похожими объектами и их значительное различие с непохожими объектами [5]. Эта функция потерь требует обучения на триплетах: якорное изображение (xa), положительный пример (xp), и отрицательный пример (xn) (см. рис. 2) [6].
где D(xa, xp) — расстояние между эмбеддингами якорного изображения и положительного примера, D(xa, xn) — расстояние между эмбеддингами якорного изображения и отрицательного примера, α — маржа, которая обеспечивает, что D(xa, xn) существенно больше D(xa, xp).
Архитектура VGG, предложенная в 2014 году, остаётся популярной благодаря своей простоте и эффективности. Она состоит из последовательности свёрточных слоёв с фиксированным размером фильтра (3×3) и максимального пулинга (2×2). Наиболее распространённой конфигурацией является VGG16 (см. рис. 3).
Архитектура обеспечивает высокую точность, однако её вычислительная сложность и потребление памяти затрудняют использование на устройствах с низкими ресурсами.
где W – весовые коэффициенты, b – смещение, * - операция свёртки.
ResNet, предложенная в 2015 году, решает проблему затухания градиентов с помощью резидуальных блоков и shortcut connections. Это позволяет эффективно обучать глубокие архитектуры, такие как ResNet50, ResNet101 и ResNet152 (см. рис. 4). Хотя ResNet обладает умеренной вычислительной сложностью, она обеспечивает высокую точность в задачах распознавания лиц.
где F(x, {Wi}) - выход свёрточных слоев, x — входной сигнал.
Архитектура Inception была разработана для повышения эффективности свёртки за счёт параллельных операций с фильтрами разного размера (например, 1×1, 3×3 и 5×5) (см. рис. 5). Благодаря оптимизации вычислительных ресурсов, Inception подходит для задач с ограниченными ресурсами и используется в мобильных приложениях.
где f1(x), f3(x), f5(x) - результаты свертки с фильтрами соответствующего размера.
MobileNet оптимизирована для мобильных устройств за счёт использования depthwise separable convolutions, что позволяет значительно снизить вычислительную сложность (см. рис. 6). Хотя она уступает по точности глубоким моделям, таким как ResNet, её эффективность делает её идеальной для встроенных систем [7].
где fdepthwise — свертка по каналам, fpointwise — объединение каналов.
Для обучения и тестирования моделей распознавания лиц используют популярные наборы данных, включающие большое количество изображений с метками классов.
Ключевые наборы данных:
Для обеспечения надежного обучения и повышения качества модели используется предобработка и аугментация данных. С помощью методов, таких как Multi-task Cascaded Convolutional Networks (MTCNN), лица на изображениях выравниваются относительно глаз и носа [8]. Все изображения приводятся к единому размеру (например, 112×112 пикселей) для совместимости с архитектурой сети. Значения пикселей нормализуются в диапазон [0,1] или стандартизируются (обнуление среднего и деление на стандартное отклонение). Удаляются изображения с низким качеством, сильными шумами или частичным перекрытием лица.
Методы аугментации:
Эксперименты направлены на оценку точности и эффективности различных архитектур CNN в составе сиамских нейронных сетей для задачи распознавания лиц. Прежде всего, были выбраны несколько популярных архитектур CNN: VGG, ResNet, Inception и MobileNet. Эти архитектуры использовались в качестве базовых компонентов сиамской сети.
Для обучения использовались следующие параметры:
Обучение осуществлялось на наборах данных CASIA-WebFace и VGGFace2, которые обеспечивают широкий спектр изображений. Тестирование производилось на LFW для оценки верификации и MegaFace для проверки производительности в условиях больших баз данных.
Изображения из всех наборов данных были предварительно обработаны до размера 112×112, с применением различных методов аугментации, таких как изменение освещения, геометрические трансформации и добавление шума. Эксперименты проводились на оборудовании с использованием GPU NVIDIA RTX 3070, в среде PyTorch версии 2.1. Для оценки качества работы моделей использовались метрики: точность (accuracy) и среднее время обработки одного изображения.
Результаты можно увидеть в таблице 1.
| Архитектура | LFW (Accuracy) | MegaFace (Top-1 Accuracy) | Время обработки (мс) |
|---|---|---|---|
| VGG | 96.2% | 86.4% | 125.5 |
| ResNet | 98.4% | 92.1% | 84.8 |
| Inception | 97.7% | 89.9% | 66.1 |
| MobileNet | 94.3% | 84.3% | 17.7 |
Средние значения точности распознавания с использование функций потерь Contrastive Loss и Triplet Loss можно увидеть в таблице 2.
| Функция потерь | LFW (Accuracy) | MegaFace (Top-1 Accuracy) |
|---|---|---|
| Contrastive Loss | 95.1% | 86.6% |
| Triplet Loss | 96.65% | 88.17% |
В статье рассмотрена эффективность использования сиамских нейронных сетей, построенных на базе различных архитектур CNN, для решения задачи распознавания лиц. Проведенный анализ показал, что такие архитектуры, как ResNet и Inception, обеспечивают наилучшее сочетание точности и производительности, в то время как MobileNet предлагает компромисс между вычислительной сложностью и качеством распознавания.
Были изучены проблемы, связанные с изменчивостью условий съемки, низким качеством данных и ограниченным количеством изображений. Применение функций потерь Contrastive Loss и Triplet Loss позволило добиться значительного улучшения точности распознавания. Однако выявлены ограничения современных методов, включая сложности в обработке изображений с экстремальными углами или аксессуарами.
Полученные результаты подчеркивают важность использования более сложных методов аугментации данных, адаптивных функций потерь и легковесных моделей для обеспечения высокой производительности на устройствах с ограниченными ресурсами. В перспективе дальнейшие исследования могут быть направлены на разработку новых архитектур CNN, улучшение робастности моделей и повышение устойчивости к атакам, что обеспечит более широкое применение систем распознавания лиц в реальных условиях.