2026-05-10 15:29:00 +08:00
2026-05-09 22:23:58 +08:00
2026-05-10 15:29:00 +08:00
2026-05-06 15:42:25 +08:00
2026-05-06 15:42:25 +08:00
2026-05-10 08:10:06 +08:00
2026-05-06 15:42:25 +08:00
2026-05-06 15:42:25 +08:00
2026-05-10 08:10:06 +08:00
2026-05-06 15:42:25 +08:00

学生人脸识别 Android App

这是一个 Android/Kotlin 项目,用于批量导入学生头像,建立本地人脸特征库,并通过手机摄像头实时识别已入库学生。

技术方案

  • CameraX相机预览与实时帧分析
  • ML Kit Face Detection检测图片或摄像头画面中的人脸位置模型随 App 打包
  • TensorFlow Lite使用 FaceNet/MobileFaceNet 模型生成人脸 embedding
  • 本地 JSON 存储:在手机本地保存学生资料与人脸特征
  • 手机内置上传服务:电脑浏览器上传头像到手机本地入库

新增学生不需要重新训练模型,只需要对头像生成一次 embedding 并保存。识别时把摄像头中的人脸 embedding 与本地库做距离匹配。

电脑批量导入

运行 App 后,点击手机界面底部的:

上传地址

手机会显示类似:

http://192.168.1.23:8080

让电脑和手机连接同一个 Wi-Fi然后在电脑浏览器打开这个地址。网页里可以一次选择多张学生头像点击上传后手机会本地检测人脸、生成 embedding 并写入本地数据库。

网页支持按文件夹批量导入:

  • 选择一个文件夹,自动上传文件夹里的图片或视频

文件夹选择在 Chrome / Edge 这类支持目录选择的浏览器里效果最好。 网页会逐个发送文件,手机端内存压力更小。

头像命名规则

建议使用:

学号_姓名.jpg
20240001_张三.jpg

如果文件名不符合规则,应用会把文件名同时作为学号和姓名保存。

模型文件

请放入 FaceNet 兼容的 TFLite 模型:

app/src/main/assets/facenet.tflite

推荐使用输入为 [1, 160, 160, 3]、输出为 128/192/256/512 维 float embedding 的 MobileFaceNet 或 FaceNet TFLite 模型。

构建

安装 JDK 17 和 Android Studio 后,用 Android Studio 打开项目运行,或在项目根目录执行:

./gradlew assembleDebug

当前环境没有 Java Runtime无法在本机完成编译验证。

Description
No description provided
Readme 452 MiB
Languages
Python 85.8%
Kotlin 14.2%