毕设项目——基于Qt、PYTHON智能校园防御系统应用程序,实现了摄像头数据采集、人脸识别、口罩识别、 数据统计等功能

这篇具有很好参考价值的文章主要介绍了毕设项目——基于Qt、PYTHON智能校园防御系统应用程序,实现了摄像头数据采集、人脸识别、口罩识别、 数据统计等功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

毕设项目:基于Qt、PYTHON智能校园防御系统应用程序,实现了摄像头数据采集、人脸识别、口罩识别、 数据统计等功能

完整项目地址:https://download.csdn.net/download/lijunhcn/88453470

项目结构
毕设项目——基于Qt、PYTHON智能校园防御系统应用程序,实现了摄像头数据采集、人脸识别、口罩识别、 数据统计等功能,计算机课程毕设源码,课程设计,qt,python

环境选型
  1. 语言:Python
  2. 操作系统:Windows
  3. 数据库:MySQL
  4. 窗口界面:PyQT
  5. API接口:百度AI接口,用以实现人脸登陆与注册
远程MySQL表结构

毕设项目——基于Qt、PYTHON智能校园防御系统应用程序,实现了摄像头数据采集、人脸识别、口罩识别、 数据统计等功能,计算机课程毕设源码,课程设计,qt,python

远程表结构sql脚本
DROP TABLE IF EXISTS `access_record_table`;
CREATE TABLE `access_record_table` (
  record_id int(11) NOT NULL AUTO_INCREMENT  COMMENT '主键',
  has_mask enum('0','1') NOT NULL DEFAULT '0' COMMENT '是否佩戴口罩',
  access_time timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  place_id int(11) UNSIGNED NOT NULL DEFAULT '00000' COMMENT '设备id',
  stu_id int(1) int(11)  UNSIGNED NOT NULL DEFAULT '00000' COMMENT '学生id',
  PRIMARY KEY (record_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

DROP TABLE IF EXISTS `place_table`;
CREATE TABLE `place_table` (
  place_id int,
  place_name varchar(32) DEFAULT NULL COMMENT '地点名字',
  place_time timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  foreign key(place_id) references access_record_table(place_id) on delete cascade on update cascade
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

DROP TABLE IF EXISTS `stu_table`;
CREATE TABLE `stu_table` (
  stu_id int,
  stu_name varchar(32) DEFAULT NULL COMMENT '学生名字',
  stu_status enum('0','1','2') NOT NULL DEFAULT '0' COMMENT '学生状态',
  stu_times timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  foreign key(stu_id) references access_record_table(stu_id) on delete cascade on update cascade
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

DROP TABLE IF EXISTS `usr_table`;
CREATE TABLE `usr_table` (
  stu_id int(11) NOT NULL AUTO_INCREMENT  COMMENT '主键',
  usr_name varchar(32) DEFAULT NULL COMMENT '用户名称',
  usr_pic varchar(32) DEFAULT NULL COMMENT '用户图片名称',
  usr_times timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
  PRIMARY KEY (stu_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
项目背景

智能校园防御软件是实现了一款基于摄像头数据采集、人脸识别、口罩识别、 数据统计的预警系统,该种防御系统能够通过人脸识别进行管理员登录打卡,通过安装在教室内的固定摄像头,实时采集教室内上课同学的图像,判断是否有带口罩,从而在监控屏幕中予以标记提示警卫人员。采用 OpenCV/爬虫数据采集、利用 Numpy、Pandas 及特征工程、模型聚合进行数据预处理、CNN 模型训练框架。

部分源码:文章来源地址https://www.toymoban.com/news/detail-763730.html

# *coding:utf-8 *
from Global import CONFIG
import pymysql


class CDbOpt:
    def __init__(self):
        """
        MySql操纵类函数的相关初始化数值
        """
        self.conn_mysql = pymysql.Connect(
            database=CONFIG["@mysql_opt"]["mysql_db"],
            user=CONFIG["@mysql_opt"]["mysql_user"],
            password=CONFIG["@mysql_opt"]["mysql_pwd"],
            host=CONFIG["@mysql_opt"]["mysql_host"],
            port=CONFIG["@mysql_opt"]["mysql_port"],
            charset=CONFIG["@mysql_opt"]["mysql_charset"],
        )

    def __del__(self):
        """
        析构函数: 关闭Sql连接
        """
        self.conn_mysql.close()

    def Db_Selete(self, *args, **kwargs):
        # 获取数据字段
        # 整理出sql
        # 调用db
        table = args[0]
        where_fields = ''
        data = kwargs.get('data')
        where_list = data.get('where_list')
        select_list = data.get('select_list')
        if where_list != None:
            del data['where_list']
        if select_list != None:
            del data['select_list']
        for k, v in data.items():
            if k in where_list:
                if where_fields == '':
                    where_fields += f"{k}='{v}'"
                else:
                    where_fields += f"and {k}='{v}'"
        fields = ','.join(select_list)

        cursor = self.conn_mysql.cursor()
        sql = f"""select {fields} from {table} where {where_fields}"""
        cursor.execute(sql)
        result = cursor.fetchall()
        return result

    def Db_SELECT_SQL(self, sql):
        # 获取数据字段
        # 整理出sql
        # 调用db
        cursor = self.conn_mysql.cursor()
        cursor.execute(sql)
        result = cursor.fetchall()
        return result

    def Db_Update_SQL(self, sql):
        # 调用sql
        cursor = self.conn_mysql.cursor()
        try:
            cursor.execute(sql)
            self.conn_mysql.commit()
            return True
        except Exception as e:
            print(e)
            self.conn_mysql.rollback()
            return False

    def Db_Update(self, *args, **kwargs):
        table = args[0]
        fields = ''
        where_fields = ''
        data = kwargs.get('data')
        where_list = data.get('where_list')
        select_list = data.get('select_list')
        if where_list != None:
            del data['where_list']
        if select_list != None:
            del data['select_list']
        for k, v in data.items():
            if k in where_list:
                if where_fields == '':
                    where_fields += f"{k}='{v}'"
                else:
                    where_fields += f"and {k}='{v}'"
            else:
                if fields == '':
                    fields += f"{k}='{v}'"
                else:
                    fields += f", {k}='{v}'"

        # 调用sql
        cursor = self.conn_mysql.cursor()
        sql = f"""update {table} set {fields} where {where_fields}"""
        try:
            cursor.execute(sql)
            self.conn_mysql.commit()
        except Exception as e:
            print(e)
            self.conn_mysql.rollback()


    def Db_Insert(self, *args, **kwargs):
        table = args[0]
        fields = ''
        where_fields = ''
        data = kwargs.get('data')
        where_list = data.get('where_list')
        select_list = data.get('select_list')
        if where_list != None:
            del data['where_list']
        if select_list != None:
            del data['select_list']
        num = 0
        for k, v in data.items():
            if num == 0:
                where_fields += f"{k}"
                fields += f"'{v}'"
            else:
                where_fields += f", {k}"
                fields += f", '{v}'"
            num += 1

        cursor = self.conn_mysql.cursor()
        sql = f"""insert into {table} ({where_fields}) values({fields})"""
        try:
            cursor.execute(sql)
            self.conn_mysql.commit()
            return True
        except Exception as e:
            print(e)
            self.conn_mysql.rollback()
            return False

    def Db_Delete(self, *args, **kwargs):
        table = args[0]
        fields = ''
        where_fields = ''
        data = kwargs.get('data')
        where_list = data.get('where_list')
        select_list = data.get('select_list')
        if where_list != None:
            del data['where_list']
        if select_list != None:
            del data['select_list']
        for k, v in data.items():
            if fields == '':
                fields += f"{k}='{v}'"
            else:
                fields += f", {k}='{v}'"
            if k in where_list:
                if where_fields == '':
                    where_fields += f"{k}='{v}'"
                else:
                    where_fields += f"and {k}='{v}'"

        cursor = self.conn_mysql.cursor()
        sql = f"""delete from {table} where {where_fields}"""
        try:
            cursor.execute(sql)
            self.conn_mysql.commit()
        except Exception as e:
            print(e)
            self.conn_mysql.rollback()

到了这里,关于毕设项目——基于Qt、PYTHON智能校园防御系统应用程序,实现了摄像头数据采集、人脸识别、口罩识别、 数据统计等功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java毕设项目:智慧校园管理系统

    Java工程师的进阶之路 资料地址 1、登录及角色控制 2、业务模块展示 智慧校园管理系统:主要是以年级、班级为单位,进行老师和学生信息记录和统计功能。项目采用前后端分离架构思想,前端采用HTML+CSS+VUE来实现页面效果展示,后端采用SpringBoot+MybatisPlus框架实现数据存储

    2023年04月08日
    浏览(39)
  • 【毕设精选】基于微信小程序的校园跑腿+后台管理系统

    💗全网粉丝10W+、全栈领域优质创作者、掘金、阿里云等社区博客专家、专注于全栈领域和毕业项目实战💗 文章最下面有微信,获取完整源码和数据库,没有套路,没有套路,没有套路!!! 网上大部分的毕设套路如下: 在b站发毕设项目的演示视频,让你免费领取,你领取

    2024年02月13日
    浏览(51)
  • 【毕设不求人】基于微信小程序的校园跑腿+后台管理系统

    💗全网粉丝10W+、全栈领域优质创作者、掘金、阿里云等社区博客专家、专注于全栈领域和毕业项目实战💗 文章最下面有微信,获取完整源码和数据库,没有套路,没有套路,没有套路!!! 网上大部分的毕设套路如下: 在b站发毕设项目的演示视频,让你免费领取,你领取

    2024年02月09日
    浏览(47)
  • Springboot基于小程序的校园招聘系统的设计与实现-计算机毕设 附源码09446

    随着智能手机的普及和4G网络的发展,以O20为代表的互联网+服务模式从衣食住行等方方面面改变着我们的生活方式。基于小程序的校园招聘系统主要功能模块包括用户管理,招聘资讯、招聘职位、简历投递、面试邀请等,采取面对对象的开发模式进行软件的开发和硬体的架设

    2024年02月20日
    浏览(52)
  • 93基于java的校园课程作业管理系统设计与实现(含配套lun文,可参考做毕设)

    本章节给大家带来一个基于java校园课程作业管理系统设计与实现,可适用于班级管理、学生管理、教师管理、课程管理、课程信息管理、学生选课管理、作业布置管理、作业提交管理、作业评分管理、课程评价管理、课程资源管理,作业管理系统,大学提交作业,布置作业管

    2024年02月08日
    浏览(32)
  • springboot/java/php/node/python校园餐厅网上订餐系统小程序【计算机毕设】

    本系统 (程序+源码) 带文档lw万字以上    文末可领取本课题的JAVA源码参考 选题背景: 随着互联网技术的飞速发展,人们的生活方式正经历着翻天覆地的变化。尤其是在校园生活中,学生们的饮食习惯和方式也在逐渐被数字化和网络化所改变。传统的校园餐厅就餐模式,

    2024年02月19日
    浏览(51)
  • 基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统——NLP自然语言处理算法应用(含Python全部工程源码及训练模型)+数据集

    这个项目充分利用了Google的Bert模型,这是一种基于Attention的大规模语料预训练模型,以及LSTM命名实体识别网络。项目的目标是设计一套通用的问答系统处理逻辑,以实现智能问答任务。 首先,我们采用了Bert模型,这是一种在自然语言处理领域非常强大的预训练模型。它具备

    2024年02月09日
    浏览(52)
  • stm32毕设项目-基于stm32的智能药箱(代码开源)含论文

    目录  1、功能解释 2、硬件清单 3.硬件连接 4.代码分析 简介:智能药箱是基于 UCOS-III 系统,通过 STM32F103ZET6 为主控芯片。使用 4.3 寸 TFTLCD 触摸屏实现人机交互,使用 EMWIN 设计出用户交互界面。通过 DHT11 温湿度传感器模块来实时检测环境数据,当环境不合适时通过蜂鸣器发

    2024年02月04日
    浏览(40)
  • 毕设开题分享 stm32智能语音垃圾分类系统(项目开源)

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 毕业设计 stm32智能语音垃圾分类系统(项目开源) 大家可用于 课程设计 或 毕业设计 🧿 项目分享: https://gitee.com/sinonfin/sharing 学长设计的系统主要使用 stm32单片机为基础设计并开发一个智能垃圾桶系统。该系

    2024年01月23日
    浏览(67)
  • 单片机毕设 stm32智能语音垃圾分类系统(项目开源)

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 毕业设计 stm32智能语音垃圾分类系统(项目开源) 大家可用于 课程设计 或 毕业设计 🧿 项目分享:见文末! 学长设计的系统主要使用 stm32单片机为基础设计并开发一个智能垃圾桶系统。该系统实现智能开盖, 垃

    2024年03月10日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包