# coding:utf-8
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys
import os
import qtawesome
import cv2
import qtawesome
from random import randint
from time import sleep, ctime
im = None
result = None
class EmittingStream(QtCore.QObject):
textWritten = QtCore.pyqtSignal(str) # 定义一个发送str的信号
def write(self, text):
self.textWritten.emit(str(text))
class Initor_for_btn(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
def init_right(self):
# 原始视频
self.raw_video = QtWidgets.QLabel(self)
self.raw_video.setAlignment(Qt.AlignCenter)
self.raw_video.setText('请选择视频输入')
self.raw_video.setFixedSize(
self.video_size[0], self.video_size[1]) # width height
# self.raw_video.move(290, 20)
self.raw_video.setStyleSheet('QLabel{background:white;}'
'QLabel{color:rgb(100,100,100);'
'font-size:15px;'
'font-weight:bold;font-family:宋体;}'
'border-radius: 25px;border: 1px solid black;')
self.right_bar_widget = QtWidgets.QWidget() # 右侧顶部搜索框部件
self.right_bar_layout = QtWidgets.QGridLayout() # 右侧顶部搜索框网格布局
self.right_bar_widget.setLayout(self.right_bar_layout)
self.right_bar_layout.addWidget(self.raw_video, 0, 0)
self.right_layout.addWidget(self.right_bar_widget, 0, 0, 1, 9)
self.right_widget.setStyleSheet('''
QWidget#right_widget{
color:#232C51;
background:white;
border-top:1px solid darkGray;
border-bottom:1px solid darkGray;
border-right:1px solid darkGray;
border-top-right-radius:10px;
border-bottom-right-radius:10px;
}
QLabel#right_lable{
border:none;
font-size:16px;
font-weight:700;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
''')
def init_left(self):
self.left_close = QtWidgets.QPushButton(
qtawesome.icon('fa.remove', color='white'), '') # 关闭按钮
self.left_reset = QtWidgets.QPushButton(
qtawesome.icon('fa.undo', color='white'), '') # 刷新
self.left_mini = QtWidgets.QPushButton(
qtawesome.icon('fa.minus', color='white'), '') # 最小化按钮
self.left_label_1 = QtWidgets.QPushButton('文件')
self.left_label_1.setObjectName('left_label')
self.left_label_2 = QtWidgets.QPushButton('摄像头')
self.left_label_2.setObjectName('left_label')
self.left_label_3 = QtWidgets.QPushButton('保存')
self.left_label_3.setObjectName('left_label')
self.left_label_4 = QtWidgets.QPushButton('帮助')
self.left_label_4.setObjectName('left_label')
self.left_button_1 = QtWidgets.QPushButton(
qtawesome.icon('fa.film', color='white'), '本地文件')
self.left_button_1.setObjectName('left_button')
self.left_button_2 = QtWidgets.QPushButton(
qtawesome.icon('fa.video-camera', color='white'), '打开摄像头')
self.left_button_2.setObjectName('left_button')
self.left_button_rec = QtWidgets.QPushButton(
qtawesome.icon('fa.play', color='white'), '保存图片')
self.left_button_rec.setObjectName('left_button')
self.left_button_6 = QtWidgets.QPushButton(
qtawesome.icon('fa.comment', color='white'), '反馈建议')
self.left_button_6.setObjectName('left_button')
self.left_button_7 = QtWidgets.QPushButton(
qtawesome.icon('fa.star', color='white'), '关注我们')
self.left_button_7.setObjectName('left_button')
self.left_xxx = QtWidgets.QPushButton(' ')
self.left_layout.addWidget(self.left_mini, 0, 0, 1, 1)
self.left_layout.addWidget(self.left_close, 0, 2, 1, 1)
self.left_layout.addWidget(self.left_reset, 0, 1, 1, 1)
self.left_layout.addWidget(self.left_label_1, 1, 0, 1, 3)
self.left_layout.addWidget(self.left_button_1, 2, 0, 1, 3)
self.left_layout.addWidget(self.left_label_2, 3, 0, 1, 3)
self.left_layout.addWidget(self.left_button_2, 4, 0, 1, 3)
# self.left_layout.addWidget(self.left_button_3, 5, 0, 1, 3)
self.left_layout.addWidget(self.left_label_3, 6, 0, 1, 3)
self.left_layout.addWidget(self.left_button_rec, 8, 0, 1, 3)
self.left_layout.addWidget(self.left_label_4, 9, 0, 1, 3)
self.left_layout.addWidget(self.left_button_6, 10, 0, 1, 3)
self.left_layout.addWidget(self.left_button_7, 11, 0, 1, 3)
self.left_widget.setStyleSheet('''
QPushButton{border:none;color:white;}
QPushButton#left_label{
border:none;
border-bottom:1px solid white;
font-size:18px;
font-weight:700;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
QPushButton#left_button:hover{border-left:4px solid red;font-weight:700;}
''')
self.left_close.setFixedSize(32, 32) # 设置关闭按钮的大小
self.left_reset.setFixedSize(32, 32) # 设置按钮大小
self.left_mini.setFixedSize(32, 32) # 设置最小化按钮大小
self.left_close.setStyleSheet(
'''QPushButton{background:#F76677;border-radius:2px;}QPushButton:hover{background:red;}''')
self.left_reset.setStyleSheet(
'''QPushButton{background:#F7D674;border-radius:2px;}QPushButton:hover{background:yellow;}''')
self.left_mini.setStyleSheet(
'''QPushButton{background:#6DDF6D;border-radius:2px;}QPushButton:hover{background:green;}''')
self.left_widget.setStyleSheet(
'''QWidget#left_widget{
background:black;
border-top:1px solid white;
border-bottom:1px solid white;
border-left:1px solid white;
border-top-left-radius:10px;
border-bottom-left-radius:10px;
}'''
)
def init_ui(self):
# self.setFixedSize(960, 700)
self.main_widget = QtWidgets.QWidget() # 创建窗口主部件
self.main_layout = QtWidgets.QGridLayout() # 创建主部件的网格布局
self.main_widget.setLayout(self.main_layout) # 设置窗口主部件布局为网格布局
self.left_widget = QtWidgets.QWidget() # 创建左侧部件
self.left_widget.setObjectName('left_widget')
self.left_layout = QtWidgets.QGridLayout() # 创建左侧部件的网格布局层
self.left_widget.setLayout(self.left_layout) # 设置左侧部件布局为网格
self.right_widget = QtWidgets.QWidget() # 创建右侧部件
self.right_widget.setObjectName('right_widget')
self.right_layout = QtWidgets.QGridLayout()
self.right_widget.setLayout(self.right_layout) # 设置右侧部件布局为网格
self.main_layout.addWidget(
self.left_widget, 0, 0, 12, 2)
self.main_layout.addWidget(
self.right_widget, 0, 2, 12, 10)
self.setCentralWidget(self.main_widget) # 设置窗口主部件
class Initor_for_event(Initor_for_btn):
def __init__(self):
super().__init__()
self.timer_camera = QTimer() # 定义定时器
def init_btn_event(self):
self.left_mini.clicked.connect(self.showMinimized)
self.left_button_7.clicked.connect(self.load_url)
self.left_button_6.clicked.connect(self.message_box6
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Python基于FaceNet的人脸识别检测的课堂学生签到系统源码+项目使用说明.zip 【资源说明】 该模块通过卷积神经网络将人脸图像映射为一个一维的特征向量,任何对比检测人脸特征和数据库中人脸的特征在特征空间的距离,从而计算人脸相似度并进行人脸匹配和识别,其基本流程为: 使用MTCNN检测人脸区域并进行裁剪; 使用FaceNet模型直接将人脸图像转换到特征空间的一维特征向量。即通过一个深度的卷积神经网络,利用卷积层和池化层进行高层特征计算和下采样得到特征向量,这些特征向量的空间距离的长度就代表了特征的相似度,从而能够进行人脸匹配; 得到检测人脸的特征向量后,通过计算该人脸的特征向量与数据库中已经计算的人脸特征的距离来匹配人脸,并设置阙值来过滤陌生人脸; 本文调研并比对了不同人脸识别方法,重点介绍了本文开发的基于FaceNet的人脸识别系统的原理。 并且本文基于FaceNet开发了一套完整可行的人脸识别系统,功能包括:截取实时视频,检测和切割人脸图片,人脸特征匹配和识别等。
资源推荐
资源详情
资源评论
收起资源包目录
Python基于FaceNet的人脸识别检测的课堂学生签到系统源码+项目使用说明.zip (25个子文件)
FaceDetection
__init__.py 0B
detector.py 4KB
TestFace
__init__.py 246B
face_detection_cli.py 2KB
face_recognition_cli.py 5KB
api.py 10KB
__pycache__
api.cpython-37.pyc 11KB
__init__.cpython-37.pyc 476B
项目说明.md 2KB
platech.ttf 14.01MB
68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303230303532383038303931373130342e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d4.png 90KB
demo_video.py 858B
68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303230303532383038303533323333362e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5.png 669KB
68747470733a2f2f696d672d626c6f672e6373646e696d672e636e2f32303230303532383038303834353833342e706e673f782d6f73732d70726f636573733d696d6167652f77617465726d61726b2c747970655f5a6d4.png 29KB
Camera
__init__.py 0B
in_main_gui.py 5KB
in_GUI_init_layout.py 9KB
inside.py 530B
dst.gif 31.05MB
SaveUI.py 12KB
test.py 2KB
func
__init__.py 0B
facenet.py 5KB
__pycache__
facenet.cpython-37.pyc 4KB
__init__.cpython-37.pyc 166B
共 25 条
- 1
资源评论
- jdidnd2024-02-25资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
- 未见我所见2024-04-01资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
manylinux
- 粉丝: 4416
- 资源: 2491
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功