Программное обеспечение для распознавания лиц для отслеживания пропавших детей.

Новость о пропавших детях недавно привлекла мое внимание.

https://timesofindia.indiatimes.com/city/delhi/missing-piece-of-puzzle-face-matching-software-can-aid-parents-search-for-kids/articleshow/63358470.cms

Неправительственная организация Кайлаша Сатьярти Bachban Bacho Andolan (BBA) призывает все детские учреждения в Индии интегрироваться с правительствами, использовать портал «Отслеживание пропавших детей» и программное обеспечение для распознавания лиц, чтобы быстро находить пропавших детей. Это был отличный вариант использования в пространстве AI4Good, который побудил меня изучить эту тему. Эта статья — попытка показать с высоты птичьего полета, где мы находимся и как мы сюда попали. Цель состоит в том, чтобы побудить студентов изучить этот вариант использования с помощью инструментов с открытым исходным кодом.

Технология Apple iPhone X Face ID — наиболее наглядный пример современного состояния дел в этой области. В этом техническом документе приведены некоторые подробности.

https://images.apple.com/business/docs/FaceID_Security_Guide.pdf

Примечательны следующие моменты.

- Технология сосредоточена вокруг нейронных сетей.

- Нейронный движок работает на процессоре Apple A11 Bionic.

- Нейронная сеть была обучена на более чем миллиарде изображений.

- iPhone X использует систему камер TrueDepth, состоящую из ИК-излучателя и ИК-камеры, для создания изображения и карты глубины лица.

- Эти данные отправляются в нейронную сеть для создания математического представления лица, которое затем сравнивается с математическим представлением лица, изначально зарегистрированным пользователем.

- Если есть совпадение, делается положительный идентификатор.

- Apple утверждает, что эта технология имеет шанс 1 на миллион неправильной идентификации по сравнению с 1 на 50 000 для сенсорного ID.

Очень впечатляет. Эта технология является собственностью Apple, но другие, такие как Google, Facebook, Baidu и многие другие, скоро ее догонят. Давайте теперь попробуем увидеть, как эта область развивалась с годами и как обстоят дела с открытым исходным кодом.

Работа над программным обеспечением для распознавания лиц ведется с 1960-х годов. Однако использование глубокого обучения для распознавания лиц началось сравнительно недавно, и его можно проследить до новаторской работы, проделанной Яном ЛеКуном в области сверточных нейронных сетей (CNN). Янн ЛеКун был учеником Джеффри Хинтона, которого считают отцом нейронных сетей. В 1998 году Янн ЛеКун опубликовал свою известную статью о LeNet-5, 7-слойной CNN, которая использовалась для классификации цифр. С тех пор CNN широко используются в компьютерном зрении и обработке изображений. Позже Янн ЛеКун стал директором Facebook AI Research Lab (FAIR), и вполне уместно, что в 2014 году исследовательская группа FAIR опубликовала прорывную статью об использовании CNN для распознавания лиц. Она называлась DeepFace, и вы можете получить доступ к бумага здесь.

https://research.fb.com/wp-content/uploads/2016/11/deepface-closing-the-gap-to-human-level-performance-in-face-verification.pdf

DeepFace был обучен на наборе данных из 4,4 миллиона изображений и сообщил о точности 97% по сравнению с 85% для системы идентификации следующего поколения ФБР в то время. Дальнейшие улучшения были предложены исследовательской группой Google, которая предложила подход на основе CNN под названием FaceNet в 2015 году. Документ FaceNet можно найти здесь.

https://arxiv.org/pdf/1503.03832.pdf

FaceNet был обучен на наборе данных из 200 миллионов изображений и показал точность 99,63%.

К настоящему времени должно быть очевидно, что интернет-гиганты, имевшие доступ к очень большим наборам данных для обучения, имели преимущество перед другими, а их модели были проприетарными. К счастью, исследовательские группы в нескольких университетах, таких как Оксфорд и CMU, помогли опубликовать модели в открытом доступе, которые не сильно отстают. Например, лаборатория CMU опубликовала свою работу под названием OpenFace, и с ней можно ознакомиться здесь.

http://cmusatyalab.github.io/openface/

Точно так же Visual Geometry Group (VGG) в Оксфорде публикует свои работы здесь.

http://www.robots.ox.ac.uk/~vgg/

Реализация FaceNet с использованием Tensorflow доступна здесь.

https://github.com/davidsandberg/facenet

OpenFace использует Torch, но для тех, кто предпочитает Keras, здесь также доступна версия OpenFace для Keras.

https://github.com/iwantooxxoox/Keras-OpenFace

Поскольку я начал с того, что хотел бы побудить студентов изучать распознавание лиц с помощью инструментов с открытым исходным кодом, вот мое предложение. Изучайте Python, Tensorflow и Keras. Все это находится в открытом доступе, и существует множество инструментов онлайн-обучения. Упомянутая выше модель распознавания лиц Keras OpenFace обеспечивает точность 93,8% и может давать хорошие результаты. Вот как будет работать решение для поиска пропавших детей.

- Все дети в детских учреждениях будут сфотографированы и фотографии будут загружены в трек портала пропавших детей.

- Фотографии всех пропавших детей загружены на портал отслеживания пропавших детей.

- Отслеживание пропавшего дочернего портала запускает все изображения через систему распознавания лиц CNN и генерирует векторы признаков каждого изображения.

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

Счастливого обучения !!.