홈으로 돌아가기
신규 · InsightFace Server

얼굴 인식 인프라를 자체 네트워크 안에 유지하세요.

하나의 셀프 호스팅 Linux 서비스에서 얼굴 인식 스택 전체를 직접 운영하세요. Web UI, REST API, Python SDK를 통해 검출, 비교, 등록, 정확한 1:N 검색, 영구 RTSP 모니터링을 제공합니다. RTX 5090 한 장에서 진행한 INT8 실측 결과, 검색은 58.9M 이미지 벡터까지 확장되며 10M 벡터에서 3.84 ms의 Top-5 지연 시간을 제공합니다.

프로덕션 배포용 모델 라이선스

Server와 SDK 코드는 MIT License이지만 모델 권리는 별개입니다. 공개 모델을 상업적으로 사용하거나 백만~천만 규모의 1:N 검색을 지원하는 고정확도 프라이빗 모델이 필요하다면 상업 라이선스를 신청하세요.

모델 라이선스 신청
준비 완료
로컬 CUDA 얼굴 인식 배포가 준비되었음을 보여 주는 InsightFace Server Dashboard
5천만+
단일 GPU에서 검색 가능한 이미지 벡터
INT8 특징 양자화
검색 정확도 손실 없음
3.84 ms
1천만 벡터 Top-5 지연 시간(p50)
260.81 QPS
1천만 벡터에서 직렬 전체 검색

하나의 셀프 호스팅 서비스

아키텍처로 보호하는 프라이버시, 실용성을 위한 설계.

이미지, embedding, 모델, 인덱스를 직접 관리하는 인프라 안에 유지할 수 있습니다. 다국어 콘솔은 애플리케이션과 동일한 공개 API를 호출하며 CDN, analytics, 원격 font 또는 타사 JavaScript를 사용하지 않습니다.

검출

JPEG, PNG, WebP 이미지에서 bounding box, 5점 landmark, 검출 confidence, 로컬 품질 신호를 반환합니다.

비교

두 이미지에서 선택한 얼굴을 명시적 임계값과 확률이 아닌 원본 cosine similarity로 비교합니다.

등록

Collection, Person, FaceSample로 identity를 구성하고 다중 이미지 등록, 검토 모드, 명확한 거절 사유를 사용합니다.

검색

전체를 스캔하는 정확한 1:N Person 검색을 실행합니다. 각 Person은 Collection 임계값을 넘는 가장 강한 FaceSample 일치로 순위가 정해집니다.

모니터링

영구 RTSP 인식 작업을 실행하고 최근 입장, 퇴장, 오류, 복구 이벤트와 선택적 운영자 미리보기를 확인합니다.

통합

Web UI, 29개 REST operation, 대화형 OpenAPI reference 또는 가벼운 타입 지정 Python client를 사용합니다.

인식 파이프라인

이미지에서 순위가 지정된 일치 결과까지.

콘솔, REST API, Python SDK, RTSP Monitor는 모두 동일한 명시적 처리 계약을 따릅니다.

01

이미지 또는 RTSP frame

JPEG, PNG, WebP 또는 라이브 카메라의 최신 frame.

02

다중 해상도 SCRFD

얼굴을 검출하고 후보를 병합한 뒤 한 번의 global NMS를 적용합니다.

03

정렬 및 embedding

5점 정렬, ArcFace embedding, L2 normalization.

04

모델에 고정된 Collection

모델, 전처리, detector, 임계값, 용량을 고정합니다.

05

정확한 CPU/GPU 검색

선택한 profile의 모든 유효 FaceSample을 빠짐없이 채점합니다.

06

Person 일치 결과

원본 cosine score와 request ID가 포함된 순위별 Person을 반환합니다.

SQLite가 영구 원본

영구 database가 원본이며 메모리 정확 인덱스는 재구축 가능한 projection입니다. 승인된 등록은 성공 응답 전에 인덱스에 추가되고, 삭제는 두 저장소 모두에서 제거됩니다.

모델에 고정된 identity Collection을 보여 주는 InsightFace Server Collections 콘솔
Collection은 identity 공간을 분리하고 모델, 전처리, detector, 임계값, 검색 profile, 용량을 고정합니다.

명시적 identity 계약

Collection으로 모델, 정책, 데이터 경계를 명확하게 유지합니다.

각 Collection은 모델 identity, 전처리 버전, embedding 차원, detector 정책, 검색 profile, 용량, 일치 임계값을 고정합니다. 이 계약은 모델이나 runtime이 바뀔 때 조용히 데이터가 섞이는 일을 방지합니다.

  • Person마다 여러 FaceSample을 추가하고 전체 batch를 잃지 않으면서 부분 등록 결과를 검토합니다.
  • off, standard, strict 검토를 선택하여 얼굴 수, 크기, 선명도, 밝기, pose, 동일 Person 내 일관성을 확인합니다.
  • Collection embedding contract를 통해 신뢰할 수 있는 상위 embedding 파이프라인을 연결합니다. 이미지에는 계속 검출과 검토가 적용됩니다.
  • 승인된 얼굴마다 112×112 bounding-box crop을 선택적으로 저장합니다. 원본 업로드와 인식용 정렬 입력은 보관하지 않습니다.

실측 검색 성능

단일 GPU 규모의 정확한 검색.

네이티브 전체 검색 profile을 사용하면 근사 최근접 이웃 인덱스로 바꾸지 않고 벡터 정밀도, 용량, 처리량을 조절할 수 있습니다.

58.9M
INT8 이미지 벡터

RTX 5090 한 장에서 측정한 512차원 벡터 최대값.

3.84 ms
Top-5 p50

정확히 10M 벡터, 동시 query 1개에서 측정.

260.81
직렬 QPS

10M 벡터에서 측정한 전체 Top-5 검색 처리량.

3.73×
FP32 대비 용량

동일 GPU에서 측정한 INT8 용량 배수.

GPU 데이터 유형최대 벡터 수10M Top-5 p5010M 직렬 QPS
FP3215.8M12.84 ms77.85
FP1630.7M6.83 ms146.32
BF1630.7M6.83 ms146.33
INT858.9M3.84 ms260.81

FP32와 INT8 모두 91.25%

ICCV21-MFR MR-ALL, FAR 1e-6에서 두 profile 모두 소수점 둘째 자리까지 91.25%입니다. INT8과 FP32의 반올림 전 차이는 −0.001102%p였습니다.

NVIDIA GeForce RTX 5090 한 장에서 측정했습니다. 용량은 ONNX 모델과 Server 부하를 제외한 독립 네이티브 인덱스의 한계입니다. 속도는 정확히 10M개의 512차원 이미지 벡터, GPU 상주 전체 Top-5, 동시 query 1개, warm-up 10회, 측정 query 100회 조건입니다. 운영 배포에서는 모델, request, 동시성, 인덱스 재구축, allocator를 위한 VRAM 여유가 필요합니다. 검색은 각 저장 표현 내에서는 정확하지만 저정밀 저장은 FP32 대비 score와 순위를 바꿀 수 있습니다.

영구 RTSP Monitor

브라우저 없이 계속 실행되는 카메라 모니터링.

서버 측 RTSP Monitor를 만들고 추론 주기와 이벤트 확인을 조정한 뒤 독립적인 client가 현재 상태와 최근 이벤트를 poll하도록 합니다. 콘솔을 닫아도 인식은 중지되지 않고 활성화된 Monitor는 Server 재시작 후 복원됩니다. Frame은 녹화되지 않으며 최근 이벤트는 용량이 제한되고 비영구적이고, 미리보기는 기본적으로 꺼져 있습니다.

인식을 운영자 보조 수단으로 사용하고 영향이 큰 결정의 유일한 통제로 사용하지 마세요. 각 배포에 대한 동의, 보존, 삭제, 검토, 보안 사고 대응 정책을 정의하세요.

영구 RTSP Monitor와 마스킹된 비공개 주소를 보여 주는 InsightFace Server 카메라 모니터링 콘솔
Monitor 설정은 SQLite에 영구 저장됩니다. RTSP 자격증명은 암호화 및 마스킹되고 frame은 저장되지 않으며 최근 이벤트는 메모리에만 남습니다.

Docker 배포

간단하게 시작하려면 CPU, 규모 확장에는 CUDA 12.

전체 InsightFace 저장소 checkout에서 실행합니다. 호스트에 Python, OpenCV, ONNX Runtime, CUDA Toolkit, cuDNN을 설치할 필요가 없습니다. 컨테이너가 runtime을 포함하고 모델은 별도의 라이선스 설치 항목으로 유지됩니다.

CPU 빠른 시작CPU
mkdir -p server/.models
docker compose -f server/deploy/compose.cpu.yml pull
docker compose -f server/deploy/compose.cpu.yml \
  run --rm models install buffalo_l --accept-license
docker compose -f server/deploy/compose.cpu.yml up -d
curl -fsS http://127.0.0.1:18097/v1/health

CPU

Docker Engine과 Docker Compose가 설치된 Linux x86_64. 평가와 중간 규모 워크로드에 실용적인 경로입니다.

http://SERVER:18097

NVIDIA CUDA 12

지원되는 NVIDIA GPU, driver, NVIDIA Container Toolkit을 추가합니다. 조용히 CPU로 fallback하지 않고 시작에 실패합니다.

http://SERVER:18098

배포 경계

buffalo_l, buffalo_m, buffalo_sc, antelopev2 또는 승인된 프라이빗 package를 설치하고 검증합니다.
/models를 읽기 전용으로 mount하고 SQLite, 암호화된 secret, 선택적 crop을 위해 /data를 영구 저장합니다.
이름 있는 데이터 volume을 보존하려면 -v 없이 docker compose down을 사용합니다.
업그레이드 전 쓰기를 중지하고 backup하거나 SQLite-safe snapshot을 사용합니다.

운영 및 보안

강화하기 쉬운 명확한 경계.

Server는 프라이빗 배포 운영에 필요한 상태를 제공하면서 secret, 이미지, embedding, 자격증명을 진단 정보에서 제외합니다.

준비 상태 및 진단

서비스, database, 모델, provider, 용량, 최근의 안전한 오류 요약을 확인합니다.

Fail-fast CUDA

시작 시 실제 provider, session, library, GPU 호환성, warm-up 추론을 검증합니다.

영구 데이터 경계

모델을 읽기 전용으로 유지하고 /data를 영구 저장하며 SQLite에서 폐기 가능한 정확 인덱스를 재구축합니다.

보호된 자격증명

API Key를 hash하고 /data의 RTSP 자격증명을 암호화하며 응답에서 source를 마스킹합니다.

API 전용 모드

콘솔과 가이드를 비활성화하면서 프라이빗 서비스용 /v1 및 /openapi.json을 유지합니다.

네트워크 연결 전에 보안을 강화하세요

제공되는 Compose는 격리 평가를 위해 인증을 비활성화합니다. 이 릴리스는 컨테이너 내부의 평문 HTTP, 권한 구분이 없는 단일 API Key를 제공하며 사용자 계정, RBAC, IAM, rate limiter, TLS 또는 법적 준수 계층을 내장하지 않습니다. Liveness, 딥페이크 탐지, 인구통계 분석, 녹화/NVR, 분산 Worker도 추가하지 않습니다. 인증을 활성화하고 신뢰하는 reverse proxy에서 HTTPS를 종료하며 CORS와 네트워크 접근을 제한하고 edge에 rate/body/timeout 제한을 적용하고 데이터 volume과 backup을 생체 데이터로 보호하세요.

프라이빗 배포로 시작하세요.

CPU Image를 시작하고 Collection을 만들고 한 사람을 등록하여 첫 정확 검색을 실행하세요. 워크플로를 검증한 뒤 운영용 runtime과 보안 경계의 규모를 설계하세요.

Server 소스와 SDK 라이선스는 모델 파일에 대한 상업적 권리를 부여하지 않습니다. 상업용 모델 허가는 InsightFace에 문의하세요.