【系统设计与实现】智慧教室在线监考系统,实时视频推理(vue前端+java管理后台+cpp深度学习算法后台)

2023-11-13

智慧教室在线监考系统(github仓库点击这里)

作弊检测、考生点名

架构

在这里插入图片描述

本智慧监考系统共分为4个部分,分别为:展示层、业务层、算法层和数据库。

本系统的展示层基于Vue.js框架和Ant Design Vue UI框架编写。用户通过浏览器访问前端界面来实现与系统的交互。

业务层是基于SpringBoot框架编写的Java后台服务器。该层负责本系统的大部分的数据管理和资源调度。用户通过系统的前端UI访问业务层的相关功能,进而实现对系统数据的增加、删除、修改、查看等功能。基于SpringBoot框架编写的后台服务器也能够使开发者快速地对系统的业务功能进行改进和扩展。

算法层是一组使用c++语言编写的算法应用服务器。该层部署了之前通过Pytorch框架训练得到的深度学习模型并使用TensorRT技术进行推理加速。该层使用Drogon Web应用框架实现网络访问接口,并且通过FFmepg实现对流媒体服务器的直接视频推流。

数据库应用包含了系统中所涉的数据库以及其他数据服务应用,其中,MySql负责存储系统中的大部分数据;Redis负责存储数据缓存;Minio负责存储图片等文件数据,考生异常行为检测得到的快照也将直接存储到Minio服务器上;流媒体服务器负责接收从算法应用层传来的视频流,并等待用户前端UI直接拉取视频并播放。

功能

考生人脸信息上传

上传的照片最好给脸部周围留点位置,不然检测不出来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jSlWVW0R-1658912607291)(.img/README/人脸信息上传.png)]

考生点名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-86e2D5Ks-1658912607291)(.img/README/考生点名界面.png)]

作弊检测

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z8OAAKg5-1658912607291)(.img/README/作弊检测.png)]

服务器管理

添加smart_classroom_algo服务器程序,服务器名字直接设置路径就好,比如http://127.0.0.1:12121.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e5GjI7HR-1658912607292)(.img/README/添加多台算法服务器.png)]

安装和启动说明

数据服务(需要docker)

docker run后面的-v可以根据自己的磁盘情况选择挂载路径

mysql

docker pull mysql

docker run -d -v /d/cache/docker/mysql/conf:/etc/mysql -v /d/cache/docker/mysql/data:/var/lib/mysql -v /d/cache/docker/mysql/mysql-files:/var/lib/mysql-files/ -p 3306:3306 --name smc_mysql -e MYSQL_ROOT_PASSWORD=hongyaohongyao mysql:latest

redis

docker pull redis
docker run --name smc_redis -d redis

minio

docker pull minio/minio
docker run -p 9000:9000 -p 9001:9001 --name smc_minio -e "MINIO_ROOT_USER=hongyaohongyao" -e "MINIO_ROOT_PASSWORD=hongyaohongyao123" -v /d/cache/docker/minio/data:/data -d minio/minio server /data --console-address ":9001"

流媒体服务器

docker pull mugennsou/nginx-http-flv
docker run -d -p 8888:80 -p 1935:1935 --name smc_video mugennsou/nginx-http-flv

前端

安装

cd ant-design-vue-jeecg
cnpm install

启动

npm serve run

管理系统(smart_classroom_admin)

  • 安装好上面要求的的docker镜像应该就能直接启动了
  • 把smart_classroom_admin/db/smc_db.sql导入mysql数据库
  • 管理系统使用Jeecgboot开发,框架细节可以参考他们的官方文档

算法服务(smart_classroom_algo)

在smart_classroom_algo文件夹下

依赖和环境变量

把下面的依赖下载安装好,并添加安装目录到环境变量,自己编译的添加的是安装目录下的build目录

  • CUDA_PATH:cuda toolkit安装路径,根据自己N卡的cuda版本安装

  • CUDNN_HOME:cudnn安装路径,根据上面那个cuda toolkit的版本安装

  • TENSORRT_HOME:tensorrt安装路径,根据上面那个cuda toolkit的版本安装

  • OPENCV_HOME:opencv安装路径(自己编译安装,目前使用版本4.5.4)

  • FFMPEG_HOME:ffmpeg安装路径(自己编译安装)

  • AWSSDK_HOME:aws-cpp-sdk安装路径(自己编译安装)

    • #cmake命令指定只安装s3组件
      cmake .. -DCMAKE_BUILD_TYPE=Release
      -DBUILD_ONLY="s3"
      -DCMAKE_INSTALL_PREFIX=./install
      -DCPP_STANDARD=14
      
  • DROGON_HOME:drogon框架安装路径(自己编译安装,要求c++17)

  • JSONCPP_HOME:jsoncpp安装路径(自己编译安装)

  • PROTOBUF_HOME:Protobuf安装路径(自己编译安装,指定版本3.11.4)

使用cmake编译安装cpp源码的通用步骤

上面有部分依赖需要自己编译源码进行安装,通常需要如下过程

  1. 在官网或github下载源码,然后解压到安装目录

  2. 在安装目录下创建build文件夹,进入build文件夹,运行cmake命令,通常为如下命令。

    cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install
    
  3. 然后是编译安装

    #window 下一般为(Clion里面可以直接选择最上边的选项卡Build>Install点击进行编译安装)
    cmake --build ${SRC_ROOT}/build --target install
    #linux 下一般为
    make && make install
    
  4. 设置环境SRC_HOME${SRC_ROOT}/build目录,在PATH变量中添加${SRC_HOME}/install/bin.

添加workspace和权重文件

提取码:hyhy

把workspace文件夹加到smart_classroom_algo文件夹下

ps:local/smc_videos文件夹里面的测试视频需要自己录制

编译&安装

mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build ./build --target smart_classroom_algo

点击workspace下面的smart_classroom_algo可执行文件启动程序

参考项目

系统开发

算法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【系统设计与实现】智慧教室在线监考系统,实时视频推理(vue前端+java管理后台+cpp深度学习算法后台) 的相关文章

  • 详解数据科学自动化与机器学习自动化

    过去十年里 人工智能 AI 构建自动化发展迅速并取得了多项成就 在关于AI未来的讨论中 您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语 事实上 这些术语有着不同的定义 如今的自动化机器学习 即 AutoML 特指模型构
  • Python 元组完全指南 1

    元组用于在单个变量中存储多个项目 mytuple apple banana cherry 元组是 Python 中的 4 种内置数据类型之一 用于存储数据集合 另外还有列表 集合和字典 它们都具有不同的特性和用途 元组是有序且不可更改的集合
  • 互操作性(Interoperability)如何影响着机器学习的发展?

    互操作性 Interoperability 也称为互用性 即两个系统之间有效沟通的能力 是机器学习未来发展中的关键因素 对于银行业 医疗和其他生活服务行业 我们期望那些用于信息交换的平台可以在我们需要时无缝沟通 我们每个人都有成千上万个数据
  • 【开题报告】基于SpringBoot的工资管理系统

    1 研究背景 基于SpringBoot的工资管理系统的选题背景主要可以从以下几个方面来考虑 1 企业运营管理需求 在现代企业中 薪资管理是人力资源管理的重要组成部分 直接影响到员工的工作积极性和企业的运营成本 随着企业规模的扩大和业务复杂性
  • 深入理解左倾红黑树 | 京东物流技术团队

    平衡二叉搜索树 平衡二叉搜索树 Balanced Binary Search Tree 的每个节点的左右子树高度差不超过 1 它可以在 O logn 时间复杂度内完成插入 查找和删除操作 最早被提出的自平衡二叉搜索树是 AVL 树 AVL
  • 深入理解左倾红黑树 | 京东物流技术团队

    平衡二叉搜索树 平衡二叉搜索树 Balanced Binary Search Tree 的每个节点的左右子树高度差不超过 1 它可以在 O logn 时间复杂度内完成插入 查找和删除操作 最早被提出的自平衡二叉搜索树是 AVL 树 AVL
  • 基于SpringBoot的旅游网站281

    文章目录 项目介绍 主要功能截图 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringBoot的旅游
  • 图神经网络与智能化创作艺术:开启艺术的智能时代

    导言 图神经网络 GNNs 与智能化创作艺术的结合为艺术领域带来了新的可能性 本文深入研究二者的结合方向 包括各自的侧重点 当前研究动态 技术运用 实际场景 未来展望 并提供相关链接 1 图神经网络与智能化创作艺术的结合方向 1 1 图神经
  • 【计算机开题报告】智能社区管理系统

    一 设计目的及意义 随着经济的发展 人们生活水平的提高 工作和日常事务繁忙 人们对服务就有了更深入 更精细的要求 而计算机技术的迅猛发展 使得这种需求变为可能 传统的社区服务业也与互联网技术结合更加密切 这是社会发展的必然趋势 为解决社区中
  • 【计算机毕设任务书】荣皓房屋租赁平台的设计与开发

    1 本毕业设计 论文 课题应达到的目的 1 训练学生文献资料查阅 项目调研与分析能力 2 训练学生用所学知识解决实际问题的能力 3 加强对学生的专业知识进行综合训练 4 熟悉项目开发的一般方法和步骤 5 提高学生团队合作能力 2 本毕业设计
  • 【计算机开题报告】家具销售库存管理信息系统

    一 选题的目的 意义及相关研究动态和自己的见解 随着当今社会信息化的发展 电子自动化办公越来越为各人所重视 它能有效地收集 处理各种信息 极大地提高了办事效率 而计算机技术各种软件工作平台不断的发展 又为电子自动化办公的实现提供了良好的前景
  • 【计算机毕业设计】校园体育赛事管理系统

    身处网络时代 随着网络系统体系发展的不断成熟和完善 人们的生活也随之发生了很大的变化 人们在追求较高物质生活的同时 也在想着如何使自身的精神内涵得到提升 而读书就是人们获得精神享受非常重要的途径 为了满足人们随时随地只要有网络就可以看书的要
  • 【计算机毕业设计】精品课程在线学习系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统精品课程学习信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难
  • 【图像融合】基于联合双边滤波和局部梯度能量的多模态医学图像融合研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 图像 文章
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 最新整理Java面试八股文,大厂必备神器

    在看这篇文章之前 我想我们需要先搞明白八股文是什么 明清科举考试的一种文体 也称制义 制艺 时文 八比文 八股文章就四书五经取题 内容必须用古人的语气 绝对不允许自由发挥 而句子的长短 字的繁简 声调高低等也都要相对成文 字数也有限制 八股
  • 2024史上最全Java面试八股文(带全部答案)

    今天要谈的主题是关于求职 求职是在每个技术人员的生涯中都要经历多次 对于我们大部分人而言 在进入自己心仪的公司之前少不了准备工作 有一份全面细致 面试题 将帮助我们减少许多麻烦 在跳槽季来临之前 特地做这个系列的文章 一方面帮助自己巩固下基
  • 回望计算机视觉会议ICCV的31年

    作者 原野寻踪 编辑 汽车人 原文链接 https zhuanlan zhihu com p 670393313 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 本文只做
  • 3D点云检测神技 | UFO来了!让PointPillars、PV-RCNN统统涨点!

    作者 AI驾驶员 编辑 智驾实验室 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 3D目标检测 技术交流群 本文只做学术分享 如有侵权 联系删文 在这篇论文中提出了一个关于在3D点云中检测未
  • SpringCloud Bus动态刷新全局广播

    文章目录 代码地址 配置项目 配置修改 测试 SpringCloud Bus动态刷新定点通知 代码地址 地址 https github com 13thm study springcloud tree main days11 20Bus 配

随机推荐

  • JSONArray操作汇总,排序,筛选,分组

    JSONArray操作汇总 一 排序 1 根据集合对象中某一对象属性进行排序 返回新的集合 2 List进行排序 返回新的List 注意 并没有改变原始list的顺序 二 筛选 1 获取集合对象中某一属性值 2 获取集合对象中某一属性值并去
  • JavaWeb基础7——会话技术Cookie&Session

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 一 会话技术 1 1 会话和跟踪技术介绍 1 2
  • 【华为OD机试 2023】 查找单入口空闲区域(C++ Java JavaScript Python)

    华为od机试题库 华为OD机试2022 2023 C Java JS Py https blog csdn net banxia frontend category 12225173 html 华为OD机试2023最新题库 更新中 C Ja
  • npm安装依赖至指定版本的方法

    简介 本文介绍npm安装依赖至指定版本的方法 依赖的版本可以在淘宝镜像或官方查询到 三种方法 方法一 先在package json里修改好指定版本号 然后输入 npm update webpack 方法二 npm update webpac
  • 【从推理出发】

    赌上爷爷之名 2021年暑假 和现在一样 也是很佛 不想好好学习的时间 8月的天气太过炎热 有时却又暴雨倾盆 很不讨喜 只得在家闲着看电视 动漫打发时间 按照以前的习惯 一般是悠闲地躺在沙发上吹着空调 看着长达900多集的柯南 然后在剧情中
  • spring cloud gateway 自定义负载均衡

    spring cloud gateway 自定义负载均衡 相关类及接口 LoadbalancerClientFilter 使用ribbon负载均衡 默认使用该类 已不推荐使用 deprecated Deprecated public cla
  • 伙计,Go项目怎么使用枚举?

    前言 哈喽 大家好 我是asong 枚举是一种很重要的数据类型 在java C语言等主流编程语言中都支持了枚举类型 但是在Go语言中却没有枚举类型 那有什么替代方案吗 本文我们来聊一聊这个事情 为什么要有枚举 我们以java语言为例子 在J
  • R语言实现可理解的随机森林模型(Random Forest)——iml包

    Random Forest 解释模型 1 介绍 2 理解随机森林运行机理 2 1导入需要的包 2 2 构建随机森林模型 2 3 RF特征重要性 2 4 特征对预测结果的影响 2 5 交互作用 2 6 替代模型 Decision tree s
  • 微信小程序View视图容器组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 微信小程序框架为开发者提供了一系列完备的UI组件 方便开发者快速构建小程序UI界面 借助这些UI组件开发者可以像搭积木一样快速地拼装出一栋房子的样子 这非常类似于当下建筑行业比较流行的
  • 华为ERP思考:国产自研迈出第一步

    华为的进入会刺激用友 金蝶 浪潮等国产厂商加快技术革新 以及伴随着华为自身技术自研全栈的布局和不断测试 国产ERP的兼容性和标准性都将上一个新的台阶 作者 斗斗 编辑 皮爷 出品 产业家 15小时完成全球88家子公司Meta ERP系统的切
  • java正则表达式 工具类_java正则表达式工具类详解

    主要功能有 boolean find 是否能匹配到至少一个 boolean match 匹配整个字符串 这个方法其实可以用 做到 int size 匹配的字符串个数 String getAll 获取所有匹配到的字符串 String get
  • 浏览器滚动到底部页面加载问题

    问题描述 页面在m端展示的时候 滚动到底部应该自动加载下一页 但是却没有 解决办法 在有些浏览器滚动下滚动时 滚动到底部仍然不会触发一般的底部加载事件的条件 可以在距离底部有一定距离时进行滚动加载事件的触发 if windowHeight
  • 教你们怎么找到已失效的百度网盘资源

    这是飓风在暴走吧友的分享链接 已经失效了 在这条链接的最后我们可以看到一行数字 304927434 接下来就是最重要的一步了 pan baidu com share home uk 上面那个链接的等于号后加上我们刚才上面那个链接的数字 打开
  • PyCharm 连接 SQLSever

    说实在的能遇到的错误差不多都遇到了 学生小白自己搞有点困难 不得不说新的错误一个接一个真的很崩溃qvq 在查阅参考各位大佬的文章及一些知识的相关资料 最终完成连接 若有不足之处 望各位大佬指正 目录 1 数据库无法连接服务器 2 检测自己的
  • 2023年华数杯数学建模C题母亲身心健康对婴儿成长的影响解题全过程文档及程序

    2023年华数杯全国大学生数学建模 C题 母亲身心健康对婴儿成长的影响 原题再现 母亲是婴儿生命中最重要的人之一 她不仅为婴儿提供营养物质和身体保护 还为婴儿提供情感支持和安全感 母亲心理健康状态的不良状况 如抑郁 焦虑 压力等 可能会对婴
  • hadoop完全分布式集群的配置

    简介 我这里配置的完全分布式集群 使用的hadoop用户 所以在之前必须创建一个hadoop用户 上传hadoop的jar包 然后再继续使用我接下来完全分布式的配置方法 如果在配置的过程当中出现了什么问题 欢迎博友提出来 我们一起讨论解决问
  • 线性代数学习笔记——第十八讲——抽象矩阵的可逆性

    1 矩阵可逆性的相关定理 引理和推论 2 求逆矩阵示例1 3 求逆矩阵示例2 4 分块矩阵的逆矩阵的求解示例 5 分块对角矩阵可逆的充分必要条件 6 逆矩阵的应用示例
  • Unchecked cast: java.lang.Object to java.util.List问题的解决

    文章目录 1 问题的代码 2 出现的问题 3 问题的解决 方式一 使用 SuppressWarnings unchecked 忽略问题 方式二 正确的方式 方式三 将方式二封装为工具类使用 方式四 使用Fastjson转换格式 方式五 使用
  • 如何解决vue/react打包上线之后路由页面刷新就丢失的问题

    location try files uri index html index index html index htm index php 通过服务器的nginx配置进行url重写到程序入口index html 代码如上
  • 【系统设计与实现】智慧教室在线监考系统,实时视频推理(vue前端+java管理后台+cpp深度学习算法后台)

    目录 智慧教室在线监考系统 github仓库点击这里 架构 功能 考生人脸信息上传 考生点名 作弊检测 服务器管理 安装和启动说明 数据服务 需要docker mysql redis minio 流媒体服务器 前端 管理系统 smart c