新闻详情

新闻详情

首页 / 资讯中心 / 详情

CompreFace 开源人脸识别系统:Docker 部署、服务组件与插件体系全解析

发布时间:2026/9/25 1:25:31来源:尧图网络
CompreFace 开源人脸识别系统:Docker 部署、服务组件与插件体系全解析
人工智能计算机视觉后端AI 应用【免费下载链接】CompreFaceLeading free and open-source face recognition system项目地址https://gitcode.com/gh_mirrors/co/CompreFace点击查看免费下载CompreFace 是一个以 Docker 交付的免费开源人脸识别系统无需机器学习背景即可通过一条docker-compose up -d命令启动并以 REST API 形式提供人脸检测、识别、比对以及年龄、性别、口罩、姿态等插件能力。本文以项目 README 为主线结合仓库中的 docker-compose.yml、.env 配置文件与 docs 目录下的架构、部署文档完整梳理其功能边界、系统组件、安装步骤、关键配置项与自定义构建Custom Builds选型方法帮助你在本地或云端快速落地一套可用的自建人脸识别服务。一、CompreFace 是什么Exadel CompreFace 定位为领先的免费开源人脸识别系统其本质是一个 Docker 化的应用既可以作为独立服务器运行也可以部署到云端。官方对其核心卖点的归纳是无需机器学习技能即可完成部署和使用通过 REST API 提供人脸识别Face Recognition、人脸比对Face Verification、人脸检测Face Detection、关键点检测Landmarks、口罩检测Mask Detection、头部姿态检测Head Pose、年龄与性别识别内置角色Role管理系统可控制谁有权访问你的 Face Recognition Services以 docker-compose 配置交付同时提供 CPU 与 GPU 两种工作形态的模型构建Custom Builds底层基于 FaceNet 与 InsightFace 等成熟开源库支持在大多数现代 x86 计算机上运行仅要求 CPU 支持 AVX 指令集Linux 下可用lscpu | grep avx检查。从仓库结构可以印证这一交付形态根目录的 docker-compose.yml 定义了 5 个服务postgres-db、admin、api、fe、core.env 提供全部可配置项java/、embedding-calculator/、ui/三个源码目录分别对应其中的 Java 后端、Python 模型服务与 Angular 前端。二、核心功能人脸服务与插件README 的 Functionalities 一节列出了系统支持的服务清单全部人脸服务都可以通过 UI 面板创建和管理2.1 三类人脸服务结合 Face Services and Plugins 文档CompreFace 提供三种不同语义的服务服务类型用途典型场景Face Detection检测只找出图中所有人脸不做身份识别统计店铺客流性别/年龄分布、检查口罩佩戴、定位顾客注视方向Face Recognition识别先上传已知人脸到 Face Collection再在未知人脸中匹配出最相似者也支持 verify 端点用员工照片识别办公室里的陌生人、在人群中快速定位 VIP 访客Face Verification比对比对两张人脸并返回相似度分数校验用户出示的证件照片是否本人为本人每个服务有独立的 REST API 上下文创建后不可更改类型服务创建后会生成 API key 供后续调用。2.2 插件体系Plugins人脸服务默认只返回边界框和如适用相似度。若需在响应中附加更多信息只需在请求的查询参数face_plugins中以逗号分隔列出所需插件该参数被所有人脸服务支持curl -X POST http://localhost:8000/api/v1/recognition/recognize?face_pluginsage,gender,landmarks,mask,pose \ -H Content-Type: multipart/form-data \ -H x-api-key: faces_recognition_api_key \ -F filelocal_file插件清单摘自 Face-services-and-plugins.mdage—— 返回推测的年龄区间[min, max]gender—— 返回推测的性别landmarks—— 返回眼、鼻、嘴的 5 点关键点所有构建版本均支持calculator—— 返回人脸 embedding 向量pose—— 返回头部姿态{pitch: 0.0,roll: 0.0,yaw: 0.0}mask—— 返回口罩佩戴状态取值without_mask/mask_worn_incorrectly/mask_worn_correctly详见 口罩检测插件文档landmarks2d106—— 106 点关键点仅 InsightFace 配置支持默认不可用。从源码结构看这些插件都实现在 embedding-calculator 的src/services/facescan/plugins/目录下agegender、facenet、insightface等子包由compreface-core容器加载运行。三、系统架构五个容器如何协作Architecture and Scalability 文档 给出了完整的组件划分与根目录 docker-compose.yml 中的服务定义一一对应3.1 组件职责容器名compose 服务技术栈职责compreface-feNginx Angular UI提供 UI 页面默认配置下同时充当主网关把用户请求代理到 admin 与 api 服务compreface-adminSpring Boot处理 UI 上的所有管理操作应用、用户、角色等连接 PostgreSQL 持久化compreface-apiSpring Boot处理所有用户 API 调用识别、检测、比对负责 API key 校验、把图片转发给 embedding 服务并用 ND4J 库做人脸分类compreface-corePython uWSGIEmbedding 服务运行神经网络、计算人脸 embedding、执行所有插件识别年龄、性别等。无状态、不连数据库compreface-postgres-dbPostgreSQL数据存储数据保存在命名卷postgres-data中3.2 关键实现细节可验证的仓库证据端口与健康检查在 docker-compose.yml 中compreface-core通过ML_PORT3000暴露模型端口并用curl --fail http://localhost:3000/healthcheck做健康检查compreface-fe对外发布8000:80端口——这正是 README 中访问http://localhost:8000/login的由来。数据同步compreface-api默认只有 1 个实例生产环境建议至少 2 台多实例间的数据同步通过 PostgreSQL 通知机制实现——例如向集合新增人脸后其他 API 节点会自动感知并具备识别能力。与模型服务的连接API 容器通过PYTHON_URL环境变量默认http://compreface-core:3000找到 embedding 服务超时行为由CONNECTION_TIMEOUT默认 10000ms与READ_TIMEOUT默认 60000ms控制这两个值同时作用于 Nginx 代理与 Feign 客户端。无状态模型层embedding 服务compreface-core是系统中最重的计算环节官方建议生产环境使用高性能节点、理想情况配备 GPU扩展方向见 Custom Builds 文档。外接数据库若使用自己的 PostgreSQL需为compreface-admin与compreface-api提供POSTGRES_PASSWORD、POSTGRES_URL、POSTGRES_USER环境变量。四、部署前提硬件与软件要求README 明确给出的 Requirements 只有两条但第二条常被忽略Docker 与 Docker ComposeWindows 下为 Docker DesktopCPU 要求CompreFace 可运行在大多数现代 x86 处理器上但要求支持 AVX 指令集。Linux 下执行以下命令检查lscpu | grep avx若输出中无avx标志默认构建将无法运行——Installation Options 文档 也把compreface-core起不来的首要排查项指向 CPU/GPU 支持性。五、快速上手5.1 Linux / macOS安装 Docker 与 Docker Compose从最新版 Release 下载压缩包README 指向 Release 归档解压在该目录打开终端执行docker-compose up -d浏览器打开http://localhost:8000/login注册账号并登录。5.2 Windows安装 Docker Desktop下载并解压 Release 压缩包启动 Docker打开命令提示符cd到解压目录执行docker-compose up -d访问http://localhost:8000/login。5.3 启动后的使用流程README 的 Getting Started 之后标准使用路径在 How to Use CompreFace 中展开注册登录 → 创建 Application应用→ 在应用中创建 Face Service如 RECOGNITION 类型生成服务名与 API key→ 通过 REST API 上传已知人脸到 Face Collection → 用测试页或 REST API 验证识别。识别响应为 JSON每个命中人脸包含subject人员标识、similarity相似度置信度、probability是人脸的置信度以及x_min/x_max/y_min/y_max坐标字段。支持的图片格式为 JPEG/PNG/JPG/ICO/BMP/GIF/TIF/TIFF官方建议单图不超过 5MB。仓库还提供了两个开箱即用的前端 Demotutorial_demo.html最简识别示例与 webcam_demo.html摄像头实时识别。5.4 运维要点Docker Compose 交付形态Installation Options 文档 给出了完整的维护清单要点包括启动后至少等待 30 秒期间不要中断以免数据迁移过程中损坏数据库docker-compose ps应看到 5 个服务core、api、admin、ui、postgres-db全部为Up否则视为启动失败docker-compose logs -f service查看指定服务日志compose 配置了restart: always见 docker-compose.yml服务失败或机器重启后会自动拉起数据存放在命名卷CompreFace 文件夹名_postgres-data中删除容器不会丢数据清空安装需先docker-compose stop再docker volume rm 卷名升级版本或更换 custom build 时下载新的docker-compose.yml与.envdocker-compose down后覆盖文件再docker-compose up -d。5.5 其他交付形态除了默认的 Docker ComposeREADME 与 Installation Options 文档 还记录了另外两种分发方式Kubernetes生产环境扩缩容与单容器镜像所有服务 数据库打包为一个镜像用 Supervisord 维持进程适合不支持 Compose 的环境例如docker run -d --nameCompreFace -v compreface-db:/var/lib/postgresql/data -p 8000:80 exadel/compreface。六、关键配置项.env 全解Release 归档与所有 custom build 中均附带.env文件Configuration 文档 对生产系统明确建议逐项检查。以仓库根目录的 .env 为例各配置项及默认值如下配置项作用仓库默认值registryDocker Hub 镜像仓库前缀发布镜像为exadel/exadel/postgres_username/postgres_password/postgres_db/postgres_domain/postgres_port数据库连接信息生产环境务必修改默认密码postgres/postgres/frs/compreface-postgres-db/5432enable_email_server为true时启用用户邮箱验证需配合下列邮件变量falseemail_host/email_username/email_password/email_from邮件服务商主机、认证账号与发件人email_from对应 RFC 2822 的 From 字段未设置时回退为email_usernamesmtp.gmail.com等save_images_to_db是否把照片存入数据库数据迁移migration仅在该值为true时可用truecompreface_api_java_options/compreface_admin_java_options两个 Java 容器的 JVM 参数-Xmx4g/-Xmx1gmax_file_size可接受的最大单图大小必须 ≤max_request_size5MBmax_request_size可接受的最大 multipart 请求大小必须 ≥max_file_size10Mmax_detect_size输入图宽或高超过该值时会被等比缩放到该尺寸以内640uwsgi_processes/uwsgi_threadscompreface-core中 uWSGI 的进程数与线程数直接影响模型服务吞吐2/1connection_timeout/read_timeoutNginx 代理与 Feign 客户端的连接/读取超时毫秒10000/60000ADMIN_VERSION/API_VERSION/FE_VERSION/CORE_VERSION/POSTGRES_VERSION五个容器各自的镜像 tag均为1.2.0这些变量在 docker-compose.yml 中的实际消费方式可以直接对照查看例如max_file_size同时注入compreface-admin与compreface-apimax_detect_size作为IMG_LENGTH_LIMIT注入compreface-coreCLIENT_MAX_BODY_SIZE与代理超时则注入compreface-feNginx。七、Custom BuildsCPU/GPU 与模型选型默认构建的目标是在最广泛的硬件上可运行代价是未针对新一代 CPU 优化且不支持 GPU。Custom Builds 文档 与 custom-builds 列表 给出了 6 种预构建形态涵盖精度、吞吐与硬件的权衡数据引自仓库 custom-builds/README.md 的官方表格构建基础库CPU / GPU检测模型WIDER Face Hard 精度识别模型LFW 精度备注FaceNet默认FaceNetx86AVX无 GPUMTCNN / 80.9%FaceNet / 99.63%通用支持无 AVX2 的 CPUFaceNet Masked实验性FaceNetx86AVX无 GPUMTCNN / 80.9%inception_v3_on_mafa_kaggle123 / 98.73%通用支持无 AVX2 的 CPUMobilenetInsightFacex86AVX2无 GPURetinaFace-MobileNet0.25 / 82.5%MobileFaceNet, ArcFace / 99.50%CPU 模型中最快Mobilenet-gpuInsightFacex86AVX2 CUDARetinaFace-MobileNet0.25 / 82.5%MobileFaceNet, ArcFace / 99.50%总体最快的模型SubCenter-ArcFace-r100InsightFacex86AVX2无 GPUretinaface_r50_v1 / 91.4%arcface-r100-msfdrop75 / 99.80%最精确但最慢SubCenter-ArcFace-r100-gpuInsightFacex86AVX2 CUDAretinaface_r50_v1 / 91.4%arcface-r100-msfdrop75 / 99.80%最精确的模型选型建议原文档结论实时人脸识别优先选 GPU 构建老旧/低性能设备优先选面向移动端设计的模型如 Mobilenet不要盲目追求最精确的模型——模型间精度差距不大但所需硬件资源可能差异巨大。运行 custom build的方式与默认构建一致进入对应目录如custom-builds/Mobilenet-gpu内含各自的 docker-compose.yml执行docker-compose up -d。三个必须注意的坑从 custom-build 目录启动会创建新的 Docker 卷看不到旧数据如需沿用旧数据需将 custom-build 的文件覆盖到原构建目录大多数情况下人脸识别模型不可互换——旧构建保存的示例在换模型后不可用数据迁移方案见 Face data migration 文档不要在不改端口的情况下同时运行两个 CompreFace 实例需修改compreface-fe容器的端口映射。仓库同时提供了单文件 Dockerfile 形态的 Single-Docker-File 构建用 Supervisord 在单容器内编排 Nginx、PostgreSQL 与各服务进程。八、贡献者开发模式README 将贡献者入口指向dev/目录其 开发指南 说明了从源码启动整套系统的方式安装 Docker 与 Docker Compose克隆仓库进入dev目录执行sh start.sh脚本即 dev/start.sh。UI 开发者还需在ui/目录执行npm install后npm start通过http://localhost:4200/访问本地开发前端并可任意注册。dev/下还包含 GPU 开发配置 docker-compose-gpu.yml、环境变量模板 docker-compose.env.yml 及团队代码风格配置 team_codestyle.xml。九、SDK 生态与文档索引README 列出了官方 SDK由独立仓库维护随产品文档发布JavaScript、Python、.NET 三个语言的 CompreFace SDK覆盖 REST API 的客户端封装需求。围绕 README 的主题仓库docs/目录提供了完整的深入阅读路径建议按序阅读How to Use CompreFace —— 从注册到跑通第一次识别的 7 步流程与 JS 调用片段Face Services and Plugins —— 三类服务与插件的参数细节Rest API Description —— 全部 REST 端点说明Configuration ——.env配置项权威解释Architecture and Scalability —— 组件架构与生产扩容建议Custom Builds —— 构建选型与自建流程Face Recognition Similarity Threshold —— 相似度阈值调优Face data migration —— 跨版本/跨模型数据迁移User Roles System —— 角色与访问控制体系Mask Detection Plugin —— 口罩插件细节Gathering Anonymous Statistics —— 匿名统计机制Installation Options —— Compose / Kubernetes / 单容器三种交付形态对比与维护手册。此外仓库内load-tests/目录内置了基于 k6 的 detect、verify、recognize、face-verify 四类压测脚本与 Grafana 仪表盘配置embedding-calculator/提供了模型服务的单元测试、MTCNN 检测参数调优工具tools/optimize_detection_params/与检测基准tools/benchmark_detection/可作为性能验证的参考起点。十、贡献与 LicenseCompreFace 以 Apache 2.0 协议开源见 LICENSE欢迎通过 CONTRIBUTING.md 参与改进。官方列出的贡献方向包括反馈 bug 与新想法、完善文档、为更多语言编写 SDK、集成到 Home Assistant / DreamFactory 等平台、向人脸服务添加新插件以及直接提交代码。小结CompreFace 的技术价值在于把人脸服务化这件事做成了一个可自托管的 Docker 全家桶——5 个职责清晰的容器Nginx UI 网关、Spring Boot 管理端、Spring Boot API 网关、Python 模型服务、PostgreSQL配合一份.env完成全部配置功能层面通过服务 插件的组合覆盖了检测、识别、比对与多模属性分析扩展层面则用 Custom Builds 把精度/吞吐/硬件的权衡交给使用者。对需要私有化部署人脸识别能力的团队这套结构是仓库中所有部署、运维、调优文档的共同锚点。赞分享人工智能计算机视觉后端AI 应用【免费下载链接】CompreFaceLeading free and open-source face recognition system项目地址https://gitcode.com/gh_mirrors/co/CompreFace点击查看免费下载相关推荐最强开源人脸识别系统CompreFace零基础Docker部署实战指南最强开源人脸识别系统CompreFace零基础Docker部署实战指南 CompreFace作为领先的免费开源人脸识别系统提供了完整的人脸检测、识别和验证功人工智能计算机视觉后端AI 应用5分钟搞定CompreFace开源人脸识别系统零基础部署全攻略5分钟搞定CompreFace开源人脸识别系统零基础部署全攻略 CompreFace是一款领先的免费开源人脸识别系统无需机器学习经验即可轻松集成到任何系统中人工智能计算机视觉后端AI 应用CompreFace人脸识别系统免费开源的面部识别完整指南CompreFace人脸识别系统免费开源的面部识别完整指南 CompreFace是一款领先的免费开源人脸识别系统提供了强大而灵活的 人脸识别解决方案 。无论人工智能计算机视觉后端AI 应用上一篇AgentOps v4 API 会话端点设计从 Supabase 迁移到 ClickHouse 的 Session 查询实现方案下一篇解锁Thorium浏览器的5个专业级应用场景从硬件优化到隐私保护创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

VSCode老手如何高效使用MounRiver Studio II开发沁恒RISC-V 2026/9/25 2:08:15

VSCode老手如何高效使用MounRiver Studio II开发沁恒RISC-V

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
IDA 5.0经典反汇编工具实战:老版本逆向分析全流程指南 2026/9/25 2:08:15

IDA 5.0经典反汇编工具实战:老版本逆向分析全流程指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
三菱Q64AD模拟量输入模块从参数配置到梯形图采集全解析 2026/9/25 2:08:15

三菱Q64AD模拟量输入模块从参数配置到梯形图采集全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Delphi 12.3 下 ReportMachine 7.0 安装配置与报表开发实战 2026/9/25 2:08:08

Delphi 12.3 下 ReportMachine 7.0 安装配置与报表开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Matlab间断有限元求解声波方程:高阶格式实现与稳定计算 2026/9/25 2:08:08

Matlab间断有限元求解声波方程:高阶格式实现与稳定计算

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AXI wstrb验证实战:Synopsys VIP配置误区与排查技巧 2026/9/25 2:08:08

AXI wstrb验证实战:Synopsys VIP配置误区与排查技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉