【毕业设计】基于SpringBoot的校内信息共享平台
这是一个类似于论坛的信息发布平台,后端基于SpringBoot开发,前端使用LayUI框架 + freemarker动态模板生成,数据库使用MySQL MVC三层架构 来源:https://github.com/Wwzb/cisp
5542 位酷友已加入
本圈子收集理工类毕业设计与毕业论文,本科、硕士、博士各阶段的都可以,上传时请尽量注明毕设的概述信息~加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~
这是一个类似于论坛的信息发布平台,后端基于SpringBoot开发,前端使用LayUI框架 + freemarker动态模板生成,数据库使用MySQL MVC三层架构 来源:https://github.com/Wwzb/cisp
需要环境 jdk1.8、tomcat7.0、MySQL5.7、Eclipse等 操作 localhost:8080/BSManager 这是的登陆到系统的主页。(包括学生和教师的登陆) localhost:8080/BSManager/admin/index.jsp 这是登陆到管理员的登陆界面 项目介绍 该项目可以实现大学毕业设计中流程的大多是操作。主要有以下几点: 1、管理员添加教师信息和学生信息 2、教师网上报课题,管理员进行审核,审核通过的课题可以作为最终的选题开供学生选择 3、学生选择课题,并会实时显示选题信息 4、待选题结束之后,学生可以下载相关课题的任务书和开题报告模板 5、教师可以提醒学生提交开题报告 6、教师进行对自己管理的学生的开题报告进行审核,通过后可以进行之后的操作 7、学生上传毕业论文,审核通过之后该学生具有答辩资格,可进行答辩 8、教师最终把学生的开题报告进行提交,供管理员查看,保存 源码介绍 该系统使用的是SSM(Spring+SptingMVC+MyBatis)框架,因此第一步就是搭建框架。 使用的是maven,所以生成的结构如上面所示。 简单介绍一下: 包Java Resources 下包含4个包 src/main/java src/main/resources src/test/java Libraries 第一个是写Java文件的包,包括开发时所用到的dao包、entity包、service包、controller包等等 第二个是配置存放的包,包括mapper(用于sql的实现) spring(spring的配置文件) jdbc.properties(数据库的常规信息) logback.xml (日志) mybatis-config.xml (MyBatis的配置) 第三个是用于测试的包,你可以在写了dao和mapping之后测试是否可以获得想要的结果 第四个是开发中所用到的jar包,由于使用了Maven 所以会有一个Maven Dependencies包,用于存放开发中的jar包 来源:https://github.com/Zhangchao999/Graduation-Design-Management-System
1.登陆界面 2.注册界面 3.首页 4.同户信息页 5.试卷列表 6.成绩查询页 7.试卷界面 8.考试结束页 来源https://github.com/zhangbinchao/TestOlinebc
毕业设计管理系统可以分为五个模块:登录模块,选题模块,信息管理模块,流程管理模块,文件管理模块。 该系统在技术上使用Spring+SpringMVC+MyBatis整合框架作为后台开发框架,AmazeUI作为前端开发框架。 并使用Ehcache作为项目的缓存,druid作为项目的数据库连接池,使用FreeMarker实现word的导出,使用Shiro完成项目的登录认证,数据库使用的则是MySQL。 该系统可以分为三类角色:学生,教师,教务管理员。 该系统前端界面使用纯HTML实现,与后台的交互则都是通过Ajax完成。 登录模块 登录模块主要完成教务管理员,教师,学生用户的登录功能,每个角色登录之后会看到不同的操作界面。 选题模块 选题模块主要完成师生双选这一业务流程。 信息管理模块 信息管理模块主要完成对各种信息的crud操作。 流程管理模块 流程管理主要完成对开题报告,中期检查,免答辩申请,验收/答辩,论文审核,盲审的流程的管理。 文件管理模块 文件管理模块主要对文件的上传与下载。 部分界面 登录(学生,教师统一使用该登录界面进行登录) 主页(主页可以看到一些内容概要与相关提示) 教师列表(通过选择某一教师进而选择其课题) 申报课题(教师只有填写课题名之后才可以申报课题) 来源:https://github.com/Li-Zhan/graduation
技术栈 SpringBoot2 JPA JWT LayUI 考虑Vue 和 iview PostgreSQL Redis 需求 目录 脚本 reconfig.sh 修改配置文件application.yml reboot.sh 更新镜像重启Docker容器 截图 压测情况: 来源:https://github.com/Kuangcp/Graduate
受GitHub的一个BBS项目Genesis的启发,重新写了一个BBS论坛,实现了基本功能 技术栈 本项目基于Spring、Spring MVC、MyBatis框架实现 数据库采用MySql 5.7.22 前端采用HTML、CSS、jQuery、Bootstrap 功能实现 发布主题、回复主题 按照活跃度、最后更新时间、是否为精品对帖子进行排序展示 管理员账户能够实现设置主题为精品、删除主题、删除回复功能 后天统计访客信息、统计用户登陆信息 用户登陆与注册、用户信息界面展示、用户修改头像 回复消息后发帖者能够收到消息提醒、未读消息和已读消息展示 在页面展示全站最热议的主题 用户发帖、登陆、回帖行为的积分系统 翻页功能 待更新的功能 使用Redis实现缓存 发帖人编辑主题 使用Nginx实现动静分离、负载均衡 可以发送图片 用户回帖记录展示 主题里用户之间的回复 界面展示 首页 发帖界面 用户信息界面 用户消息列表 主题详情 管理员的主题详情界面 网站信息展示 来源https://github.com/lhf2018/Lhfly-BBS
基本功能 学生部分 登录、修改密码 查询个人信息 查询排课情况、根据老师姓名/学院筛选、进行选课、查询个人选课情况、查询成绩 教师部分 登录、修改密码 查询个人信息 查询个人开课情况、添加、修改、删除课程 查看课程选课情况、删除学生、评分 开发环境 后台基于maven使用SSM框架整合(Spring、SpringMVC、Mybatis) 前端jsp页面样式基于layui框架,bootstrap和jquery ide:Intellij IDEA 2017.2.4 java版本:jdk1.8.0_152 数据库版本:mysql 5.7.18-1 数据库设计 有学生、教师、学院、课程、课程的学院限制、课程选择六张表 简单展示 学生 登录 数据表中有10个学生账号(2018000001--2018000010)和4个教师账号(2018100001--2018100004),密码和账号一样 首页 个人信息 修改密码 开课列表 课程详情 选课确认 已选列表 退课 教师 开课列表 添加新课程 修改课程 删除课程 课程管理 评分 删除学生 来源https://github.com/Zeng1998/Course-Selecting-System
可以作为毕业设计的6自由度机械手,使用inventor设计,内含stp文件
最近几年深度学习的发展让很多计算机视觉任务落地成为可能,这些任务渗透到了各行各业,比如工业安全,包含的任务如安全帽佩戴检测、高空坠物检测、异常事故检测(行人跌倒不起等),火灾检测等等,我们使用YOLO V3训练了一个安全帽佩戴检测的模型。 1. 📣 数据介绍 确定了业务场景之后,需要收集大量的数据(之前参加过一个安全帽识别检测的比赛,但是数据在比赛平台无法下载为己用),一般来说包含两大来源,一部分是网络数据,可以通过百度、Google图片爬虫拿到,另一部分是用户场景的视频录像,后一部分相对来说数据量更大,但出于商业因素几乎不会开放。 本项目使用开源的安全帽检测数据集(SafetyHelmetWearing-Dataset, SHWD)主要通过爬虫拿到,总共有7581张图像,包含9044个佩戴安全帽的bounding box(正类),以及111514个未佩戴安全帽的bounding box(负类),所有的图像用labelimg标注出目标区域及类别。其中每个bounding box的标签:“hat”表示佩戴安全帽,“person”表示普通未佩戴的行人头部区域的bounding box。另外本数据集中person标签的数据大多数来源于SCUT-HEAD数据集,用于判断是未佩戴安全帽的人。大致说一下数据集构造的过程: 1.数据爬取 用的爬百度图片和Google图片的方法,百度图片用自己写的访问web页面的方式,通过不同的关键词多线程爬取数据,如果是Google图的话推荐用google-images-download,使用方法不多描述,也是爬取多个不同的关键词。关键词是个很有意思的选项,直接用“安全帽”这样的并不是一个好的选择,更多的时候可以用“建筑工人”等之类的词语;英文注意安全帽既可以是“safety Helmet”也可以是“safety hat”,“hard hat”等等。 2.数据清洗 显然用以上爬取得到的图片包含大量重复的,或者是并不包含ROI的图片,需要过滤掉大量的这些图片,这里介绍自己用到的几个方法: (1)用已有的行人检测方法过滤掉大部分非ROI图像; (2)可以使用深度学习模型zoo,比如ImageNet分类预训练好的模型提取特征,判断图像相似度,去除极为相似的图像; (3)剩余的部分存在重名或者文件大小一致的图像,通常情况下这些都是不同链接下的相同图片,在数量少的情况下可以手动清洗。 3.bounding box标注 用的开源标注工具labelImg,这个没什么多说的,是个体力活,不过一个更为省力的方法是数据回灌,也就是先用标注好的一部分数据训练出一个粗糙的检测模型,精度虽然不高,不过可以拿来定位出大致的目标区域位置,然后进行手动调整bounding box位置,这样省时省力,反复这样可以减少工期。 另外标注的过程中会出不少问题比如由于手抖出现图中小圈的情形,这种情况会导致标注的xml出现bounding box的四个坐标宽或高相等,显然不符合常理,所以需要手动写脚本检查和处理有这种或者其他问题的xml的annotation,比如还有的检测算法不需要什么都没标注的背景图像,可以检测有没有这种“空”类别的数据;甚至是笔误敲错了类别的标签;等等这些都需要手动写自动化或半自动化的脚本来做纠错处理,这样的工具在标注时应该经常用到。也可以看出,一旦标注项目形成规模,规范的自动化流程会节省很多资源。 2.✨ 模型介绍 我们使用纯Tensorflow实现的YOLOv3. 包含了训练和测试自己数据集的全pipeline. 其主要的特点包括: 高效的 tf.data pipeline 将COCO数据集预训练的模型迁移学习 支持GPU版的NMS. 训练和测试推断过程全部有代码样例. 使用Kmeans自己训练先验的anchor. Python 版本: 2 or 3 Packages: tensorflow >= 1.8.0 (支持tf.data的版本都可以) opencv-python tqdm 将预训练的darknet的权重下载,官方下载地址:https://pjreddie.com/media/files/yolov3.weights,并将该weight文件拷贝到 ./data/darknet_weights/ 下,因为这是darknet版本的预训练权重,需要转化为Tensorflow可用的版本,运行如下代码可以实现: 这样转化后的Tensorflow checkpoint文件被存放在:./data/darknet_weights/ 目录。你也可以下载已经转化好的模型:GitHub Release 3.🔰 训练数据构建 训练集的整体结构同VOC相同,可以参考VOC构建自己的数据集。 (1) annotation文件 运行 分割训练集,验证集,测试集并在 ./data/my_data/labal 下生成 train.txt/val.txt/test.txt ,对于一张图像对应一行数据,包括 image_index , image_absolute_path , img_width , img_height , box_1 , box_2 ,..., box_n ,每个字段中间是用空格分隔的,其中: image_index 文本的行号 image_absolute_path 一定是绝对路径 img_width , img_height , box_1 , box_2 ,..., box_n 中涉及数值的取值一定取int型 box_x的形式为:label_index,x_min,y_min,x_max,y_max (注意坐标原点在图像的左上角) label_index是label对应的index(取值为[0~class_num-1]),这里要注意YOLO系列的模型训练与SSD不同,label不包含background 例子: (2) class_names文件: coco.names 文件在 ./data/ 路径下,每一行代表一个label name,例如: (3) 先验anchor文件: 使用Kmeans生成先验anchors: 可以得到9个anchors和平均的IOU,把anchors保存在文本文件:./data/yolo_anchors.txt, 注意: Kmeans计算出的YOLO Anchors是在调整大小的图像比例的,默认的调整大小方法是保持图像的纵横比。 4.📝 训练 修改arg.py中的一些参数,如下: 修改arg.py 运行: 我们训练的环境为: ubuntu 16.04 Tesla V100 32G 5.🔖 推断 我们使用 test_single_image.py 和 video_test.py 推断单张图片和视频,测试Demo在 6.⛏Demo 提供。你可以下载我们预训练的安全帽识别模型进行测试,下载地址:GitHub Release 6.⛏Demo 7.⛏训练的一些Trick 这些Trick来源于:https://github.com/wizyoung/YOLOv3_TensorFlow (1) 使用two-stage训练或one-stage训练: Two-stage training: 第一阶段:在COCO数据集训练的ckeckpoints上加载darknet53_body部分的weights,训练YOLO V3的head部分,使用较大的学习率比如0.001,直到损失降下来; 第二阶段:加载第一阶段训练的模型,训练整个模型的参数,使用较小的学习率比如0.0001。 One-stage training: 直接加载除Conv_6,Conv_14和Conv_22(这三层是输出层需要根据自己训练数据调整)的预训练模型,这种情况需要注意Loss的nan问题,对于该项目为了简单,我们采用One-stage training。 (2) args.py中有很多有用的训练参数调整策略: 学习率的decay(Cosine decay of lr (SGDR)) 多尺度训练(Multi-scale training) 标签平滑(Label smoothing) 数据增强(Mix up data augmentation) Focal loss(来源于RetinaNet主要修正目标检测中的unblance问题) 这么多策略,不一定都能提升你的模型性能,根据自己的数据集自行调整选择. (3) 注意: 来自于gluon-cv的这篇paper 已经证明对于YOLO V3数据增强是很有必要的, 但是对于我们的实验来看一些数据增强的策略看起来是合理的,但是会导致我们的模型不work,比如,使用随机的色彩抖动数据增强策略,我们的模型的mAP掉的很厉害,所有需要好好研究数据增强的使用策略。 (4) Loss nan? 出现Loss nan的情况尽量设置大一点的warm_up_epoch的值,或者小一点的学习率,多试几次。如果你使用的是one-stage的训练过程,使用adam优化器可能会出现nan的问题,请选择momentum optimizer 。 来源https://github.com/DataXujing/YOLO-V3-Tensorflow
项目概述 (💬 pause update) 👍一个基于SSM的学生管理系统 : 代码注释详细,逻辑结构清晰,非常具有参考,学习价值哟 ! 🔑数据库中默认的管理员身份信息 : 账户名 : 黄宇辉 , 密码 demo0109 开发环境 |工具 |版本或描述| |:--:|| OS |Windows 10 JDK| 1.8 IDE| IntelliJ IDEA 2019.1 Maven| 3.6.0 MySQL| 8.0.11 本项目的数据库版本为 8.0.11,请广大版本为 5.0.0+ 的同学注意咯:可通过逐个复制表结构来创建该数据库哟 ~ 用户权限介绍 管理员 : 具有所有管理模块的操控权限 教师 : 仅具有学生信息管理模块的所有权限,且在教师信息管理模块中只具有查询及添加信息的权限 学生 : 仅具有学生信息管理模块的查询及添加信息的权限 项目截图 (管理员身份登录) 用户登录页面 系统主页面 管理员信息管理页面 学生信息管理页面 教师信息管理页面 年级信息管理页面 班级信息管理页面 个人信息管理页面 项目截图 (教师身份登录) 教师仅具有学生信息管理模块的所有权限,且在教师信息管理模块中只具有查询及添加信息的权限 项目截图 (学生身份登录) 学生仅具有学生信息管理模块的查询及添加信息的权限 项目结构 项目文件说明-数据库文件 项目文件说明-数据库配置信息 项目文件说明-H-ui 前端框架 项目文件说明-EasyUI 前端框架 项目文件说明-Spring 核心配置文件 项目文件说明-Spring MVC 核心配置文件 项目文件说明-MyBatis 核心配置文件 项目文件说明-Mapper 接口映射文件 项目文件说明-用户默认头像 数据库ER图 😅 数据库设计待优化 : 数据表之间的并没有设置约束关系,等你优化哟 Jar包依赖关系图 来源https://github.com/GoogTech/sms-ssm
项目简介 利用大规模视觉导航机器人进行快递分拣,涉及调度系统的设计、视觉导航机器人设计、大规模机器人模拟软件设计、路径规划算法研究,涉及技术栈java、C++、c、spring、swing、netty、openCV、ardunio、调度、路径规划、嵌入式、PID控制。 论文摘要 知网论文地址 我国物流行业的分拣环节基本还处于人工分拣阶段,存在分拣效率低下、人工成本高、差错率高等问题。自动化物流分拣正朝着智能化方向发展,AGV(自动引导车)具有智能化程度高和灵活性高的特点,应用AGV来分拣快递包裹可以极大地提高分拣效率、降低人工成本和减小差错率。 本文研究的对象是一种多AGV物流分拣系统,在对多AGV物流分拣系统进行设计的基础上,对视觉导航及定位、多AGV路径规划两个关键技术进行了研究。论文主要研究工作包括三个部分: AGV视觉导航及定位技术的研究与实现。 本文分析了现有视觉导航及定位技术的不足之处,如摄像头昂贵、定位不精确,并针对这些不足提出了一种基于编码标志的视觉导航及定位方法,采用这种方法的AGV即使利用普通摄像头也能够精准导航和精确定位。 多AGV路径规划方法的研究。多AGV物流分拣系统具有路径网络复杂、AGV数量庞大等特点,基于静态确定网络的传统多AGV路径规划方法不适用于多AGV物流分拣系统。本文针对多AGV物流分拣系统的特点,建立基于动态随机网络的路径规划模型,并对A*算法进行改进,如引入时间变量、考虑转弯耗费、优化OPEN表。最后通过实验对两种路径规划方法进行了分析和对比。 多AGV物流分拣系统的设计与实现。本文重点阐述了多AGV物流分拣系统的总体设计,根据设计要求制作了快递分拣机器人,并基于Java开发了上位机系统软件,采用C++结合OpenCv编程实现了基于编码标志的视觉导航及定位方法和基于动态随机网络的路径规划方法。 模块介绍 本论文的研究对应工程主要分为三块,express(调度系统)、smartcar-vision(分拣机器人)、simulator(大规模机器人模拟系统)。 express 大规模机器人调度模拟视频,点击观看 调度系统是整个多AGV物流分拣系统的大脑,负责信息统筹、调度和控制快递分拣机器人。该工程基于java、swing、spring boot、neety等技术,实现了论文中所述三种路径规划算法:改进A*算法、dijkstra算法、贪婪算法,以及多机器人之间防冲突算法,结合simulator工程可以模拟大规模机器人的调度。 smartcar-vision demo机器人视频,点击观看 该工程是分拣机器人的大脑,实现了视觉导航、机器控制、调度,该工程基于C++、openCV、PID控制等技术,运行在Jeson Tk1嵌入式板(其实就是一个ubuntu系统),底层电机控制使用了Arduino。该工程依赖于硬件,有了这份代码也只有助于研究视觉导航的实现,很难实际运行起来。 simulator 大规模机器人调度模拟视频,点击观看 一台分拣机器人造价不便宜,所以没有使用大规模真实机器人进行分拣实验。为了验证论文提出的算法的有效性,开发了本模拟软件,本工程模拟了机器人运行的物理特性,以及送料系统,使随机生成的快递包裹模拟放置在机器人托盘上,并完全适配于调度系统,调度系统没有特殊定制就可以像调度真实机器人一样调度模拟机器人。 如何运行起来 smartcar-vision工程依赖于物理硬件,所以很难运行起来,里面代码可以用来学习机器视觉。这里我们主要讲“大规模机器人调度模拟”如何运行起来。 express和simulator都是基于spring开发的swing工程,之间采用netty通信,找到main函数就能运行起来了,先运行express,再运行simulaotr。两个工程运行都需要提供一分地图元数据Excel文件,仓库也为大家准备了一份Graph.xls,大家运行的时候需要在ComGraph文件中修改文件路径。 via:https://github.com/xxxtai/express
技术栈前端使用echarts.js, 后端基于Python Django; 特征处理阶段,技能相关特征基于知识图谱处理,图谱构建使用neo4j; 系统的流程是先做二分类筛选,再给分类为正的样本进行排序; 二分类模型基于DNN,基于Keras训练, 线上分类时直接调用已经训练好保存为h5格式的model文件; 排序函数将随机森林的特征重要性作为基础排序指标; 系统演示如下: 首页 原始简历查看页面 原始简历统计分析图表展示页面 项目简介 招聘信息分析页面 简历推荐结果页面 来源https://github.com/Weikoi/Resume_Recommender