在 iPhone 上独立运行的课堂点名应用:新建课程 → 导入花名册(Excel,含证件照)→ 打开相机实时扫视全班 → 人脸头顶实时标注姓名(绿=已确认 / 橙=待确认 / 红=未识别)→ 完成签到导出 Excel,历次记录永久保存、互不覆盖、可随时分享下载。
- 完全离线:人脸检测(SCRFD,含五点关键点)+ 人脸识别(ResNet50,InsightFace buffalo_l 同款)都以 Core ML 形式在本机运行,不需要网络、不需要服务器。
- 详细工程文档(环境要求、Xcode 建工程步骤、依赖、常见问题)见 FaceAttendance/README.md。
- 实时扫描签到:4K 相机采集 + SCRFD 检测 + ResNet50 识别 + IoU 跨帧跟踪多帧融合,头顶实时标注确认状态
- 照片签到:从相册导入全班合影(支持多张照片、EXIF 时间),识别后人工修正再导出
- 个人签到:前置相机单人快速签到(640² 快检模型,速度 ×9),支持手动补签兜底
- 随机点名 / 随机数:均匀抽取学生展示头像学号;输入 n 生成 1~n 随机数,可反复生成
- 点击改判:扫描中随时点按人脸标签纠正识别结果,自动写回
- Excel 导入导出:花名册解析(照片锚点 → 学号/姓名/班级)、考勤表一键导出、历史记录永久保存互不覆盖
- v6:SCRFD / ResNet50 模型从 mlprogram 格式回归经典 neuralnetwork 格式——实测 coremltools 9 转出的 mlprogram 在 iOS 26 上对任意输入都输出常数签名(CPU/GPU/ANE 三后端均如此),确认为转换管线本身问题,整组弃用换回 2017 年以来最成熟的 NN 编译路径
- v6.6–v6.7:Quartz 画布像素格式与方向修复;新增照片签到连拍相机、随机点名、个人签到
- v6.7.30:签到返回即刷新已签到人数
- v6.7.31:修掉写入系统相册的副作用(不污染相册)
- v6.8.0:附完整 Xcode 工程文件(双击即开)+ 一键导出 IPA 脚本
- v6.8.1:手动签到兜底
- v6.9.0(最新):手动补签;随机数生成(v6.7.28 起)继续完善
识别阈值已针对 ResNet50 重新标定:自动确认 0.40 / 待确认 0.30。
- 需要:Mac + Xcode 15+、iPhone(iOS 16+,必须真机)、免费 Apple 个人开发者账号
- Xcode 打开
FaceAttendance/FaceAttendance.xcodeproj,选 Team 后真机运行即可
- 打开 App → 新建课程(如“数学分析”)
- 导入花名册:选择 Excel 文件(必须是 xlsx 格式,证件照分辨率优选 480x640,内容包括:学号 / 姓名 / 班级 + 证件照),照片自动提取为人脸底库
- 开始签到:
- 实时扫描:相机扫视全班,头顶实时标注姓名;对存疑者点按标签改判
- 或照片签到:课后导入全班合影,识别后统一修正
- 完成导出:一键生成 Excel 考勤表并分享;历史记录随时回看
FaceAttendance_iOS源码_v*.tar.gz 为历次源码归档,最新为 v6.9.0(2026-10-09)。
FaceAttendance/
├── FaceAttendance.xcodeproj/ # 完整 Xcode 工程
├── Sources/ # 18 个 Swift 源文件(引擎 / 相机 / 各功能视图)
├── Resources/ # SCRFD、SCRFD640、ResNet50Face 三个 mlmodel + 示例花名册
└── README.md # 详细工程文档