CompreFace 产品详细介绍
CompreFace 是 Exadel 开发的免费开源人脸识别系统,是一个基于 Docker 的应用程序,可以作为独立服务器使用或部署在云端。
核心特性
CompreFace 相比其他免费人脸识别解决方案具有多项技术优势:
● 支持 CPU 和 GPU:易于扩展,支持不同硬件配置
● 开源和自托管:提供额外的数据安全保障
● 灵活部署:可在云端或本地部署
● 无需机器学习专业知识:设置和使用简单
● 先进技术:使用 FaceNet 和 InsightFace 等最先进的人脸识别方法
● 快速部署:只需一条 Docker 命令即可启动
系统架构
CompreFace 采用微服务架构,包含以下核心组件:
| 组件 | 容器名称 | 描述 |
| NGINX 代理 | compreface-fe | 提供 UI 服务并作为主网关 |
| 管理服务器 | compreface-admin | Spring Boot 应用,负责 UI 操作 |
| API 服务器 | compreface-api | 处理所有用户 API 调用 |
| 嵌入服务器 | compreface-core | 运行神经网络,计算人脸嵌入 |
| PostgreSQL 数据库 | compreface-postgres-db | 存储应用数据 |
人脸服务
CompreFace 提供三种主要的人脸服务:
1. 人脸检测服务
用于检测图像中的所有人脸,但不进行识别。适用于:
● 收集商店访客的性别、年龄统计数据
● 获取地标信息分析客户关注点
● 监控口罩佩戴情况
2. 人脸识别服务
用于人脸识别,需要先上传已知人脸到集合中,然后在未知人脸中识别。适用于:
● 使用员工照片识别办公室中的陌生人
● 根据预注册照片跟踪会议参与者
● 在人群中快速找到 VIP 客人
3. 人脸验证服务
用于比较两张人脸是否属于同一个人,返回相似度分数。适用于:
● 验证客户与其身份证或驾驶证是否匹配
● 验证用户连接社交网络账户时的身份
人脸插件
CompreFace 提供多种插件来获取额外的人脸信息:
● age:返回推测的年龄范围
● gender:返回推测的性别
● landmarks:返回面部地标(5个点)
● calculator:返回人脸嵌入
● pose:返回头部姿态信息
● mask:检测是否佩戴口罩及佩戴是否正确
● landmarks2d106:返回106个面部地标(仅限 InsightFace 配置)
API 概述
CompreFace 提供全面的 REST API,支持:
● 人脸识别 API:管理主题、识别和验证人脸
● 人脸检测 API:检测人脸并应用插件
● 人脸验证 API:比较两张人脸
API 支持多种输入格式,包括 multipart/form-data 和 Base64。
部署选项
CompreFace 提供三种部署方式:
| 部署方式 | 优势 | 劣势 | 适用场景 |
| Docker Compose(默认) | 配置简单、运行简单、通过 QA 测试 | 需要 Docker Compose、单机运行 | 本地安装 |
| Kubernetes | 易于扩展 | 需要 Kubernetes 集群 | 生产环境安装 |
| 单个 Docker 容器 | 配置简单、运行简单 | 可靠性最低、单机运行 | Docker Compose 不支持时的本地安装 |
自定义构建
CompreFace 提供多种自定义构建以优化不同硬件配置:
● Default:FaceNet + MTCNN,无 GPU 支持
● Mobilenet:移动设备优化模型,高性能
● ArcFace-r100:InsightFace ArcFace + RetinaFace,高精度
● GPU 版本:支持 GPU 加速,性能更高
集成选项
CompreFace 提供官方 SDK 简化集成:
● JavaScript SDK:https://github.com/exadel-inc/compreface-javascript-sdk
● Python SDK:https://github.com/exadel-inc/compreface-python-sdk
● .NET SDK:https://github.com/exadel-inc/compreface-net-sdk
配置选项
CompreFace 可通过 .env 文件中的环境变量进行配置,包括:
● 数据库凭据
● 邮件服务器设置
● 图像存储选项
● 性能调优参数
● 最大文件大小和请求大小
Notes
CompreFace 是一个功能全面的人脸识别系统,采用微服务架构设计,支持多种部署方式和硬件配置。系统无需机器学习专业知识即可使用,提供了丰富的 API 和 SDK 选项,便于集成到各种应用中。所有组件都经过容器化处理,简化了部署和维护过程。