資源簡介
基于Dlib的人臉識別樣本采集,宿舍智能出入管理窗口系統,支持宿舍的增刪,人臉的采集錄入,日志管理,通過驗證就播放語音“welcome!”(模擬開門)
代碼片段和文件信息
#!/usr/bin/env?python
#?coding:?utf-8
#?In[1]:
import?wx
import?wx.grid
import?sqlite3
from?time?import?localtimestrftime
import?os
from?skimage?import?io?as?iio
import?io
import?zlib
import?dlib??#?人臉識別的庫dlib
import?numpy?as?np??#?數據處理的庫numpy
import?cv2??#?圖像處理的庫OpenCv
import?_thread
import?threading
import?stat
import?shutil
from?playsound?import?playsound
import?pyttsx3
ID_NEW_REGISTER?=?160
ID_DELETE_MEMBER?=?161
ID_START_PUNCHCARD?=?190
ID_END_PUNCARD?=?191
ID_NEW_MANAGER?=?220
ID_OPEN_LOGCAT?=?283
ID_CLOSE_LOGCAT?=?284
ID_WORKER_UNAVIABLE?=?-1
PATH_FACE?=?“F:/WorkAttendanceSystem-master/V2.0/data/face_img_database/“
facerec?=?dlib.face_recognition_model_v1(“F:/WorkAttendanceSystem-master/V2.0/model/dlib_face_recognition_resnet_model_v1.dat“)
#?Dlib?預測器
detector?=?dlib.get_frontal_face_detector()
predictor?=?dlib.shape_predictor(‘F:/WorkAttendanceSystem-master/V2.0/model/shape_predictor_68_face_landmarks.dat‘)
#?In[2]:
def?return_euclidean_distance(feature_1?feature_2):
????feature_1?=?np.array(feature_1)
????feature_2?=?np.array(feature_2)
????dist?=?np.sqrt(np.sum(np.square(feature_1?-?feature_2)))#歐式距離
????if?dist?>?0.4:
????????return?“diff“
????else:
????????return?“same“
class?WAS(wx.frame):
????def?__init__(self):
????????wx.frame.__init__(selfparent=Nonetitle=“宿舍管理系統“size=(920560))
????????self.initMenu()
????????self.initInfoText()
????????self.initGallery()
????????self.initDatabase()
????????self.initData()
????def?initData(self):
????????self.name?=?““
????????self.id?=ID_WORKER_UNAVIABLE
????????self.face_feature?=?““
????????self.pic_num?=?0
????????self.flag_registed?=?False
????????self.loadDatabase(1)
????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(registerMenuID_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(registerMenuID_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(puncardMenuID_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)
????????s
評論
共有 條評論