deepinsight/insightface
State-of-the-art 2D and 3D Face Analysis Project
InsightFace – 오픈 소스 2D/3D 얼굴 분석 툴박스
개요 – 얼굴 관련 컴퓨터 비전 작업을 위한 포괄적인 라이브러리입니다. 최첨단 모델을 통합하여 다음을 지원합니다:
- 얼굴 탐지 (RetinaFace, SCRFD, BlazeFace)
- 얼굴 인식 / 검증 (ArcFace, Sub‑Center ArcFace, PartialFC, VPL 등)
- 얼굴 랜드마크 / 정렬 (SDUNets, SimpleRegression)
- 3D 얼굴 재구성, 시선 추정, 위조 방지, 얼굴 교체 등.
모든 구성 요소는 PyTorch (및 일부 MXNet)로 구현되어 있으며 학습과 추론 모두에 사용할 수 있습니다.
최근 주요 기능 (InsightFace 2.x)
| 기능 | 내용 | 사용 방법 |
|---|---|---|
| PrivateFrame | 실시간 비디오 익명화 (블러/모자이크), 선택적 RGB 생체 인식. 데스크톱 GUI, CLI 또는 Python API에서 작동. | insightface.app.privateframe 패키지; 기본 Fast 모드는 ~15 FPS를 목표로 함. |
| PersonAnalysis | 인물 전체 탐지, 얼굴 인식 및 신체 Re‑ID 실행, 참조 데이터베이스와 매칭. | Python API (get(), match(), 선택적 update()) 또는 웹캠/RTSP 스트림용 데스크톱 GUI. |
| InsightFace Server | 탐지, 선택적 생체 인식, 얼굴 비교, 등록 및 대규모 검색 (INT8 양자화를 통해 단일 RTX 5090에서 5천만 개 이상의 벡터)을 위한 셀프 호스팅 웹 UI + REST API. | Docker 컨테이너를 배포하고 HTTP 또는 제공된 Python 클라이언트를 통해 상호 작용. |
| 모델 관리 | 모델 번들 (raccoon_s/l, cheetah_s/l, buffalo_l 등) 자동 다운로드, CoreML / CUDA / CPU 공급자 자동 선택, 재사용 가능한 CoreML 컴파일 캐시. |
insightface Python SDK를 가져오면 라이브러리가 하드웨어에 가장 적합한 백엔드를 선택. |
표준 워크플로우 (Python SDK)
import insightface
app = insightface.app.FaceAnalysis()
app.prepare(ctx_id=0) # 0 = GPU, -1 = CPU
faces = app.get(img) # 탐지 + 정렬 + 임베딩
for f in faces:
print(f.normed_embedding) # 512차원 얼굴 벡터
동일한 SDK에서 비디오 익명화를 위한 app.PrivateFrame과 인물 수준 매칭을 위한 app.PersonAnalysis도 사용할 수 있습니다.
생태계
- Server – ONNX Runtime 추론 및 SQLite 스토리지를 갖춘 경량 Docker 이미지.
- Desktop GUI – 라이브 비디오, 웹캠 또는 RTSP 스트림을 위한 크로스 플랫폼 데모.
- Model Zoo – 프로젝트 Wiki에 나열된 수십 가지 사전 학습된 가중치 (ArcFace, RetinaFace, SCRFD 등).
- 연구용 코드 – 시선 추정, 3D 얼굴 반사 재구성, 위조 방지 챌린지 등을 위한 모듈.
라이선스 및 사용법
- 코드: MIT – 학술 및 상업적 용도로 무료.
- 학습된 모델 및 주석 데이터: 비상업적 연구 전용 (별도의 상업용 라이선스를 취득하는 경우 제외,
insightface.ai에 문의). - 특정 독점 모델 (예:
inswapper,InspireFace SDK)은 유료 라이선스가 필요함.
대상 사용자
- 개발자: 얼굴 탐지/인식 파이프라인이 필요한 보안, 인증 또는 비디오 분석 제품을 구축하는 분.
- 연구자: 얼굴 관련 CV 작업 (탐지, 정렬, 3D 재구성, 위조 방지)의 견고한 기준을 원하는 분.
- 기업: AWS Rekognition과 같은 클라우드 서비스의 온프레미스 대안을 찾는 분 (특히 수천만 규모의 대규모 검색이 필요한 경우).
시작하기
- 리포지토리를 복제하고
python-package로 이동합니다. - SDK 설치:
pip install -r requirements.txt && pip install . python-package/README.md의 빠른 시작 가이드에 따라 데모를 실행하거나 서버를 시작합니다.
결론 – InsightFace는 저수준 탐지부터 고수준 인물 검색까지 얼굴 분석의 전체 스택을 다루는 성숙한 연구 기반 툴박스이며, Python API와 배포 가능한 서버 구성 요소를 모두 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트