Об этом проекте

InsightFace — это комплексный проект с открытым исходным кодом для 2D- и 3D-анализа лиц, поддерживаемый Jia Guo и Jiankang Deng. Он предоставляет богатый набор современных алгоритмов для распознавания лиц, обнаружения лиц, выравнивания лиц, замены лиц и 3D-реконструкции лиц, оптимизированных как для обучения, так и для развертывания. Проект в основном построен на PyTorch и MXNet, поддерживает Python 3.x с PyTorch 1.6+ и/или MXNet 1.6-1.8. Ключевые модули включают: 1. Распознавание лиц: реализует ArcFace (CVPR 2019), SubCenter ArcFace (ECCV 2020), PartialFC (CVPR 2022), VPL (CVPR 2021) и другие. Поддерживает несколько архитектур, включая IResNet, MobileFaceNet, MobileNet, InceptionResNet_v2 и DenseNet. Включает обучающие данные (очищенные MS1M, VGG2, CASIA-Webface), конвейеры оценки (IJB, MegaFace) и предобученные модели. 2. Обнаружение лиц: реализует RetinaFace (CVPR 2020) и SCRFD (Arxiv 2021), предоставляя код обучения, наборы данных, предобученные модели и скрипты оценки. 3. Выравнивание лиц: реализует SDUNets (BMVC 2018) для выравнивания на основе тепловых карт и SimpleRegression для легкой регрессии координат. 4. 3D-реконструкция лиц: включает методы для монокулярной 3D-реконструкции лиц, реконструкции отражательных свойств лица (CVPR 2024) и оценки направления взгляда. 5. Замена лиц: предоставляет модели inswapper для замены идентичности лица. 6. Проверка живости: дополнительный модуль проверки живости по RGB с режимами normal/observe, оценками для каждого лица и причинами отклонения ввода. InsightFace 2.0 вводит PrivateFrame для локального размытия и мозаики лиц в видео, выбор эталонного фото и редактируемый JSON анализа через рабочие процессы с десктопа, CLI и Python, с режимом Fast по умолчанию, нацеленным на 15 FPS анализа. Проект также предоставляет: - Python-пакет для легкого обнаружения, распознавания и выравнивания на входных изображениях, с автоматическим выбором провайдера CoreML/CUDA/CPU и повторно используемыми кэшами компиляции CoreML. - InsightFace Server: самостоятельно размещаемый веб-интерфейс с REST API в стиле snake_case и Python-клиентом для обнаружения, необязательной проверки живости, сравнения, регистрации и поиска людей. Работает на одном контейнере Linux x86_64 CPU или NVIDIA GPU с локальным выводом ONNX Runtime и SQLite, используя модели, проверенные манифестом оператора. Предлагает INT8 квантование эмбеддингов с сохранением точности и поиск по более чем 50 миллионам изображений на одном GPU RTX 5090. - InspireFace: кроссплатформенный C/C++ SDK для распознавания лиц. - Кроссплатформенный десктопный GUI Demo для распознавания лиц, корпоративной оценки, отчетов и пробной замены лиц. Код выпущен под лицензией MIT без ограничений для академического и коммерческого использования. Обучающие данные и модели доступны только для некоммерческих исследовательских целей. Проект достиг заметных результатов, включая 1-е место в NIST-FRVT 1:1 VISA и 1-е место в задаче монокулярной 3D-реконструкции лиц на основе перспективной проекции на семинаре ECCV-2022 WCPA.