Files
student_recognize/README.md
2026-05-06 14:22:33 +08:00

68 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 学生人脸识别 Android App
这是一个 Android/Kotlin 项目,用于批量导入学生头像,建立本地人脸特征库,并通过手机摄像头实时识别已入库学生。
## 技术方案
- CameraX相机预览与实时帧分析
- ML Kit Face Detection检测图片或摄像头画面中的人脸位置模型随 App 打包
- TensorFlow Lite使用 FaceNet/MobileFaceNet 模型生成人脸 embedding
- 本地 JSON 存储:在手机本地保存学生资料与人脸特征
- 手机内置上传服务:电脑浏览器上传头像到手机本地入库
新增学生不需要重新训练模型,只需要对头像生成一次 embedding 并保存。识别时把摄像头中的人脸 embedding 与本地库做距离匹配。
## 电脑批量导入
运行 App 后,点击手机界面底部的:
```text
上传地址
```
手机会显示类似:
```text
http://192.168.1.23:8080
```
让电脑和手机连接同一个 Wi-Fi然后在电脑浏览器打开这个地址。网页里可以一次选择多张学生头像点击上传后手机会本地检测人脸、生成 embedding 并写入本地数据库。
网页同时支持两种批量导入方式:
- 选择一个文件夹,自动上传文件夹里的所有图片
- 上传一个 `.zip` 压缩包,手机端自动解压后入库
文件夹选择在 Chrome / Edge 这类支持目录选择的浏览器里效果最好。
## 头像命名规则
建议使用:
```text
学号_姓名.jpg
20240001_张三.jpg
```
如果文件名不符合规则,应用会把文件名同时作为学号和姓名保存。
## 模型文件
请放入 FaceNet 兼容的 TFLite 模型:
```text
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 打开项目运行,或在项目根目录执行:
```bash
./gradlew assembleDebug
```
当前环境没有 Java Runtime无法在本机完成编译验证。