|
| 1 | +# FaceLogin 更新日志 |
| 2 | + |
| 3 | +## 2.0.0 |
| 4 | + |
| 5 | +本版本以 `v1.9.0` release 为基线整理。以下内容按最终产品能力分类,记录相对于 1.9.0 的新增能力、架构重构和用户可感知的改进;仅针对本轮 2.0.0 改造过程中临时引入的问题所做的内部回归修复,不单独列为更新项。 |
| 6 | + |
| 7 | +### 一、识别与摄像头管线 |
| 8 | + |
| 9 | +- 保持 SCRFD 检测、106 点地标、InsightFace 512-D embedding、112×112 RGB 输入和 ArcFace 五点对齐,录入与锁屏认证继续使用同一组 ONNX 模型。 |
| 10 | +- 服务与 Console 均采用 Media Foundation 优先、DirectShow 回退的摄像头采集策略;连续抓帧用于稳定摄像头驱动的自动曝光。 |
| 11 | +- 移除实验性的统一光照归一化、硬件曝光控制、暗光增强设置和相关旧代码,当前版本不再通过软件改写识别输入亮度。 |
| 12 | + |
| 13 | +### 二、头部姿态检测与锁屏门控 |
| 14 | + |
| 15 | +- 集成 `head_pose_mobilenetv2.onnx`,使用 MobileNetV2 6D Pose 估计 Yaw、Pitch、Roll。 |
| 16 | +- 锁屏识别在人脸匹配前增加姿态门控,只接受可接受范围内的人脸帧,并通过本地化状态提示具体调整方向。 |
| 17 | +- 当前角度约定为:右转 Yaw 为正、左转为负;抬头 Pitch 为正、低头为负;左倾 Roll 为正、右倾为负。 |
| 18 | +- 当前锁屏门控范围为:正面 `|yaw|≤15°、|pitch|≤10°、|roll|≤12°`;可接受 `|yaw|≤25°、|pitch|≤15°、|roll|≤18°`;超过 `30°/25°/25°` 进入严重姿态提示。 |
| 19 | + |
| 20 | +### 三、认证会话与锁屏交互 |
| 21 | + |
| 22 | +- 重建 Credential Provider 的认证会话状态:`Waiting → Authenticating → Ready → Submitted`,每次认证使用独立 attempt ID。 |
| 23 | +- 管道后台读取线程成为终端响应的唯一入口,`GetSerialization()` 只负责消费 `Ready` 状态并打包凭据。 |
| 24 | +- 输入线程和管道线程采用确定性停止与回收,服务停止由主线程统一释放摄像头、模型和管道资源。 |
| 25 | +- 增加安全桌面中央状态浮层;标题和状态字段默认隐藏,浮层不可用时才回退到凭据字段显示。 |
| 26 | +- Anti-Spoof 将身份匹配与活体推理绑定到同一候选账号,任一通过的联合帧即可完成认证;Blink 保留眨眼后的短窗口匹配确认,`none` 跳过活体检查。 |
| 27 | +- 过滤鼠标移动造成的误触发,仅将键盘按键和鼠标按键作为普通解锁的主动触发输入。 |
| 28 | +- 修正冷启动触发逻辑:默认情况下开机进入锁屏后自动开始识别;启用 `cold_boot_key_trigger` 后才改为等待键盘或鼠标按键。 |
| 29 | +- 优化认证超时和未识别后的重试:当前会话结束后清理旧状态,用户再次产生有效输入即可重新开始一次完整的人脸认证,不继承上一次的超时计时或终端结果。 |
| 30 | + |
| 31 | +### 四、Console 与多语言 |
| 32 | + |
| 33 | +- Console 增加单实例限制,避免多个管理窗口同时占用摄像头和模型资源。 |
| 34 | +- 修正 Console 高 DPI 显示和程序清单配置。 |
| 35 | +- 人脸重命名、删除和安装器确认流程使用统一设计语言的自定义弹窗,不再依赖 WebView 原生弹窗。 |
| 36 | +- 补齐录入页面说明和姿态状态的多语言内容;服务端 IPC 状态和错误继续传输 locale key,不直接传输显示文本。 |
| 37 | + |
| 38 | +### 五、安装器与卸载器 |
| 39 | + |
| 40 | +- 新增轻量独立 `Uninstall.exe`,通过独立 build tag 构建,不内嵌模型、服务、Console 和运行库。 |
| 41 | +- 安装器支持安装目录自动追加 `FaceLogin`、大小写不敏感的目录判断和最终路径合法性检查。 |
| 42 | +- 支持使用 Windows 原生 Shell Link API 创建桌面快捷方式,并在卸载时仅删除指向当前安装的快捷方式。 |
| 43 | +- 卸载流程会停止并删除服务、注销 Credential Provider、清理安装文件、模型、语言包、配置、用户数据、日志和注册表;安装目录仅在安全清空后移除。 |
| 44 | +- 独立卸载器通过临时清理副本删除自身,避免留下空安装目录或要求重启系统。 |
| 45 | +- 安装、升级和卸载确认使用自定义弹窗;安装和清理辅助流程隐藏控制台窗口。 |
| 46 | +- 使用 `build-installer.ps1` 先构建轻量卸载器,再构建完整 `FaceLoginSetup.exe`。 |
| 47 | + |
| 48 | +### 六、模型、配置与打包 |
| 49 | + |
| 50 | +- 保留 `w600k_mbf.onnx`、512-D embedding、112×112 RGB 输入、ArcFace 五点对齐和 `users.dat` V5 格式。 |
| 51 | +- 新增 MobileNetV2 姿态模型及其许可证文件,随包模型总量约 31 MB。 |
| 52 | +- 删除 `jpeg62.dll`、`libpng16.dll`、`z.dll` 相关依赖和 `diag_glass` 诊断程序。 |
| 53 | +- 版本标识统一为 2.0.0,安装器、Console、服务和多语言界面同步使用当前版本信息。 |
| 54 | +- 本次 2.0.0 的认证、姿态和安装器改造不要求当前 V5/ONNX 模板重新录入;更早的旧对齐 `legacy` 模板仍按原有兼容规则标记为需重新录入。 |
| 55 | +- 每个账号最多保存 10 张人脸,Console 人脸管理页和三种语言资源同步显示该上限。 |
0 commit comments