Skip to main content

人脸图像要求

活体检测和人脸搜索调用的效果,取决于你所提交图像的质量。本页汇总了采集规则、Verifik 实际执行的分数阈值,以及你可能收到的具体拒绝原因,便于你在上线前调整采集界面。

本页适用于活体检测端点(/liveness/liveness-score)、人脸搜索端点(/search/search-live-face/search-active-user/search-crops)以及人脸比对端点(/compare/compare-live/compare-with-liveness)。SmartEnroll 内部采用同样的规则,因此本指南同样有助于提升开户流程的完成率。

这些端点的详细文档以英文提供:Liveness DetectionFace Search (1:N)

活体检测图像要求

活体检测比单纯的人脸比对更为严格。为确保高分辨率打印件、面具和视频回放无法绕过校验,提交的画面必须同时满足以下全部条件:

  • 图像中只能有一张主要人脸。该人脸必须完整出现在画面内,且完全无遮挡地展现。不允许裁切。背景中的小面积人脸不予考虑。
  • 可处理的人脸框最小尺寸为 224x224 像素
  • 人脸框与图像边界之间的留白至少为 25 像素
  • 双瞳之间的距离至少为 80 像素
  • 面外旋转角度(人脸俯仰角和偏航角)不得超过 ±30 度
  • 不支持鱼眼镜头和佩戴墨镜的图像。

违反上述任一规则的画面,会在评分之前就以质量原因被拒绝。这与分数过低是不同的结果,值得在界面中区别处理:质量问题用户可以通过重新采集解决,而分数过低意味着画面本身可用,但未被判定为真人。

呈现攻击检测

Verifik 的人脸活体检测采用呈现攻击检测(PAD),已通过 iBeta Level 2 认证,并符合 ISO 30107-3。底层引擎在覆盖打印照片、屏幕与视频回放以及 3D 面具的 iBeta Level 2 攻击集上,报告的呈现攻击分类错误率(APCER)为 0%。

阈值

Verifik 在识别引擎之上执行自己的阈值,因此下列数值才是真正约束你请求的数值。

活体检测

行为取值
参数liveness_min_score
默认值0.6
可接受区间0.51.0
通过规则liveness_score > liveness_min_score(严格大于,而非大于等于)
SmartEnroll 默认值0.65,可按项目流程配置

请注意通过规则是严格比较。阈值为 0.6 时,分数恰好为 0.6 属于未通过,而非通过。

底层引擎将 >= 0.5 判定为真人。Verifik 的默认值 0.6 有意更为严格,而 0.5 的下限意味着你无法配置比引擎本身更宽松的阈值。有一个例外:/compare-live 将该下限提高到 0.52

人脸搜索

参数是否必填默认值区间
min_score无 — 必须自行传入/search0.21.0,实时人脸变体为 0.51.0
search_mode无 — 必须自行传入FASTACCURATE
max_results10最多 100

结果按相似度分数降序返回,且仅包含高于 min_score 的条目。分数是介于 0 和 1 之间的数值,1 表示完全匹配,0 表示完全不匹配。

有两处 Verifik 的特性容易被忽略。其一,min_score 没有默认值:若省略,请求会以 409 MissingParameter 失败,而底层引擎本会套用 0.81。其二,search_mode 为必填且在引擎中没有对应项:若要以延迟为代价换取更高精度,请使用 ACCURATE;若更看重响应速度,请使用 FAST

拒绝原因

当采集因质量原因被拒绝时,响应会带回一个稳定的原因代码。每个代码都对应上文中某项具体要求,便于你向用户展示有针对性的纠正提示,而不是笼统的失败信息。

原因违反的要求建议向用户展示的提示
no_face_detected一张完整可见的人脸请在光线充足的环境中将面部置于取景框内
multiple_faces_detected仅一张主要人脸请确保画面中只有你本人
face_occluded无遮挡、完整展现的面部请取下遮挡面部的物品,例如口罩、眼镜或帽子
face_close_to_border与边界保持 25 像素留白请稍向后退,并将面部置于取景框中央
face_not_centered与边界保持 25 像素留白请将面部对准取景框中央
face_too_far224x224 人脸框、瞳距 80 像素请让摄像头靠近一些,使面部占据更大画面
face_too_close不得裁切、与边界保持 25 像素留白请让摄像头稍微远离一些
face_rotation_too_large俯仰角和偏航角 ±30 度请正视摄像头并保持头部端正
poor_lighting完整可见的面部请移至光线更明亮处,并避免身后有强光

另有两个原因并非采集问题:

  • liveness_failed — 画面可用并已完成评分,但分数未达到阈值。响应中会带回分数,便于你展示。
  • liveness_error — 校验因无法归因于采集的原因未能完成。请按可重试情形处理。

数据处理

活体检测或搜索调用属于一次性判定,不会将人脸登记进任何集合。因此,仅提交给 /liveness/search 的人脸,绝不会出现在后续的搜索结果中。若需让某张人脸可被搜索,请通过 /person 端点显式注册。

不过 Verifik 会保留每次调用的审计记录 —— 分数、结果、所套用的阈值以及请求元数据 —— 以便事后仍可核验结果并进行计费。提交的图像本身是否保留则取决于具体产品:通过 SmartEnroll 采集的图像会作为开户记录的一部分留存,而直接发送至公开活体检测和搜索端点的图像,在请求处理完成后不予保留。

说明

  • 建议在界面中区分质量拒绝与分数拒绝。质量拒绝应配合具体提示、引导用户立即重试;分数拒绝则是真实的否定结果。
  • 各项要求以人脸框的像素数为准,而非整幅图像。即便是 4K 照片,若人脸宽度只有 100 像素,仍不满足 224x224 的规则。
  • 人脸框一旦超过最小标准,提交更大的图像并不会改善结果。请优先保证良好光照以及居中的正面姿态,而非单纯提高分辨率。
  • 若你的用户使用桌面网络摄像头,质量拒绝会比移动端更多:低分辨率摄像头经常产生低于最小标准的人脸框。