CompreFace 免费开源人脸识别系统

CompreFace 产品详细介绍

CompreFace 是 Exadel 开发的免费开源人脸识别系统,是一个基于 Docker 的应用程序,可以作为独立服务器使用或部署在云端。 

核心特性

CompreFace 相比其他免费人脸识别解决方案具有多项技术优势: 

● 支持 CPU 和 GPU:易于扩展,支持不同硬件配置

● 开源和自托管:提供额外的数据安全保障

● 灵活部署:可在云端或本地部署

● 无需机器学习专业知识:设置和使用简单

● 先进技术:使用 FaceNet 和 InsightFace 等最先进的人脸识别方法

● 快速部署:只需一条 Docker 命令即可启动

系统架构

CompreFace 采用微服务架构,包含以下核心组件: 

组件容器名称描述
NGINX 代理compreface-fe提供 UI 服务并作为主网关
管理服务器compreface-adminSpring 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 选项,便于集成到各种应用中。所有组件都经过容器化处理,简化了部署和维护过程。