这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
schoolcdn:howto:zxface:setting [2020/05/06 12:37] – 创建 Nashira | schoolcdn:howto:zxface:setting [2020/05/19 11:43] (当前版本) – [算法选择] Nashira | ||
---|---|---|---|
行 1: | 行 1: | ||
[[: | [[: | ||
+ | |||
+ | # zxface人脸识别设置 | ||
+ | `zxface`是CDN服务器内置的一套人脸识别算法,一个完整的人脸识别算法包含`detect`, | ||
+ | |||
+ | + detect: 负责检测一帧图像中是否存在人脸,并标记人脸位置 | ||
+ | + facefeature: | ||
+ | + match: 负责比较facefeature计算出的值,找到数据库中相似度最高的一个人,完成人脸识别 | ||
+ | |||
+ | > 每台CDN服务器可以配置一个默认的`detect`算法和N个属性检测`detect`算法, | ||
+ | |||
+ | |||
+ | |||
+ | ## detect | ||
+ | 人脸检测算法,支持以下算法: | ||
+ | |||
+ | + yufacedetect:主要的detect算法,普通监控相机或USB相机人脸识别需要该算法,每路200w像素相机设定fps=4,需要占用一个CPU核心的计算能力 | ||
+ | + remote: 使用远程人脸识别服务器,永远不应该使用该算法,仅在xapp中测试使用 | ||
+ | + 人脸抓拍相机:人脸抓拍相机设备本质上是在相机内部实现了detect算法,对于人脸抓拍相机zxface仅使用`facefeature`和`match`两个阶段 | ||
+ | + FaceMask: 口罩检测算法,用于检测是否佩戴了口罩 | ||
+ | |||
+ | ### 算法选择 | ||
+ | campusng和xapp按照以下的优先级原则算则使用人脸检测算法: | ||
+ | |||
+ | + xapp:通过命令行参数`--zxface_url`指定使用远程人脸识别服务器 | ||
+ | + campusng: 通过远程GPU配置文件`/ | ||
+ | + CMDB通道配置选择了`相机智能`,则使用人脸抓拍相机内部的人脸识别算法 | ||
+ | + CMDB通道配置选择了`口罩检测`,则使用FaceMask检测算法 | ||
+ | + CMDB通道配置选择了`zxface(单人)`或`zxface(多人)`则使用yufacedetect检测算法 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ### 单人检测与多人检测 | ||
+ | |||
+ | + zxface(单人):从每帧图像中识别一个占图像面积最大的人脸,适用于门禁或闸机控制 | ||
+ | + zxface(多人):从每帧图像中识别出尽可能多的人脸,适用于无障碍通道考勤 | ||
+ | |||
+ | |||
+ | |||
+ | ## facefeature | ||
+ | 特征值提取算法,支持以下算法: | ||
+ | |||
+ | + ArcFace: | ||
+ | + FaceFeatureGPU: | ||
+ | + remote: | ||
+ | |||
+ | ### 算法选择 | ||
+ | campusng和xapp按照以下的优先级原则算则使用特征值提取算法: | ||
+ | |||
+ | + xapp:通过命令行参数`--zxface_url`指定使用远程人脸识别服务器 | ||
+ | + campusng: 通过远程GPU配置文件`/ | ||
+ | + 如果检测到了显卡,优先使用`FaceFeatureGPU`算法(只有large镜像支持) | ||
+ | + 如果未检测到显卡,使用`ArcFace`算法 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ## match | ||
+ | 人脸匹配算法,支持以下算法: | ||
+ | |||
+ | + facedb: | ||
+ | + 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`, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ### campusng查询当前选择的算法信息(启用属性检测算法) | ||
+ | 如果启用了属性检测算法,`campusng.py info`会显示所有被激活的属性检测算法,见截图中`ZXFace(Attribute Detector)`开头的行: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ### campusng增加了通道当前配置的显示 | ||
+ | `campusng.py lsdev`将会列出当前通道内虚拟人脸识别设备的配置,见截图中黄色部分: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | 取值: | ||
+ | |||
+ | + face\_single: | ||
+ | + face\_multi: | ||
+ | + face\_mask: 口罩检测 |