问题:注册按钮只更新了显示列表,没有将特征标识和ID存入映射表 修复: - 添加 _currentFaceKeys 保存当前帧的人脸特征标识 - 注册时将特征标识和生成的ID存入 _faceIdMap - 下次检测时可以从映射表中找到已注册的ID Quick task: 260330-ll6
1.1 KiB
1.1 KiB
Quick Task 260330-ll6: Summary
Task
注册完成后并不会显示用户已注册,检查一下注册流程和检测流程。
Problem Analysis
问题根源:
- 检测时,
_getFaceKey()生成人脸特征标识 - 注册按钮只更新了
_currentFaceIds列表,但没有将特征标识和ID存入_faceIdMap - 下次检测时,
_faceIdMap为空,所有人脸都显示"未注册"
Fix
example/lib/main.dart
- 添加状态变量:
_currentFaceKeys- 保存当前帧的人脸特征标识列表 - 修改检测流程: 同时保存特征标识和ID
- 修改注册流程: 注册时将特征标识和生成的ID存入
_faceIdMap
Code Changes
// 新增: 保存当前帧的人脸特征标识
List<String> _currentFaceKeys = [];
// 检测时: 同时保存特征标识
_currentFaceKeys = faceList.map((face) => _getFaceKey(face)).toList();
_currentFaceIds = _currentFaceKeys.map((key) => _faceIdMap[key] ?? '未注册').toList();
// 注册时: 将特征标识和ID存入映射表
_faceIdMap[faceKey] = newId;
Verification
flutter analyze lib/main.dart- No issues found
Completed: 2026-03-30