文章目录
1.背景概述
由于我们学校有的宿舍在校外,人员流动性大,人员身份复杂,学生安全意识相对薄弱等几大特点,学生的财产安全及学生宿舍管理问题急需有待解诀,其中尤为突出的又表现在现有门锁的不安全及管理上诸多不便。现常用普通机械门锁主要有以下几大不便:顺手不能锁门、钥匙容易复制、容易丢失且不能挂失、无法查询开门记录、防盜性能极差、外观简单。鉴于以上原因学校不得不陷入循环换锁的尴尬之中,浪费巨大的人力、物力与财力并且还是无法从根本上解诀问题。人脸智能门锁从根本上解诀了以上问题,所以学生宿舍改用人脸智能门锁就势在必行了。人脸智能门锁是现在高度文明的表现,人脸智能门锁能够实时监控进入宿舍的人员并做记录,没有得到许可(需要宿舍长录入人脸)的人员是无法进入宿舍的,如果非法闯入还将引发警报。
2.设计方案
2.1框架设计
利用wxPython设计一个人机交互界面的窗口,便于更好的实现人机交互。
2.2宿舍管理
在这个模块中利用wxPython,sqlite3和dlib库结合完成人脸的录入、删除功能
(1)利用opencv打开笔记本摄像头完成人脸检测,并绘制矩形框,获取当前捕获到的图像的所有人脸特征与姓名和学号进行绑定存储到数据库。
(2)检测到人脸的同时需要与数据库中的人脸进行匹配,如果人脸相似就不在进行录入,如果录入就覆盖之前的人脸信息。
(3)删除人脸信息就是弹出一个对话框进行姓名填写,如果名字存在就将本地文件夹与数据库里面的该条数据删除,如果该名字不存在就弹出警告。
2.3监测人员
该模块与上面人脸录入模块设计类似,利用opencv调用摄像头完成人脸检测,并将检测到的人脸信息与存储的信息进行比对,如果有就将其存到日志表中。
2.4流动日志
该模块与监测人员模块相结合,将监测人员模块中得到的数据显示在表格中,反映人员的流动情况。
3.实验详细步骤
3.1.框架设计
(1)初始化
def __init__(self):
wx.Frame.__init__(self,parent=None,title="宿舍管理系统",size=(920,560))
self.initMenu()
self.initInfoText()
self.initGallery()
self.initDatabase()
self.initData()
(2)初始化菜单栏
def initMenu(self):
menuBar = wx.MenuBar() #生成菜单栏
menu_Font = wx.Font()#Font(faceName="consolas",pointsize=20)
menu_Font.SetPointSize(14)
menu_Font.SetWeight(wx.BOLD)
registerMenu = wx.Menu() #生成菜单
self.new_register = wx.MenuItem(registerMenu,ID_NEW_REGISTER,"新建录入")
self.new_register.SetBitmap(wx.Bitmap("F:/WorkAttendanceSystem-master/V2.0/drawable/new_register.png"))
self.new_register.SetTextColour("SLATE BLUE")
self.new_register.SetFont(menu_Font)
registerMenu.Append(self.new_register)
self.delete_member = wx.MenuItem(registerMenu,ID_DELETE_MEMBER,"人员删除")
self.delete_member.SetBitmap(wx.Bitmap("F:/WorkAttendanceSystem-master/V2.0/drawable/finish_register.png"))
self.delete_member.SetTextColour("SLATE BLUE")
self.delete_member.SetFont(menu_Font)
registerMenu.Append(self.delete_member)
puncardMenu = wx.Menu()
self.start_punchcard = wx.MenuItem(puncardMenu,ID_START_PUNCHCARD,"开始监测")
self.start_punchcard.SetBitmap(wx.Bitmap("F:/WorkAttendanceSystem-master/V2.0/drawable/start_punchcard.png"))
self.start_punchcard.SetTextColour("SLATE BLUE")
self.start_punchcard.SetFont(menu_Font)
puncardMenu.Append(self.start_punchcard)
self.end_puncard = wx.MenuItem(puncardMenu,ID_END_PUNCARD,"退出监测")
self.end_puncard.SetBitmap(wx.Bitmap("F:/WorkAttendanceSystem-master/V2.0/drawable/end_puncard.png"))
self.end_puncard.SetTextColour("SLATE BLUE")
self.end_puncard.SetFont(menu_Font)
self.end_puncard.Enable(False)
puncardMenu.Append(self.end_puncard)
logcatMenu = wx.Menu()
self.open_logcat = wx.MenuItem(logcatMenu,ID_OPEN_LOGCAT,"打开日志"

本文介绍了一款针对学生宿舍安全的人脸智能门锁系统,采用人脸识别技术解决传统门锁存在的安全与管理问题,通过wxPython实现人机交互界面,结合opencv、sqlite3和dlib库完成人脸录入、删除及监测人员等功能。
最低0.47元/天 解锁文章
1646





