码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【系统设计与实现】智慧教室在线监考系统,实时视频推理(vue前端+java管理后台+cpp深度学习算法后台)


    目录

    • 智慧教室在线监考系统(github仓库点击这里)
      • 架构
      • 功能
        • 考生人脸信息上传
        • 考生点名
        • 作弊检测
      • 服务器管理
    • 安装和启动说明
      • 数据服务(需要docker)
        • mysql
        • redis
        • minio
        • 流媒体服务器
      • 前端
      • 管理系统(smart_classroom_admin)
      • 算法服务(smart_classroom_algo)
        • 依赖和环境变量
        • 添加workspace和权重文件
        • 编译&安装
    • 参考项目
      • 系统开发
      • 算法

    智慧教室在线监考系统(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
    
    • 1
    • 2
    • 3

    redis

    docker pull redis
    docker run --name smc_redis -d redis
    
    • 1
    • 2

    minio

    记一次umi开发后台管理系统的基础使用
    pdf 0星 超过10%的资源 613KB
    下载
    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"
    
    • 1
    • 2

    流媒体服务器

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

    前端

    安装

    cd ant-design-vue-jeecg
    cnpm install
    
    • 1
    • 2

    启动

    npm serve run
    
    • 1

    管理系统(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
        
        • 1
        • 2
        • 3
        • 4
        • 5
    • DROGON_HOME:drogon框架安装路径(自己编译安装,要求c++17)

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

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

    物流系统项目(jsp+servlet+jstl)
    application/x-rar 4星 超过85%的资源 6.70MB
    下载

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

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

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

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

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

      #window 下一般为(Clion里面可以直接选择最上边的选项卡Build>Install点击进行编译安装)
      cmake --build ${SRC_ROOT}/build --target install
      #linux 下一般为
      make && make install
      
      • 1
      • 2
      • 3
      • 4
    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
    
    • 1
    • 2
    • 3
    • 4

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

    参考项目

    系统开发

    • JEECG BOOT
    • Drogon C++ Web开发框架
    • tensorRT_Pro

    算法

    • InsightFace: 2D and 3D Face Analysis Project
    • AlphaPose
    • Smart Classroom
  • 相关阅读:
    力扣每日一题:最接近目标价格的甜点成【dfs 暴力搜索】
    Godot.NET C#IOC重构(2):TileMap 详解
    解决微信小程序回调地狱问题
    使用微信小程序播放视频直播
    数据结构题型18-哈夫曼树和哈夫曼编码
    【文章摘要-20231019】Any-to-Any Generation via Composable Diffusion
    2.3 - 网络协议 - ICMP协议工作原理,报文格式,抓包实战
    CSRF(Steam的链接不用随便点)
    【Leetcode HOT100】打家劫舍 III c++
    算法提升②
  • 原文地址:https://blog.csdn.net/xzq1207105685/article/details/126018801
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号