用户工具

站点工具


schoolcdn:howto:zxface:setting

**这是本文档旧的修订版!**

返回

zxface人脸识别设置

zxface是CDN服务器内置的一套人脸识别算法,一个完整的人脸识别算法包含detect,facefeature,match三个阶段,zxface在每个阶段都提供了一组算法可供选择,zxface支持三个阶段的算法独立或者联合使用。

  • detect: 负责检测一帧图像中是否存在人脸,并标记人脸位置
  • facefeature: 负责根据detect标记出的人脸,将图像中的人脸信息计算成一个可比较的值
  • match: 负责比较facefeature计算出的值,找到数据库中相似度最高的一个人,完成人脸识别
每台CDN服务器可以配置一个默认的`detect`算法和N个属性检测`detect`算法,每个通道可以指定不同的`detect`算法,每个CDN服务器上`facefeature`和`match`算法是确定的。

detect

人脸检测算法,支持以下算法:

  • yufacedetect:主要的detect算法,普通监控相机或USB相机人脸识别需要该算法,每路200w像素相机设定fps=4,需要占用一个CPU核心的计算能力
  • remote: 使用远程人脸识别服务器,永远不应该使用该算法,仅在xapp中测试使用
  • 人脸抓拍相机:人脸抓拍相机设备本质上是在相机内部实现了detect算法,对于人脸抓拍相机zxface仅使用facefeaturematch两个阶段
  • FaceMask: 口罩检测算法,用于检测是否佩戴了口罩

算法选择

campusng和xapp按照以下的优先级原则算则使用人脸检测算法:

  • xapp:通过命令行参数--zxface_url指定使用远程人脸识别服务器
  • campusng: 通过远程GPU配置文件/zxedu/data/config/campusng/zxface_remote_url指定使用远程人脸识别服务器
  • CMDB通道配置选择了相机智能,则使用人脸抓拍相机内部的人脸识别算法
  • CMDB通道配置选择了口罩检测,则使用FaceMask检测算法
  • CMDB通道配置选择了zxface(单人)zxface(多人)则使用yufacedetect检测算法

单人检测与多人检测

  • zxface(单人):从每帧图像中识别一个占图像面积最大的人脸,适用于门禁或闸机控制
  • zxface(多人):从每帧图像中识别出尽可能多的人脸,适用于无障碍通道考勤

facefeature

特征值提取算法,支持以下算法:

  • ArcFace:基于CPU的人脸识别算法,每路视频信号需要一个CPU核心的计算能力
  • FaceFeatureGPU:基于Nvidia GPU的人脸识别算法
  • remote:使用远程人脸识别服务器

算法选择

campusng和xapp按照以下的优先级原则算则使用特征值提取算法:

  • xapp:通过命令行参数--zxface_url指定使用远程人脸识别服务器
  • campusng: 通过远程GPU配置文件/zxedu/data/config/campusng/zxface_remote_url指定使用远程人脸识别服务器
  • 如果检测到了显卡,优先使用FaceFeatureGPU算法(只有large镜像支持)
  • 如果未检测到显卡,使用ArcFace算法

match

人脸匹配算法,支持以下算法:

  • facedb:计算特征值的向量内积,结果范围:0.0~1.0
  • remote:使用远程人脸识别服务器

SchoolCDN

人脸匹配算法依赖于SchoolCDN服务,SchoolCDN服务负责从平台下载人员资料信息,并导入campusng实现人员信息录入。所以需要保证SchoolCDN同步功能正常运行。

remote算法依赖于远程人脸识别服务器的SchoolCDN同步,假如将A学校的设备remote指向B学校的人脸识别服务器,那么识别出来的将是B学校的学生和老师。

facedb注意事项

  • 需要在CMDB中为CDN服务器启用zxface功能
  • 不同的特征值提取算法生成的特征值无法相互匹配,切换不同的特征值提取算法需要使用命令schoolcdn sgrid face syncdev cmdbid=1重新同步人员信息。注意:增加显卡、取出显卡(显卡故障)都会改变选择使用的特征值提取算法,必须重新同步人员信息。
  • 不同的特征值提取算法特征值计算的向量内积的结果不可比较。例如A算法相似度0.8可以判定是同一个人,B算法仅需要相似度0.6就可以确定是同一个人。

命令行工具

campusng查询当前选择的算法信息

使用命令campusng.py info可以查看当前系统对detect,facefeature,match三个阶段算法的使用情况,截图中ZXFace(Detector),ZXFace(Feature),ZXFace(DB)三行。

campusng查询当前选择的算法信息(启用属性检测算法)

如果启用了属性检测算法,campusng.py info会显示所有被激活的属性检测算法,见截图中ZXFace(Attribute Detector)开头的行:

campusng增加了通道当前配置的显示

campusng.py lsdev将会列出当前通道内虚拟人脸识别设备的配置,见截图中黄色部分:

取值:

  • face_single: 单人人脸识别
  • face_multi: 多人人脸识别
  • face_mask: 口罩检测
schoolcdn/howto/zxface/setting.1589859634.txt.gz · 最后更改: 2020/05/19 11:40 由 Nashira