本文档为前后端的项目结构介绍
# 后端环境配置
后端文件:mae_API
## 环境信息
- Python 3.8.8
- MySQL 5.7.29
## 配置方法
pip install streamlit
cd mae_APItest
pip install -r requirements.txt
将模型文件放入path/to/pretrain/checkpoint.pth
api运行:
cd mae_APItest
python run_mae_vis.py
## 数据库配置
- mae_APItest/database.py 修改相应数据库信息
- 在数据库栏右键转储SQL文件(maes.sql文件)
# 后端API文档
下方传入的图片一定尽量是正方形图片
### /test
- 最佳appendant判断
```python
@params: img_base64: 用户人脸, default = "data:xxx",见上mae_args类, 必选
checkpwd: 用户是否需要密码, default = true, 不选,默认值即可
pwd: 用户密码, default = "28", 必选
appendant: seed偏移量, default = 31, 必选
@return: JSON
{"success": True, "rec_img": "data:image/jpg;base64," + rec_img, "appendant": opts.appendant, "checkpwd": opts.checkpwd,"score":result_baidu['result']['score']}
可在output/mask_img查看遮罩图,rec_img and ori_img,score为当前最佳附加值下的最佳得分,一定大于93分
```
### /signup
- 人脸注册
```python
@params: img_base64:用户base64图像,必选, default: "data:xxx见上mae_args"
pwd: 用户密码, default = "28", 必选
checkpwd: 用户是否需要密码,必选, default: true
appendant: seed偏移量, 非必选,default = 31, checkpwd == true 时需要
username: 用户名,必选, default = ""
@return: JSON: {"success": True, "patch_img": "data:image/jpg;base64," + patch_img,
"mask_img": "data:image/jpg;base64," + mask_img, "appendant": , "checkpwd": }
patch_img为数据库存储图像块
mask_img为展示给用户的残缺图像
JSON: {"success": False, "err_msg": "have existed username","err_code":2}
```
### /rec
- 人脸恢复
```python
@params: username:"alice"; pwd:"asdf"(if checkpwd == true)
@return: JSON {"success": True, "rec_img": "data:image/jpg;base64," + rec_img}
JSON {"success": False, "err_msg": "not exists username","err_code":1 }
rec_img 为复原后图像的base64
```
### /match
增加活体检测功能,新增live1和live2两个传入的post参数控制活体检测等级
活体检测控制 NONE: 不进行控制 LOW:较低的活体要求(高通过率 低攻击拒绝率) NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率) HIGH: 较高的活体要求(高攻击拒绝率 低通过率) 默认NONE
- 人脸相似度对比
```python
@params: img1_base64: 用户人脸1, default = "data:xxx",见上mae_args类, 必选
live1:对人脸1活体检测控制等级
img2_base64: 用户人脸2, default = "data:xxx",见上mae_args类, 必选
live2:对人脸2活体检测控制等级
@return: JSON{"success": False, "err_msg":'password is not true'}
JSON{"success": False, "err_msg":'result_baidu['err_msg']}
JSON{"success": True, "score":result_baidu['result']['score']}
score超过80分后出错的概率小于万分之一
```
### /detect
新增返回角度(俯仰角,左右角,平面旋转角度)用户检测生物密钥的可靠性
+angle 是 array 人脸旋转角度参数
++yaw 是 double 三维旋转之左右旋转角[-90(左), 90(右)]
++pitch 是 double 三维旋转之俯仰角度[-90(上), 90(下)]
++roll 是 double 平面内旋转角[-180(逆时针), 180(顺时针)]
新增口罩是否佩戴参数
- 人脸裁剪,给一张带有人脸的图,返回一张正方形的只有人脸部分的图
```
@params: img_base64: 带有用户人脸的图, default = "data:xxx",见上mae_args类, 必选
@ return JSON{"success": True, "angle":result_baidu['result']['face_list'][0]['angle'],"blur":result_baidu['result']['face_list'][0]['quality']['blur'],"mask":result_baidu['result']['face_list'][0]['mask']['type'],"completeness":result_baidu['result']['face_list'][0]['quality']['completeness'],'face_img':img64,"pwd":str(pwd),"code":20000}
注:可在output/cropped_img.jpg查看裁剪后的图,blur表示模糊度,0-1之间,建议小于0.001;completeness脸部完整度,0-1之间,建议大于0.99;pwd表示人脸生物密钥分析结果
```
百度人脸api具体详见api接口文档https://ai.baidu.com/ai-doc/FACE/ek37c1qiz
简易版本前端展示:
cd mae_web
streamlit run main.py
# Streamlit前端说明
本地streamlit项目文件:mae_web
streamlit端(主页兼注册页演示(在线拍照需要配置权限)):http://mae.zkabout.xyz:8501
## 在线拍照需要配置浏览器权限:
1.打开谷歌浏览器后地址栏输入下面链接:chrome://flags/#unsafely-treat-insecure-origin-as-secure
2.在打开的页面第一个输入框中输入你网页的地址,比如本页:http://mae.zkabout.xyz:8501/
3.点击右边按钮,选择Endble
4.点击右下角的重启按钮重启浏览器
# VUE前端说明
vue端code:https://github.com/qzkinhit/mae_vue
在线演示:(上班打卡系统在线演示): https://mae.zkabout.xyz/
本文件夹为基于Vue框架的“见微”系统-员工打卡场景开发源码,开发基于vue-element-admin模板,其中人脸检测模块调用tracking.js,依赖包管理采用npm,运行前需通过`npm install`安装依赖库
## 几个重要的项目目录
**node_modules** 依赖库
**src**
```
├─api
├─assets
│ ├─401_images
│ ├─404_images
│ ├─custom-theme
│ │ └─fonts
│ └─tracking 人脸检测库
├─components
├─router 路由配置页
│ └─modules
└─views 前端展示文件夹
├─dashboard 主页
│ ├─admin
│ │ └─components
│ │ ├─mixins
│ │ └─TodoList
│ └─editor
├─login 登录页
│ └─components
```
# 安卓APP端说明
本地安卓APP端项目文件:MAEAPP
安卓端(app下载链接): https://mae.zkabout.xyz/mae.apk
本项目的安卓APP端使用Android Studio IDE进行开发并生成程序包。运行该App的最低系统版本Android 5.0 (Lollipop),推荐系统版本Android 11.0 (R)。设备硬件要求配有前置摄像头(必须)、支持NFC功能(非必须,若不支持则无法体验门禁打卡功能)。需要用到的权限有开启前置摄像头、使用互联网、使用NFC、读取手机状态等。其中,如开启前置摄像头等敏感权限需要在App首次运行时由用户手动授权,否则将会影响到App的正常功能。为了获得更好的使用体验,使用期间请关闭系统的深色模式。
此外,App中的微信刷脸取纸功能需要获取用户SIM卡的手机号码,但使用某些运营商(例如电信)的SIM卡可能出现无法获取的现象,这种情况下需要用户手动输入手机号进行注册/登录。
## 部分重要的项目目录
```
└─app
│ build.gradle # 项目配置文件
│
└─src
└─main
│ AndroidManifest.xml # 应用清单
│
├─java # Java代码
│ └─com
│ └─example
│ └─maeapp
│ Access.java # 门禁打卡
│ Identify.java # 双重认证
│ LoginedActivity.java # 登录后页面
│ LoginFragment.java # 双重认证登录页面
│ LoginFragment2.java # 门禁打卡登录页面
│ MAEService.java # 后端API
│ MainActivity.java # 主页面
│ MyBean.java # Json解析器
�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【作品名称】:基于Python+MAE人脸隐私保护方法的身份认证系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 后端文件:mae_API 环境信息 Python 3.8.8 MySQL 5.7.29 配置方法 pip install streamlit cd mae_APItest pip install -r requirements.txt 将模型文件放入path/to/pretrain/checkpoint.pth api运行: cd mae_APItest python run_mae_vis.py
资源推荐
资源详情
资源评论
收起资源包目录
基于Python+MAE人脸隐私保护方法的身份认证系统 (187个子文件)
=1.1.0 160B
见微.apk 8.24MB
app.apk 8.24MB
gradlew.bat 3KB
.gitignore 225B
.gitignore 182B
.gitignore 182B
.gitignore 47B
.gitignore 6B
build.gradle 1KB
build.gradle 458B
settings.gradle 282B
gradlew 6KB
mae_API.iml 509B
mae_web.iml 503B
source.iml 441B
gradle-wrapper.jar 58KB
Unlock.java 33KB
TakePhoto.java 32KB
Towel.java 30KB
RegisterFragment2.java 22KB
RegisterFragment.java 21KB
LoginFragment2.java 20KB
LoginFragment.java 19KB
LoginedActivity.java 5KB
Access.java 4KB
RegisteredActivity.java 3KB
Identify.java 3KB
MainActivity.java 2KB
NFCBase.java 2KB
MyBean.java 1KB
MyFragmentPagerAdapter.java 853B
MAEService.java 773B
ExampleInstrumentedTest.java 750B
ExampleUnitTest.java 379B
ToFragmentListener.java 110B
test2.jpg 486KB
ori.jpg 337KB
test.jpg 276KB
test.jpg 276KB
ori_face.jpg 245KB
process_img.jpg 229KB
face_img.jpg 133KB
cropped_img.jpg 133KB
test3.jpg 123KB
test4.jpg 49KB
ori_img.jpg 46KB
YP.jpg 26KB
test2.jpg 12KB
ori_img2.jpg 12KB
ori_img.jpg 12KB
ori_img.jpg 7KB
mask_img.jpg 6KB
rec_img.jpg 5KB
rec_img.jpg 5KB
patch_img.jpg 3KB
mask_img.jpg 3KB
mask_img.jpg 3KB
mask_img.jpg 3KB
mask_img.jpg 3KB
mask_img_to_client.jpg 3KB
log3 56KB
README.md 11KB
myvideo.mp4 33.04MB
.name 7B
log1.out 274KB
log2.out 76KB
log3.out 50KB
log1.out 5KB
log2.out 377B
log3.out 137B
testfastapi.out 96B
registeredbg.png 644KB
registerbg.png 611KB
camerabg2.png 553KB
unlockbg.png 526KB
camerabg.png 524KB
scenepagebg.png 465KB
aimblack.png 162KB
flickrblack.png 146KB
androidblack.png 138KB
wechatblack.png 134KB
accessregisterbg.png 84KB
face_range.png 13KB
logo_with_title.png 10KB
logo.png 10KB
towel.png 4KB
proguard-rules.pro 750B
gradle.properties 1KB
gradle-wrapper.properties 232B
meanvar.pth 6KB
appendant&checkpwd.pth 431B
run_mae_vis.py 227KB
run_class_finetuning.py 24KB
utils.py 17KB
main.py 15KB
modeling_pretrain.py 13KB
modeling_finetune.py 13KB
run_mae_pretraining.py 11KB
dataset_folder.py 9KB
共 187 条
- 1
- 2
资源评论
MarcoPage
- 粉丝: 3036
- 资源: 3306
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mod-ldap-2.4.56-1.fc38.x86-64.rpm
- mod-ldap-2.4.58-7.fc40.x86-64.rpm
- mod-ldap-2.4.59-2.fc40.x86-64.rpm
- uniapp微信小程序水印相机(显示时间/地点/日期)
- rfid的应用场景.zip
- SpringBlade是一个由商业级项目升级优化而来的微服务开发平台
- mod-ldap-2.4.6-45.el7.centos.x86-64.rpm
- vbscript是什么,他的作用
- mod-ldap-2.4.6-67.el7.centos.x86-64.rpm
- mod-ldap-2.4.6-31.el7.centos.1.x86-64.rpm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功