源代码人脸识别宿舍门禁系统(pythonqtopencv带数据库)-深度学习文档类资源-CSDN下载​download.csdn.netv2-45d27823c6ad25115a4ee8afc4950768_ipico.jpg

视频效果[video(video-16ReW6hG-1605924878152)(type-csdn)(url-https://live.csdn.net/v/embed/95485)(image-https://vedu.csdnimg.cn/8a4f688593504c7ba9fcf86c44a682bc/snapshots/eb492bcc2f7a44e394b850524dc8e794-00005.jpg)(title-人脸识别 宿舍门禁系统( pyqt opencv带数据库))]​live.csdn.net

一.界面设计 使用Qt Designer(源代码内有设计文件ui):

二.人脸检测模块 opencv-dnn

OpenCV在DNN模块中提供了基于残差SSD网络训练的人脸检测模型,该模型分别提供了tensorflow版本,caffe版本,torch版本模型文件。

其中tensorflow版本的模型做了更加进一步的压缩优化,大小只有2MB左右,非常适合移植到移动端使用,实现人脸检测功能,而caffe版本的是fp16的浮点数模型,精准度更好。

对比传统人脸检测,同样一张图像,在OpenCV HAAR与LBP级联检测器中必须通过不断调整参数才可以检测出全部人脸,而通过使用该模型,基本在Python语言中基于OpenCV后台的推断,在25毫秒均可以检测出结果,网络支持输入size大小为300x300。

def getface(img,net):

# 置信度参数,高于此数才认为是人脸,可调

confidence = 0.3

(h, w) = img.shape[:2] # 获取图像的高和宽,用于画图

blob = cv2.dnn.blobFromImage(cv2.resize(img, (300, 300)), 1.0,(300, 300), (104.0, 177.0, 123.0))

# blobFromImage待研究

net.setInput(blob)

# 预测结果

detections = net.forward()

maxFace = []

# 在原图加上标签和框

for i in range(0, detections.shape[2]):

# 获得置信度

res_confidence = detections[0, 0, i, 2]

# 过滤掉低置信度的像素

if res_confidence > confidence:

# 获得框的位置

box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])

(startX, startY, endX, endY) = box.astype("int")

startX = 0 if startX<0 else startX

startY = 0 if startY<0 else startY

if endX>w:

return

if endY>h:

return

print(startX, startY, endX, endY)

return startX, startY, endX, endY

三.人脸识别模块 LBPHFaceRecognizer

基于LBP算子的人脸识别算法:

LBP被运用于计算机人脸识别领域时,提取出来的人脸特征通常是以LBP直方图向量进行表达的。 1. 对预处理后的人脸图像进行分块 2. 对分块后的各小块图像区域进行LBP特征提取变换 3. 使用LBP直返图向量作为人脸特征的描述。

一般分块数越多,人脸表达的效果就会越好,但是分块数越多,会直接导致特征向量维数的增加,会增加计算的复杂度。对每个分块计算LBP值的直方图,然后将所有分块直方图进行连接得到最终的直方图特征向量,这个特征向量代表原来的人脸图像,可以用来描述整体图像。

对于这个融合的直方图,我们进行特征分类。 如果训练样本数量越大,分类的效果也会越好,

LBPH的预测进程 预测进程就比较简单了,首先将待查询点图象进行lbp编码并生成空间直方图,然后线性暴力的计算直方图的距离,采用基于直方图的相似性度量的最近邻分类方法来分类

id, lbphconfidence = LBPH.predict(gray) #识别人脸

四.数据库 sqlite

qq群686070107

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐