人脸识别考勤 Android 课程设计
题目十二
源代码
注释详尽细致
代码规范比较好(虽然还是垃圾)
开源地址
没有提供app
请自己打包,看一下源代码在用,测试demo。
主要用到的技术有人脸识别,文件的读取,数据库,网络IO,图像处理
设计情况
UI界面
、
数据设计
名 | 类型 | 是否为空 | 注释 | 键 | 其他 |
---|---|---|---|---|---|
Id | Integer | 否 | 标识 | PK | 自增 |
Account | Text | 否 | 用户账户 | 一般为数字 | |
Name | Text | 否 | 用户名字 | 一般为中文 | |
Pwd | Text | 否 | 账户密码 | 字母数字常用字符 | |
Role | Integer | 否 | 用户权限代码 | 1 学生2 老师3 超级管理员 |
名 | 类型 | 是否为空 | 注释 | 键 | 其他 |
---|---|---|---|---|---|
Checkid | Integer | 否 | 标识 | PK | 自增 |
Account | Text | 否 | 用户账户 | 一般为数字 | |
Name | Text | 否 | 用户名字 | 一般为中文 | |
Checktime | Time | 否 | 用户打卡时间 | 时间格式 例如2019-12-12 09:00:00 |
主要功能模块
A. 账户注册与登录
负责账号登录和注册的主要逻辑,匹配账号密码才能登录,同时,加入权限管理。
对于不同权限的人展示不同的组件。
B. 人脸注册与识别
每个账号本质上可以对应多个人脸,给与每个账号注册一个人脸,人脸可以通过相册导入和相机拍照获得。之后上传人脸和相关信息到百度的人脸库。
C. 考勤打卡
考勤打卡同样需要上传图片,图片的获取方式可以是相册或者相机。读入图片的EXIF信息。校对要求,比如时间差在一个小时以内,位置信息等。
D. 人脸管理
更新用户的人脸数据,或者删除人脸数据
E. 打卡信息管理
可以选择日期或者账户对已经打卡的人员已经一个查看。
代码结构:
├─main
│ ├─java
│ │ └─com
│ │ └─ren
│ │ └─face
│ │ ├─acitivity
│ │ ├─adapter
│ │ ├─bean
│ │ ├─constant
│ │ ├─dao
│ │ ├─database
│ │ ├─handler
│ │ ├─service
│ │ └─utils
说明 :
- activity包中是主要界面的主逻辑,是活动的主体。
- adapter包是用于展示视图的适配器
- bean定义了POJO类和一些网络请求的结果封装类
- constant包中是一些常量的定义
- dao 是对象序列化成数据库数据的转化层
- database 定义Android独有的SQLite数据的创建和更新
- handler中是网络异步请求的回调类,处理上传图片完成之后需要做的事情
- service 中主要是一些网络请求相关的类 和处理人脸识别和上传的主函数
- utils定义了一些网络,图片工具。包含图片压缩,图片转码,网络getpost请求。
其他的就不说了。看代码都能懂