프로젝트 소개

InsightFace는 Jia Guo와 Jiankang Deng이 유지 관리하는 포괄적인 오픈소스 2D 및 3D 얼굴 분석 프로젝트입니다. 얼굴 인식, 얼굴 감지, 얼굴 정렬, 얼굴 스와핑, 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. Liveness 감지: 일반/관찰 모드, 얼굴별 점수, 입력 거부 사유를 제공하는 선택적 RGB liveness 감지 애드온입니다. InsightFace 2.0은 로컬 비디오 얼굴 블러 및 모자이크를 위한 PrivateFrame, 참조 사진 선택, 데스크톱, CLI 및 Python 워크플로우를 통한 편집 가능한 분석 JSON을 도입했으며, 기본 Fast 모드는 15 분석 FPS를 목표로 합니다. 이 프로젝트는 또한 다음을 제공합니다: - 입력 이미지에 대한 쉬운 감지, 인식, 정렬을 위한 Python 패키지로, 자동 CoreML/CUDA/CPU 공급자 선택 및 재사용 가능한 CoreML 컴파일 캐시를 지원합니다. - InsightFace 서버: 스네이크 케이스 REST API와 Python 클라이언트를 갖춘 자체 호스팅 웹 UI로, 감지, 선택적 liveness 검사, 비교, 등록, 사람 검색을 제공합니다. 단일 Linux x86_64 CPU 또는 NVIDIA GPU 컨테이너에서 실행되며, 로컬 ONNX Runtime 추론과 SQLite를 사용하고, 운영자가 제공한 매니페스트 검증 모델을 사용합니다. 정확도를 유지하는 INT8 임베딩 양자화와 RTX 5090 GPU 하나에서 5천만 개 이상의 이미지 검색을 제공합니다. - InspireFace: 크로스 플랫폼 C/C++ 얼굴 인식 SDK. - 얼굴 인식, 기업 평가, 보고서, 얼굴 스와핑 시험을 위한 크로스 플랫폼 데스크톱 GUI 데모. 코드는 MIT 라이선스로 배포되며 학술 및 상업적 사용에 제한이 없습니다. 훈련 데이터와 모델은 비상업적 연구 목적으로만 제공됩니다. 이 프로젝트는 NIST-FRVT 1:1 VISA 트랙에서 1위, ECCV-2022 WCPA 워크숍의 원근 투영 기반 단안 3D 얼굴 재구성 챌린지에서 1위를 달성하는 등 주목할 만한 성과를 거두었습니다.