本案例是教学演示,不是生产身份认证系统。课程目标是理解从采集、检测、特征、比对到记录和界面的完整链路。
先给出本讲路线图;后续每一段都对应这里的一行,最后回到路线收束。
先明确不做什么,再讲怎么做。尤其不能把陌生人自动登记解释为合规身份注册。
按采集、硬件推理、服务与存储、浏览器界面四条线带读。图中每条线都要有各自证据,不能用一个页面截图代替全部。
这是 8T/Ascend310B4 上由静态 HTTP 服务加载的预构建 React 页面。画面没有真实人脸;仍可看到顶部服务异常、服务降级和视频流不可用。
这五组字段必须一起出现。截图中的“服务降级”“视频流不可用”“File not found”正是后端未连接的证据,不是模型识别失败。
核心不是 FastAPI 或 React,而是单一硬件所有者。所有推理请求进入同一队列,避免并发使用 ACL context、Device buffer 和摄像头。
这条串行主线用于教学。无脸、空框、越界或尺寸为零时必须在对应层失败,不能把整张图当成有效身份输入。
模型文件名不能证明网络来源或输出语义。必须同时检查ONNX、OM描述和板端数值,布局或归一化改变后要重跑合同检查。
静态检查、转换检查、ACL烟测和UI检查是不同证据。文件能解析、页面能打开或ATC成功,都不能代替完整推理。
硬件资源和摄像头都是独占资源。显式 stop 与线程 join 比依赖析构可靠,线程不能按时退出时必须明确失败。
FastAPI使用ASGI不代表硬件调用应并发化。OpenCV、PyACL和sqlite3都是阻塞调用,应通过单一工作队列协调。
最大人脸策略是单人演示的确定性选择,不是多人场景最优方案。阈值也不能从一次成功样例中证明。
即使embedding存成BLOB,也不会自动获得匿名性。截图和课堂材料不得包含真实人脸、姓名、特征或数据库内容。
当前8T截图正是降级页面:前端加载成功,但File not found、服务异常、服务降级和视频流不可用同时可见。
当前截图只覆盖静态前端加载的一小部分UI层,不能填写模型、ACL、API、识别率或性能证据。
最后再次核对截图边界:它只证明预构建React前端由8T加载。后端、摄像头和NPU都没有连接,不能据此扩展出识别或考勤结论。