← 返回作品集
// FaceLib

👤 FaceLib

监控抓拍与人员库管理的人脸检测和 1:N 识别服务。基于 InsightFace buffalo_l + FAISS 向量检索,专为监控场景优化的轻量级人脸识别引擎。

项目定位

在监控安防场景下,不同时段、不同光照、不同角度的摄像头画面需要快速识别库内人员身份。FaceLib 正是为此设计——采用与 Immich 人脸识别同源的 InsightFace buffalo_l 模型,通过 OpenCV DNN 推理 + FAISS 512 维向量检索,实现高效的人脸检测与 1:N 识别管线。

支持监控场景增强管线:弱光增强、低阈值回退、高分辨率二次检测、小脸保留。API 默认无鉴权(由网关承担认证),适合与 Immich ML 容器类似的内网部署模式。内置 WebUI 提供人员管理、素材上传、智能分析、待审核等功能。

系统架构

Camera Frame → SCRFD Detection (buffalo_l)
Face Crop → ArcFace 512-d Embedding (buffalo_l)
FAISS Index → FlatIP / IVFFlat 内积检索
Match → Max Distance 阈值 → Person / Unassigned
Auto Enroll → 高质量命中自动补充素材
WebUI → 人员列表 · 上传 · 分析 · 待审核 · ZIP导入

核心能力

🔍

1:N 人脸识别

ArcFace 512 维嵌入 + FAISS 内积检索,按人员聚合多模板取最优匹配。

🌙

监控管线增强

弱光增强、低阈值回退、高分辨率二次检测、小脸保留,专为安防场景优化。

👥

人员库管理

REST API + 内置 WebUI,人员 CRUD、素材上传、智能分析、待审核池管理。

🤖

自动入库

高质量命中(相似度+清晰度达标)自动补充素材,减少人工运维。

📥

批量导入

ZIP 模板批量导入人员照片,支持任务进度追踪。

🐳

Docker 部署

一键 Compose 启动,首次自动下载模型 + 构建 FAISS 索引。

API 一览

分类方法路径
系统GET/api/health, /api/stats
人员CRUD/api/persons, /api/persons/{id}/statistics
素材POST/GET/DELETE/api/persons/{id}/faces, /api/faces/{fid}
分析POST/api/detect, /api/recognize
待审核GET/PUT/api/unassigned, .../assign, .../suggest
导入GET/POST/api/import/template, .../validate, .../batch

技术栈

PythonFastAPIInsightFaceSCRFDArcFaceFAISSOpenCV DNNSQLiteDocker

源码

git.budblack.me/budblack/immex