人脸识别相似度阈值设置设计

版本:V1.0
日期:2026-09-01
Use Case ID:UC-FACE-THRESHOLD-001
状态:Ready
DoR:READY
执行模式:常规 Codex(单仓库、边界明确、可通过定向单元测试和构建验证)

1. 背景、目标与范围

设备当前主流程的人脸识别相似度阈值为 0.70,但设置页无法调整。目标是在“基础设置”的人脸设置区域增加“人脸识别相似度阈值”设置项,让设备管理员可以输入 50~100 的整数并立即用于后续人脸搜索。

In Scope

Out of Scope

2. 参与者、触发与后置条件

项目说明
主要参与者能进入设备基础设置页的设备管理员
触发点击“人脸识别相似度阈值”设置项
前置条件应用已进入基础设置页,MMKV 可正常读写
成功后置新值持久化,页面立即显示该值,后续人脸搜索按新阈值判断
失败后置弹框保留,显示校验错误,原阈值和页面显示均不改变

3. 页面与交互设计

  1. 在人脸设置区域复用现有 CustomSettingItemView 增加设置项,标题为“人脸识别相似度阈值”。
  2. 右侧显示当前有效整数;未保存配置时显示 70,不显示 70分
  3. 点击后复用 ValidatedSettingInputPop,预填当前值并提示“请输入 50~100 的整数,推荐 80”。
  4. 空值、非整数或越界时显示错误并保持弹框打开;合法值保存、关闭弹框并立即刷新。
  5. 取消或关闭弹框不修改配置。

4. 主流程、分支与异常

编号行为页面/数据变化对应验收
M1进入基础设置页读取保存值;不存在时取 70AC-001
M2点击阈值设置项弹框打开并预填当前值AC-002
M3输入合法整数并确认保存、关闭弹框、刷新显示AC-003
M4发起后续人脸搜索最新整数除以 100 后参与比较AC-004
A1@M3取消不保存,保留原值AC-005
E1@M3输入为空、非整数或越界提示错误,弹框不关闭,原值不变AC-006
R1@E1改为合法值再次确认回到 M3AC-003

5. 业务规则与工程契约

6. 数据流与实现边界

基础设置页
  → 数字校验弹框
  → FaceRecognitionThresholdConfig / MMKV
  → 设置项刷新
  → FaceSDKManager 每次搜索读取配置
  → 整数除以 100 转为 SDK 阈值
  → 与搜索得分比较

7. 验收标准

ACGivenWhenThen证据
AC-001从未保存配置打开基础设置显示 70,识别使用 0.70f单元测试、代码检查
AC-002当前值为 70点击设置项弹框预填 70,显示范围与推荐值人工 UI 检查
AC-003弹框已打开输入 80 并确认保存、立即显示 80、弹框关闭单元测试、人工 UI 检查
AC-004已保存 80发起下一次人脸搜索使用 0.80f,无需重启单元测试、代码检查
AC-005当前值为 70输入其他值后取消页面和存储仍为 70人工 UI 检查
AC-006当前值为 70输入空值、49101、小数或非数字提示错误、弹框不关闭、原值不变单元测试、人工 UI 检查
AC-007任意合法值查看设置项只显示数字,不出现“分”资源检查、人工 UI 检查
AC-008RGB 活体阈值为 0.60完成功能活体判定配置和逻辑未改变差异检查

8. 测试矩阵

Test ID层级覆盖对象预期
UT-001单元测试默认值返回 70,SDK 值为 0.70f
UT-002单元测试合法边界507080100 合法
UT-003单元测试非法边界49101 被拒绝
UT-004单元测试SDK 换算50 → 0.50f80 → 0.80f100 → 1.00f
UT-005单元测试异常存储值读取值被限制到合法范围
BUILD-001构建Android 工程受影响模块编译通过
MANUAL-001人工 UI展示、弹框、取消、错误、保存与 AC-001~AC-007 一致
DIFF-001差异检查活体阈值和无关逻辑未改动 RGB 活体阈值和无关设置

9. 风险、兼容与回滚

10. 待确认项与追踪