开源的基于图像识别本地实名认证系统(本项目不借助任何api) v1.0

前言:

本项目主要是代替昂贵的实名认证服务api或者sdk,目前仍然存在很多缺点

一、具体介绍

1.组成:

人脸识别服务器分为两部分:

(1)、http服务端

server.py共有四个函数:

**DrawFaceinIdCard:**用户上传身份证图片后,服务端会对身份证进行抠人像和ocr处理,如果顺利会返回编号(实际就是文件名),实际也可以返回ocr内容(注释了)。

**DrawFaceinPic:**用户上传自己照片,服务端会把人像给获取出来若顺利会返回编号

**Recognition:**用户上传图片身份证处理和人像处理后的图片编号,后端会进行判定,若顺利会返回200

**detecting/Create:**用户通过formbody传递uuid,后端会自动生成四个动作,保存到数据库中

(2).websocket服务端

没啥好说的,实现实人识别,比较简单的python实现的websocketserver,用户连接服务器需要带uuid,和base64编码后的图片,图片最好小于200k,若用户发送的图像文件符合要求,会返回200(完成其中一个动作)或201(完全完成)。

(3).客户端:

目前仅实现了,启动时候先请求detecting/Create接口,使用安卓:通过camera api1调用相机硬件,每两秒通过websocket上传一次图片,并且通过服务器的知识反馈


2.原理:

**整体原理:**通过用户上传的身份证获取头像,并且通过活体识别最后一个动作获得用户头像(暂未实现),对这两个头像进行比较。

**活体识别:**要求用户做出三个脸部动作,判定其是真人。

3.技术:

  • 人脸图像处理:dlib
  • 语音:pyttsx3
  • 服务端:websocket,fastapi
  • 图片处理:ptl
  • 图片编码:base64
  • OCR:PaddleOcr
  • 客户端网络请求/websocket客户端:okhttp

二.未来可能出现的适配:

1.更多脸部适配:

目前仅支持眼睛(睁眼和闭眼),嘴巴(张嘴和闭嘴)的活动,未来可能会引入更多脸部活动,例如微笑、挑眉毛等其他脸部活动判定。

2.多图片验证:

发现因为传输角度的问题存在传输失误的问题,后续可能改成一次上传多张图片。例如三张图,至少有两张达到标准

3.多服务器适配(V2就会实现):

由于用到图像处理、tts技术,对于服务器压力肯定是非常吃的,未来估计会将websocket端支持多服务器,通过http服务获取"不忙碌"的websocket地址,在进行连接


三.效果图:

1.http服务端运行截图

2.websocket服务端运行截图

3.客户端运行效果截图

相关推荐
Gauss松鼠会12 分钟前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
超级架构师17 分钟前
让 Fortran 模型自己调用 Agent:原生 Fortran 2008 实现深度剖析
人工智能·python·架构·机器人·开源·fortran
Best_Liu~18 分钟前
SpringBoot全局日期格式化
java·spring boot·后端
小蒜学长21 分钟前
基于Django+Vue喵汪联盟宠物领养系统的设计与实现(代码+数据库+LW)
后端·python·django·宠物领养系统·流程规范化
云边有个稻草人31 分钟前
Prometheus Pushgateway教程:离线任务指标上报、Shell与Python示例、远程访问
开发语言·python·prometheus
谙弆悕博士33 分钟前
debian快速换源
linux·运维·windows·debian·下载·换源·网络问题
.道阻且长.41 分钟前
Linux基本开发工具:编译器gcc/g++
linux·运维·服务器·职场和发展
fanruitian1 小时前
pycharm 使用anaconda
ide·python·pycharm
Dwzun1 小时前
基于SpringBoot3+Vue3的油莎豆种植管理系统
java·前端·vue.js·spring boot·后端·python·计算机网络
小码哥_常7 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端