赞
踩
[毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总
2023年 - 2024年 最新计算机毕业设计 本科 选题大全 汇总
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。
技术栈:
Python语言、人脸表情识别系统、情绪识别系统、深度学习、神经网络、CNN算法、PyQt5、tensorflow、FER数据集、CNN的主流框架之mini_XCEPTION。
识别分类:
生气、厌恶、恐惧、快乐、伤心、惊讶、中性(7种)
(1)图片识别检测1
(2)图片识别检测2
(3)视频检测
(4)摄像头检测识别
首先运用 Adaboos 算法对人 脸面部表情图像进行粗略的裁剪,再利用梯度积分投影和双阈值二值化对人脸面部表情图像中的人眼进行定位从而实现对人脸面部图像的精确裁剪;对于裁剪好的图像又对其进行了基于双线性插值的尺度归一化处理和基于均衡化算法的灰度归一化处理,得到最终的统一尺寸和统一灰度的人脸面部表情图像。
综合考虑的神经元的特征、学习规则和网络的拓扑结构三个方面构建了一个用于对人脸面部表情进行识别和分类的卷积神经网络构架。卷积层采用固定权值的 Gabor 小波直接构造,全连接层采用支持向量机算法进行构造,并运用匹配生长规则 对卷积神经网络的层次结构进行确定,利用反向传播算法对整个卷积神经网进行参 数训练。最终得到经过实验确定的适用于人脸面部表情识别与分类的卷积神经网络 结构。针对 Gabor 小波的位数灾难问题,运用 Fisher 线性判别法改进的主成分分析 法对其进行了降维处理,有效地解决了人脸面部图像维数过多和识别时间较长的问 题。 对改进的主成分分析法结合支持向量机算法与卷积神经网络算法分别进行了人 脸面部表情识别的实验,并与传统的人脸面部表情识别结构进行了比较,验证了卷 积神经网络在人脸面部表情识别的准确性和有效性;另外,对人脸面部表情识别分 类系统进行了设计,并设计了应用于人机交互的 GUI 图形用户界面
# -*- coding: utf-8 -*- from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtWidgets import QFileDialog from PyQt5.QtCore import Qt from PyQt5.QtGui import QMovie from real_time_video_me import Emotion_Rec from os import getcwd import numpy as np import cv2 import time from base64 import b64decode from os import remove from slice_png import img as bgImg from EmotionRecongnition_UI import Ui_MainWindow import image1_rc class Emotion_MainWindow(Ui_MainWindow): def __init__(self, MainWindow): self.path = getcwd() self.timer_camera = QtCore.QTimer() # 定时器 self.timer_video = QtCore.QTimer() # 定时器 self.setupUi(MainWindow) self.retranslateUi(MainWindow) self.slot_init() # 槽函数设置 # 设置界面动画 gif = QMovie(':/newPrefix/icons/scan.gif') self.label_face.setMovie(gif) gif.start() self.cap = cv2.VideoCapture() # 屏幕画面对象 self.cap2 = cv2.VideoCapture() self.CAM_NUM = 0 # 摄像头标号 self.model_path = None # 模型路径 # self.__flag_work = 0 def slot_init(self): # 定义槽函数 self.toolButton_camera.clicked.connect(self.button_open_camera_click) self.toolButton_model.clicked.connect(self.choose_model) self.toolButton_video.clicked.connect(self.button_open_video_click) self.timer_camera.timeout.connect(self.show_camera) self.timer_video.timeout.connect(self.show_video) self.toolButton_file.clicked.connect(self.choose_pic) def button_open_camera_click(self): # 界面处理 self.timer_camera.stop() self.timer_video.stop() self.cap.release() self.cap2.release() self.label_face.clear() self.label_result.setText('None') self.label_time.setText('0 s') self.textEdit_camera.setText('实时摄像已关闭') self.textEdit_video.setText("视频未选中") self.label_outputResult.clear() self.label_outputResult.setStyleSheet("border-image: url(:/newPrefix/icons/ini.png);") if self.timer_camera.isActive() == False: # 检查定时状态 flag = self.cap.open(self.CAM_NUM) # 检查相机状态 if flag == False: # 相机打开失败提示 msg = QtWidgets.QMessageBox.warning(self.centralwidget, u"Warning", u"请检测相机与电脑是否连接正确! ", buttons=QtWidgets.QMessageBox.Ok, defaultButton=QtWidgets.QMessageBox.Ok) else: # 准备运行识别程序 self.textEdit_pic.setText('文件未选中') QtWidgets.QApplication.processEvents() self.textEdit_camera.setText('实时摄像已开启') self.label_face.setText('正在启动识别系统...\n\nleading') # 新建对象 self.emotion_model = Emotion_Rec(self.model_path) QtWidgets.QApplication.processEvents() # 打开定时器 self.timer_camera.start(30) else: # 定时器未开启,界面回复初始状态 self.timer_camera.stop() self.timer_video.stop() self.cap.release() self.cap2.release() self.label_face.clear() self.textEdit_camera.setText('实时摄像已关闭') self.textEdit_pic.setText('文件未选中') self.textEdit_video.setText('文件未选中') gif = QMovie(':/newPrefix/icons/scan.gif') self.label_face.setMovie(gif) gif.start() self.label_outputResult.clear() self.label_outputResult.setStyleSheet("border-image: url(:/newPrefix/icons/ini.png);") self.label_result.setText('None') self.label_time.setText('0 s') def button_open_video_click(self): # 界面处理 self.timer_camera.stop() self.timer_video.stop() self.cap.release() self.cap2.release() self.label_face.clear() self.label_result.setText('None') self.label_time.setText('0 s') self.textEdit_camera.setText('实时摄像已关闭') self.textEdit_video.setText("视频未选中") self.label_outputResult.clear() self.label_outputResult.setStyleSheet("border-image: url(:/newPrefix/icons/ini.png);") if self.timer_video.isActive() == False: # 检查定时状态 # 使用文件选择对话框选择图片 fileName_choose, filetype = QFileDialog.getOpenFileName( self.centralwidget, "选取图片文件", self.path, # 起始路径 "视频(*.mp4;)") # 文件类型 self.path = fileName_choose # 保存路径 if fileName_choose != '': self.textEdit_video.setText(fileName_choose + '文件已选中') # 新建对象 self.cap2 = cv2.VideoCapture(self.path) self.emotion_model = Emotion_Rec(self.model_path) # 打开定时器 self.label_face.setText('正在启动识别系统...\n\nleading') self.timer_video.start(30) QtWidgets.QApplication.processEvents() else: # 准备运行识别程序 self.textEdit_pic.setText('文件未选中') self.textEdit_video.setText('文件未选中') QtWidgets.QApplication.processEvents() self.textEdit_camera.setText('实时摄像已关闭') else: # 定时器未开启,界面回复初始状态 self.timer_camera.stop() self.timer_video.stop() self.cap.release() self.cap2.release() self.label_face.clear() self.textEdit_camera.setText('实时摄像已关闭') self.textEdit_pic.setText('文件未选中') self.textEdit_video.setText('文件未选中') gif = QMovie(':/newPrefix/icons/scan.gif') self.label_face.setMovie(gif) gif.start() self.label_outputResult.clear() self.label_outputResult.setStyleSheet("border-image: url(:/newPrefix/icons/ini.png);") self.label_result.setText('None') self.label_time.setText('0 s') def choose_model(self): # 选择训练好的模型文件 self.timer_camera.stop() self.timer_video.stop() self.cap.release() self.cap2.release() self.label_face.clear() self.label_result.setText('None') self.label_time.setText('0 s') self.textEdit_camera.setText('实时摄像已关闭') self.textEdit_video.setText('文件未选中') self.textEdit_pic.setText('文件未选中') self.label_outputResult.clear() self.label_outputResult.setStyleSheet("border-image: url(:/newPrefix/icons/ini.png);") # 调用文件选择对话框 fileName_choose, filetype = QFileDialog.getOpenFileName(self.centralwidget, "选取图片文件", getcwd(), # 起始路径 "Model File (*.hdf5)") # 文件类型 # 显示提示信息 if fileName_choose != '': self.model_path = fileName_choose self.textEdit_model.setText(fileName_choose + ' 已选中') else: self.textEdit_model.setText('使用默认模型') # 恢复界面 gif = QMovie(':/newPrefix/icons/scan.gif') self.label_face.setMovie(gif) gif.start()
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/428061
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。