没有合适的资源?快使用搜索试试~ 我知道了~
人脸识别打卡项目实现步骤
需积分: 21 3 下载量 95 浏览量
2022-08-21
14:30:57
上传
评论 1
收藏 3.71MB PDF 举报
温馨提示
试读
62页
人脸识别打卡
资源推荐
资源详情
资源评论
人脸识别打卡项目实现
图像是人类视觉的基础,是自然景物的客观反映,是人类认识世界和人类本身的重要源泉。它是客观对
象的一种相似性的、生动性的描述或写真,是人类社会活动中最常用的信息载体。或者说图像是客观对
象的一种表示,它包含了被描述对象的有关信息。它是人们最主要的信息源。据统计,一个人获取的信
息大约有
75%
来自视觉。
图像技术是当前人工智能领域另一个应用较为广泛的技术之一,是计算机视觉的一个重要技术基础。计
算机视觉是一门研究如何使机器
“
看
”
的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标
进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪
器检测的图像。形象地说,就是给计算机安装上眼睛(照相机)和大脑(算法),让计算机能够向人类
一样感知环境,而人脸识别技术就是其中一个重要的分支。
基于人脸识别的应用有着非常广阔的市场空间,近些年也得到了迅猛的发展。本章节将以实际应用项目
《人脸识别打卡》为例,依托百度
AI
开放平台,帮助理解人脸识别的关键技术,熟练掌握应用开发的过
程。
7.1 人脸识别打卡项目架构
本节主要介绍项目的整体架构和各模块功能、人脸识别打卡的流程,帮助理解项目的实现过程。
7.1.1
系统架构
人脸识别打卡项目架构如图
7-1
所示。该系统由图像采集设备、
GUI
可视化交互界面、图像质量检测、人
脸库管理、人脸对比、考勤系统等
6
大模块组成,各模块功能如下所述。
1.
图像采集设备
:主要是指计算机的内置摄像头或
usb
外接摄像头等,提供给
opencv
库的相关函数调用,
用于在一定的光照条件下采集人脸图像,进行质量检测、人脸对比等。
2. GUI
可视化交互界面:使用
GUI
工具提供可视化的交互界面。
3.
图像质量检测
:对图像采集设备获取的图像进行质量检测,主要包括面部遮挡、图像模糊度、光照情
况、姿态角度和人脸完整度等重要影响因素的检测,返回检测结果,用于判定是否需要重新采集。
4.
人脸库管理
:使用百度
AI
开放平台提供的人脸库管理接口,主要用于管理系统的人脸信息,包括注
册、删除等功能,为后续人脸对比等提供支持。
5.
人脸对比模块
:使用百度
AI
开放平台提供的相关接口功能,用于人脸识别进行考勤打卡时,与人脸库
进行比对,验证打卡人员身份,进行考勤登记。
6.
考勤系统模块
:主要包括
SQLite
数据库、考勤打卡功能函数、考勤状态查看等子模块,用于进行考勤
登记、考勤数据存储和考勤状态查看等。
7.1.2
工作流程
图7-1 人脸识别打卡系统架构
本项目实现了三个功能需求,分别是注册录入、刷脸签到以及考勤日志查看等。
(1) 注册录入:主要用于新用户的信息录入。输入用户姓名和
ID
,采集人脸图像,并调用百度
AI
平台
的人脸检测接口进行人脸图像的质量检测,如果检测结果合格,将人脸信息加入人脸库,由百度
AI
平台
的人脸库进行管理;否则,需要重新进行人脸采集,直到检测结果合格。
(2) 考勤打卡:主要用于记录用户考勤打卡情况,并写入到数据库。采集人脸图像,并调用百度
AI
平
台的人脸对比接口与人脸库中图像进行对比,如果在人脸库中存在,返回用户信息,并记录当前打卡时
间,写入到数据库中;否则,提示打卡识别,需要用户提交注册。
(3) 考勤日志查看:主要用于查看用户的考勤签到情况,读取数据库中考勤签到表,并在
GUI
交互界面
显示,了解考勤签到情况。
人脸识别打卡系统流程如图
7-2
所示。
图7-2 考勤打卡流程
7.2 前端代码展示
本项目采用
GUI
工具
wxPython
搭建可视化交互界面,完成各模块的集成。
7.2.1
GUI工具wxPython
wxPython
是一个用于创建桌面
GUI
应用程序的跨平台工具包,主要作者是
Robin Dunn
。
wxPython
具有较
强的可移植性,开发人员可以在
Windows
,
Mac
和各种
Unix
系统上创建应用程序。
wxPython
是
wxWidgets
的包装器,它是一个成熟的跨平台C++库。
wxPython
由
Windows
、
GDI
、
Core
、
Misc
和
Controls
等五个基本模块组成。
1.
Controls
控件模块
提供了图形应用程序中常见的小部件。例如一个按钮,一个工具栏,或者一个笔记
本。
Widget
在
Windows
操作系统下被称为控件。
2. Core
模块由开发中使用的基本类组成。这些类包括
Object
类,它是所有类的母类,
Sizer
,用于
widget
布局,
Events
,基本的几何类如
Point
和
Rectangle
。
3.
图形设备接口(
GDI
)
是一组用于绘制到
widget
上的类。这个模块包含了用于操作字体、颜色、笔
刷、笔或图像的类。
4.
Misc
模块
包含各种其他类和模块功能。这些类用于记录,应用程序配置,系统设置,与显示器或操纵
杆一起工作。
5.
Windows
窗口模块
由各种窗口组成,这些窗口构成了一个应用程序,例如一个面板,一个对话框,
一个框架,或一个滚动窗口。
安装方法,输入命令行指令:
示例:创建wxPython应用程序“Hello wxPython's World”。
pip install wxPython
import wx
class App(wx.App):
def nInit(self):
frame = wx.Frame(None, title="Hello wxPython's world!") # Create a
frame.
frame.Show() # Show it.
return True
if name == ' main ':
app = App() # create an application object.
app.MainLoop()
第1行导入wxPython图形库import wx。
第
2-6
行创建一个类
class App(wx.App)
,它是该应用程序的
“
领袖
”
,负责统筹各种组件、框架等等。该类
中负责初始化的方法是
OnInit
,在该方法下,创建窗体
Frame
(基于
wx.Frame
,最简单的只需输入它的上
级
None
以及窗体标题
title
即可),然后将它展示出来
frame.Show()
。
第7-9行创建该类的实例app = App(),然后,开始它的主循环app.MainLoop()。
7.2.2
GUI可视化编辑工具
GUI
可视化编辑工具
wxFormBuilder
是一个开源、跨平台的所见即所得的图形用户界面生成器,可以翻译
wxWidget GUI
设计成
C++
、
Python
、
PHP
或
XML
格式。
wxFormBuilder界面主要分为四大区:项目区Object Tree、组件区Component Palette、编辑区
Editor、属性区Object Properties,如图7-3所示。
在
控件区
里点击添加需要的控件,这些控件的效果会在
编辑区
里实时显示,并在
属性区
显示这些控件的
属性,
项目区
用于显示控件间的层级关系。
图
7-3
界面四大区
使用 wxFormBuilder 进行设计的一般步骤是:
1.
增加所需的组件;
2. 在组件中放入各类 Sizer;
3.
添加各类控件;
4.
添加控件响应动作;
5.
自动生成代码。
在此过程中,
wxFormBuilder
只负责界面布局、事件绑定和事件接口初始化等任务。下面通过简单案例实
现一个界面,帮助熟悉
wxFormBuilder
的使用过程。
1
、下载安装
以windows版本为例,登录http://sourceforge.net/projects/wxformbuilder/files/wxformbuilder/3.1.
70/
,下载对应
操作系统的安装包,
windows
下载
exe
,
Mac
下载
dmg
,
Linux
下载
tar.bz2
,这里选择
windows
对应版本下载,并双击安装。
2
、 准备一个窗体
打开软件,点击
wxformbuilder
上方的标签
“forms”
,并点击标签下方的第一个类似窗体的图标
“Frame”
,如图
7-4
所示。
图
7-4
创建窗体
3
、添加布局器
点击
wxformbuilder
上方的标签
“Layout
,并点击标签下方的第一个图标
“wxBoxSizer”
。添加一个只有以列
控件布局的布局器。这时,窗体上并没有什么变化。但是窗口左边的目录树有变化了,窗体下多了一个
布局器,如图
7-5
所示。
图
7-5
布局器
剩余61页未读,继续阅读
资源评论
撸码的xiao摩羯
- 粉丝: 183
- 资源: 92
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功