通过requirments.txt
中指示安装所有需要的包.
将照片以学号命名放在faces
中, 执行
python3 FaceDB_init.py
运行后将会把之前已有的数据文件覆盖(包含识别后的附加数据), 请注意备份、谨慎操作!
进入服务端FaceRec
目录后, 安装django
和pandas
.
推荐使用虚拟环境, GNU/Linux下操作如下, 其他平台命令大同小异:
python3 -m venv venv
source venv/bin/activate
pip install django pandas
为了保护隐私, 我没有上传数据库, 你需要手动创建sqlite数据库:
./manage.py makemigrations
./manage.py migrate
之后创建管理员登陆账号
./manage.py createsuperuser
之后, 就可以启动服务器了
./manage.py runserver
浏览器打开http://localhost:8000/admin
因为考虑到人脸识别的效率问题、教师通常带多门课程、每门课程又会有多次签到活动, 于是你应该遵循以下方式创建签到活动:
- 添加学生信息
- 创建课程, 并将所有参加课程的同学添加
- 创建签到活动, 指定要签到的课程
- 将签到活动的id记录, 设置为人脸识别端的启动参数
如果有学生花名册, 则可以方便完成概述中第1和第2步.
首先创建csv文件, 内容如下:
逻辑班 | 实体班 | 学号 | 姓名 | 性别 | 专业 |
---|---|---|---|---|---|
18130Y01 | 18130043 | 1813004316 | 王彦伟 | 男 | 软件工程 |
将文件命名为test.csv
保存到CheckInManager/CheckInManager/
下, 最后的目录树应该如下:
.
├── CheckInManager
│ ├── CheckInManager
│ ├── checkin
│ ├── db.sqlite3
│ ├── import_stu.py
│ ├── manage.py
│ └── test.csv <-- 在这里
├── face_checkin.zip
├── requirments.txt
└── venv
├── bin
├── include
├── lib
└── pyvenv.cfg
要签到必须有指定的签到活动.
在后台中打开Check in activitys
标签页, 创建一个签到活动.
创建好后记录创建好的活动ID. 后面将要用到.
如果一切配置妥当, 则可以执行以下命令启动人脸识别并进行签到了:
python3 pyqt_opencv.py <活动ID>
本地服务将会自动拉取本次签到所有人员的学号, 比对成功后会向远端请求是否签到成功
首先访问http://localhost:8000/checkin/<活动id>/
查看当前签到后中是否有你指定的学生学号, 如果没有, 则需要在Courses
中添加.
之后访问http://localhost:8000/checkin/<活动id>/<学号>/
查看是否能够手动签到, 正常情况下应该是OK.
, 如果重复签到、请求的学生不在课程中、签到过期, 则会返回You Fake Boy :)