计算机毕业设计

计算机毕业设计 · 圈子

8612 位酷友已加入

本圈子收集计算机类的毕业设计与毕业论文,本科、硕士、博士各阶段的都可以,上传时请尽量注明毕设的概述信息~加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

资源

【毕业设计】基于SSM/Springboot的商城项目

OnlineSchoolShop-基于Spring boot/SSM商城的搭建教程 技术栈 后端: SpringBoot Swagger Docker(docker需自己搭建docker环境) 前端: JSP 数据库:MySQL 技术语言 jdk 1.8 开发平台 Idea 2018 +win10 运行环境 Linux/Windows 毕业设计基于SSM/Springboot的商城项目,一个简单的商城,界面友好,但是不是很漂亮。实现了商城所有基本功能。 作为改写的基础模板,可以增加或者改写的功能: 增加word和excel模板 增加redis,存储商品信息主要存储。 增加mq,订单并发,再购物车层次上做到入库并发控制 增加邮件发送,订单支付成功给客户和管理员分别发送邮件 增加支付功能,可以用支付宝当面付,入门门槛低 增加合作登陆,用QQ/微信/GITHUB等登陆,存储信息入库 增加数据分析,用Echart分析数据 部署采用docker和nginx做到动静分离。需要改写jsp为模板themeleaf。 有两个版本 一个springboot,一个ssm。没有redis和mq。 本项目主要也是改写的基础的商城项目,没有任何的技巧。 一.系统架构 前端:jsp 后台:springboot 二.项目运行图 用户端: 管理员端: 来源https://github.com/codingZhangxin/OnlineSchoolShop

资源

【毕业设计】基于SSM的第三方物流信息管理系统

基于SSM的第三方物流信息管理系统 研究目的 本课题基于当前流行的SSM框架,搭建一个第三方物流信息管理系统,能够帮助第三方物流公司管理物流过程中产生的信息数据,提高数据管理效率。 研究方法 对于后台系统,利用SSM框架搭建。在前端方面,利用Require.js的AMD模块化思想管理前端JS、利用最新的Angular技术来实现左边菜单目录、利用bootstrap搭建页面。 本系统分为物流订单管理模块,订单计费管理模块,运输管理模块,车辆管理模块,系统管理模块五个模块。针对这五个模块进行深入了解,详细分析这五个模块的主要功能,建立数据模型和需求分析。采用软件工程的思想,根据需求分析结果,对系统的软件体系结构和主要功能模块划分进行详细设计,形成数据库表,将信息数据存入MySQL数据库,并设计详细页面。 研究成果 本第三方物流信息管理系统在设计与实现过程中,参照了目前第三方物流企业的信息管理系统和查阅了大量资料,在功能上按照选题要求实现了第三方物流信息管理的基本功能,看起来像是是简化版的第三方物流信息管理系统。本系统的设计主旨是快捷、准确、高效地管理第三方物流企业的用户信息、车辆信息、物流订单信息等信息数据。 目录 1 引言 1.1 选题背景 1.2 国内第三方物流的发展历程 1.3 主要内容 2 相关技术介绍 2.1 AMD规范和AngularJS技术介绍 2.1.1 AMD规范简介 2.1.2 AngularJS技术简介 2.2 Bootstrap框架介绍 2.2.1 Bootstrap框架简介 2.2.2 Bootstrap的几点优势 2.3 SSM框架介绍 2.3.1 Spring简介 2.3.2 SpringMVC简介 2.3.3 Mybatis简介 2.4 开发环境和运行环境 2.4.1 开发环境IntelliJ IDEA 2.4.2 运行环境Apache+Tomcat 2.4.3 MySQL数据库 2.4.4 浏览器 3 系统需求分析与设计 3.1第三方物流信息管理系统需求分析 3.1.1 用例图 3.1.2 时序图 3.2 系统设计 3.2.1物理数据模型设计 3.2.2 概念结构设计 3.2.3 数据库表设计 3.3 模块设计 3.3.1 系统模块图 3.3.2物流订单管理模块 3.3.3订单计费管理模块 3.3.4运输管理模块 3.3.5车辆管理模块 3.3.6 系统管理模块 4 系统实现 4.1主要配置 4.1.1 Mybatis配置 4.1.2 Spring框架配置 4.1.3 SpringMVC配置 4.2 系统展示 4.2.1 用户登录注册界面 4.2.2 物流订单管理界面 4.2.3 订单计费管理界面 4.2.4 运输管理模块界面 4.2.5 车辆管理模块界面 4.2.6 系统管理模块界面 5 结论与展望 5.1 总结 5.2 展望 参考文献 致谢 来源https://github.com/yaowuya/lprapm

资源

【Demo】基于深度学习的表情情绪模型系统

基本说明 本系统是通过tensorflow实现的表情识别模型,支持识别如下几种表情(数据集为fer2013) angry disgust fear happy sad surprise neutral 目录结构 dataset_helper 包含一些数据集处理的脚本,包括将fer2013转换到tfrecords images readme使用图片 inference 网络结构 models 训练好的模型 res opencv的人脸检测器 test 模型测试 train 模型训练 app.py 系统入口 labels.py 标签定义 系统主要依赖 python3.5 tensorflow 或 tensorflow-gpu opencv-python 一些系统启动命令 执行app.py(需下载完成已经训练好的模型) 训练直接运行train\main_train.py(需下载完成训练集) 测试直接运行test\main_test.py(需下载完成测试集) 关于模型及数据集的获取 网盘地址 : https://pan.baidu.com/s/1FVna89oPvi4PiY-voMwEEA 提取码: knf4 下载完成后直接在本项目根目录解压 测试结果 见result.xlsx 来源https://github.com/XingToMax/FaceEmotionalRecognition

资源

基于机器学习方法的电影推荐系统

整体介绍 recsys_ui: 前端技术(html5+JavaScript+jquery+ajax) recsys_web: 后端技术(Java+SpringBoot+mysql) recsys_spider: 网络爬虫(python+BeautifulSoup) recsys_sql: 使用SQL数据处理 recsys_model: pandas, libFM, sklearn. pandas数据分析和数据清洗,使用libFM,sklearn对模型初步搭建 recsys_core: 使用pandas, libFM, sklearn完整的数据处理和模型构建、训练、预测、更新的程序 recsys_etl:ETL 处理爬虫增量数据时使用kettle ETL便捷处理数据 设计思路 用简单地方式表述一下设计思路, 后端服务recsys_web依赖于系统数据库的推荐表‘recmovie’展示给用户推荐内容 用户对电影打分后(暂时没有对点击动作进行响应),后台应用会向mqlog表插入一条数据(消息)。 新用户注册,系统会插入mqlog中一条新用户注册消息 新电影添加,系统会插入mqlog中一条新电影添加消息 推荐模块recsys_core会拉取用户的打分消息,并且并行的做以下操作: 注: 由于线上资源匮乏,也不想使系统增加复杂度,所以没有直接使用MQ组件,而是以数据库表作为代替。 recsys_model属于用notebook进行数据分析和数据处理以及建模的草稿,地址为:https://github.com/GavinHacker/recsys_model 其余的所有项目的地址索引为:https://github.com/GavinHacker/technologyx 模型相关的模块介绍 增量的处理用户comment,即增量处理评分模块 这个模块负责监听来自mqlog的消息,如果消息类型是用户的新的comment,则对消息进行拉取,并相应的把新的comment合并到总的训练样本集合,并保存到一个临时目录 然后更新数据库的config表,把最新的样本集合(csv格式)的路径更新上去 运行截图 消息队列的截图 把csv处理为libsvm数据 这个模块负责把最新的csv文件,异步的处理成libSVM格式的数据,以供libFM和LR模型使用,根据系统的性能确定任务的间隔时间 运行截图 基于内容相似度推荐 当监听到用户有新的comment时,该模块将进行基于内容相似度的推荐,并按照电影评分推荐 运行截图 libFM预测 http://www.libfm.org/ 对已有的基于内容推荐召回的电影进行模型预测打分,呈现时按照打分排序 如下图为打分更新 逻辑回归预测 对样本集中的打分做0,1处理,根据正负样本平衡,> 3分为喜欢 即1, <=3 为0 即不喜欢,这样使用逻辑回归做是否喜欢的点击概率预估,根据概率排序 来源https://github.com/GavinHacker/recsys_core

资源

【开源项目】安卓手机商城项目_Android端与后端均开源

项目简介 轻松购.是一款购物型Android端app.项目主要分为主页、热卖、分类、购物车、我的五大板块. 该app基本上覆盖市面上商业级商城类app的功能,包括购物车、微信及支付宝支付、热门及历史搜索、登录注册、收货地址管理等. 该项目主要功能已经完成,细节部分正在持续添加与优化中. 还有两个重点:(1)项目代码使用的都是常用但入门门槛较低的方式,比较适合初级Android开发者;(2)项目在持续优化中 使用的开源技术: 1.轮播图 2.下拉刷新、加载更多 3.Gson解析 4.butterknife 5.批量处理权限 6.自定义样式的dialog 7.三级联动 8.eventBus 9.沉浸式状态栏 10.greendao 11.ShareSDK 12.okhttpUtils 13.BaseRecyclerViewAdapterHelper 14.Glide 15.百度地图定位及Mob天气查询 基本封装与自定义: 1.ToolBar的封装 2.FragmentTabHost的自定义 3.一键清除的EditText 4.购物车的加减控件 5.短信验证倒计时的定时器 6.Glide的封装 7.自定义圆形头像(可自定义是否有边框、边框宽度及颜色) 8.购物车本地缓存 9.对称加密DESUtil 10.读取Json文件的工具类GetJsonDataUtil 11.日志、sp、屏幕、toast工具类封装 主要界面截图 帮助文档(请务必要看这里): (一)基础性问题: Q1.这个项目是什么语言写的?什么项目? A1:这是一个Android项目,商城类.采用Java语言编写.目前Android项目编写的语言主要有Java、Kotlin.而这个项目采用的是Java语言 Q2.这个项目能运行吗? A2:可以.这个项目目前还一直在维护中.并且在短时间内,都不会放弃维护. Q3: 这个项目采用的编译器是什么: A3: 采用的是Android Studio(简称as).当前该项目采用的as版本在项目简介中有说明. Q4:如果我的as版本和项目简介中的版本一致,能运行这个项目吗? A4: 能.完全没问题,但需要修改部分内容.方法如下(以as版本3.1.4为例): (1)将build.gradle(project目录)下的classpath 'com.android.tools.build:gradle:3.1.4'中的 3.1.4改成你as一致的版本 (2)将gradle-wrapper.properties下的distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip 中4.4改成你as一致的版本. 另外,需要说明的事,as的3.0.0版本之后,对gradle进行了大量的优化,可能你还需要修改以下内容: ①gradle版本必须在4.1或者4.4甚至更高的版本. ②build.gradle(project目录)的classpath 'com.novoda:bintray-release:0.8.0' 版本也需要修改. ③build.gradle(module目录)的 implementation 进行替换. ④如果你是以module的形式添加第三方库的(比如okhttputil的),由于部分第三方库已经放弃维护了,尤其在as 3.0.0版本后,会有很多冲突 关于Q4,涉及gradle的使用,上述修改步骤不仅仅适用 轻松购项目,其他项目也是同样的道理.遇到问题最好的方式就在在网上直接搜索报错信息. 注意注意: 方法(1)(2)一定要最先修改,因为国内大陆的环境需要科学上网才能下载部分资源,如果你一直傻傻的等待下载,有可能1天都下载不下来. 总结:上述问题,其实都不是这个项目本身的问题.比如Q1、Q2、Q3.一个项目,肯定是需要你自己运行看一下的,不要什么都没看就张口问.这个习惯对于编程人员非常致命. (二)关于本项目的一些问题: Q1.这个项目后台开源吗? A1:付费后,可以得到开源的后台与Android端代码. Q2:这个项目的定位: A2:这个项目的定位是0-2年的Android编程人员,编码方式中规中矩. 毕竟,对于0-2年的Android编程人员而言,核心任务是功能的实现.如果你连接口回调、源码阅读都不熟悉或者不会,什么代码解耦、拓展性都是扯淡.还是希望0-2年的人务实一点. 当然,2年以上的Android编程人员不适合学习这个项目,因为对你们而言,解耦、封装、设计模式才是你们的核心任务. Q3:部分接口的使用说明: A3:这个项目由于涉及部分权限(不是Android的权限.是vip权限),注册、登录、收货地址这3个接口无法按照正常的接口调用. 无法调用这个问题之前困扰了我很久如何解决.后来我采用了greendao数据库的增删改查操作. 一方面是弥补这3个接口无法正常调用的缺陷.另外一方面也是借此机会学习一下数据库.岂不是一举两得. 虽然采用的是数据库操作,但整个流程与商业项目一致(在具体的代码中也有强调).大家千万不要纠结这个问题.因为其他地方(比如首页、热卖)的接口都是好的.并且,你学习其他开源项目,99%的项目也有这些问题--除非Android端和后台都开源. Q4:我点击了某某地方怎么没反应? A4: 2种可能,一是我的代码出现了问题;二是部分功能未完成.至于是哪种可能,请使用编程的思维: 断点调试一下就ok撒. 你确定了原因后,可以联系我.我会在工作不是特别忙的时候第一时间修复.

资源

【Demo】基于语料库与NLP方法的中文幽默计算与检测项目

项目介绍 幽默多指令人发笑的品质或者具有发笑的能力,它是一种特殊的语言表达方式,是生活中活跃气氛、化解尴尬的重要元素。近年来随着人工智能的快速发展,如何利用计算机技术识别和生成幽默逐渐称为自然语言处理领域研究热点之一,即幽默计算。幽默计算旨在赋予计算机识别、生成幽默的能力,它涉及信息科学、认知语言学、心理学等多个学科的交叉,在人类语言的理解乃至世界文化的交流方面,都具有重要的理论和应用价值。 幽默无处不在,计算机若能够理解各种幽默形式,将会极大程度地提高人机交互系统的性能。 本项目将从中文的幽默性出发,尝试完成以下两个目标: 1)建立起一个中文幽默文本语料库。 2)幽默计算模型的构建包括: 幽默等级识别模型 幽默类型识别模型 隐喻类型识别模型 隐喻情绪识别模型 中文幽默文本语料库的构建 程序主目录:BuildCorpus 语料收集:BuildCorpus/corpus_spider.py 语料整理:BuildCorpus/collect_news.py 相声小品语料:对话集,BuildCorpus/dialog 语料简介 数量:6032个剧本、也称话题集, 352834条对话 对话举例: 中文幽默计算模型 模型思想:采用四层双向lstm进行网络搭建,给出一个初步的baseline.以下是训练实际情况. 模型 训练集 测试集 训练集准确率 测试集准确率 备注 模型名称 幽默等级 6436 1610 0.8891 0.6137 5分类 BiLSTM 幽默类型 5938 1460 0.9357 0.7096 3分类 BiLSTM 幽默类型 5938 1460 0.9357 0.7356 3分类 CNN 幽默类型 5938 1460 0.9357 0.7103 3分类 CNN-ATT 隐喻类别 3515 879 0.9166 0.8089 2分类 BiLSTM 隐喻情绪 2904 726 0.8134 0.5399 7分类 BiLSTM 总结 一直在想如何更多地从社会语言学的角度去进行自然语言处理的研究和探索工作,幽默计算可以是其中一个,本项目是对该想法的一个实现. 本项目完成了幽默语料库的构建工作,并使用基本的双向lstm模型,训练了四个模型,准确率还有很大优化空间 本项目后期将逐步加入Attention等机制,对现有模型基础进行更新,尝试是否可以进一步提高准确性 本项目的受到大连理工大学信息检索实验室工作的启发. 来源https://github.com/liuhuanyong/ChineseHumorSentiment

资源

【Demo】 基于tensorflow的图像分割算法deeplab_v3+

tensorflow-deeplab_v3_plus 参考rishizek的代码进行中文注释,并按照自己风格重新编写代码,对ASPP加入里BN层,支持摄像头。 deeplab_v3_plus简介 图像分割是主要功能是将输入图片的每个像素都分好类别,也相当于分类过程。举例来说就是将大小为[h,w,c]的图像输出成[h,w,1],每个像素值代表一个类别。 deeplab_v3+可以参考论文Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation。它的结构图如下: 下面对模型进行简要分析 该模型属于encoder-decoder模型,encoder-decoder常用于自然语言处理中,在图像分割中U-net也是十分典型的encoder-decoder模型,大体结构如下: 就是将图片通过卷积尺寸变小再通过上采样将尺寸还原。 deeplab_v3+是将encoder-decoder和ASPP相结合,encoder-decoder会获取更多边界信息,ASPP可获取更多特征信息。encoder网络使用resnet101或 Xception,本代码中使用的是resnet101。 采用预训练的resnet的某一节点A来获取图像信息,再加入到ASPP中。ASPP就是不同膨胀率的空洞卷积和全局池化上采样后的输出concat在一起,作为encoder输出部分。 空洞卷积可以理解为一个大卷积中间权重值都为0,举例说明,一个3x3的卷积,如果膨胀率是1就是正常卷积,如果膨胀率是2,就是空洞卷积,相当于把3x3的卷积每个值的右方和下方加一行或列都置0。变换之后的空洞矩阵大小变为6x6。空洞矩阵论文中说可以提取更密集的特征,捕获多尺度信息,相比于卷积和池化会减少信息丢失。全局池化就是将输入[h,w,c]池化成[1,1,c]。 decoder部分选取resnet中A节点之前的B节点,再将encoder的输出上采样成B的大小然后concat,做一些卷积和上采样就得到最终输出。 由于可以看成分类问题,该模型的损失函数也是交叉熵函数。模型具体实现可以参考代码 模型训练 环境要求 ubuntu=16.04 tensorflow=1.4.1 opencv=3.4.1 windows下可以进行测试 下载数据集 将VOC解压到data目录下,下载DrSleep提供的SegmentationClassAug文件解压,如果访问不了可以尝试这个网址里面有_MACOSX和SegmentationClassAug两个文件夹,将里面的SegmentationClassAug放置到./data//VOCdevkit/VOC2012/下,里面的图片是shape为[h,w,1]每一个像素值都对应类别的label。 将restnet预训练数据解压放置在该模型的根目录下。 如果需要模型预训练数据可以将我训练的权重数据解压,如果下载过慢可以尝试这个网址,将里面的ckpt等文件放置到./model下。 代码介绍 data放置VOC数据和数据处理生成的record文件和分化数据的txt文件 model放置训练生成的模型和graph output放置测试图片生成的分割图像 picture放置测试用例,我的来源于百度图片 utils包含配置文件config.py,数据处理文件dataset_util.py,preprocessing.py和模型文件deeplab_model.py test.py是测试文件支持摄像头 tfrecord.py是将处理完的数据生成record文件 train.py是训练文件 运行 手动配置config.py的信息或选择默认 若要训练: 运行python tfrecord.py生成record文件 运行python train.py训练。 对于计算机gpu选择需修改这里代码 若要测试: 运行python test.py 一些疑问 我的电脑配置是1080Ti但总是运行运行就溢出,我尝试用tf.contrib.distribute.mirroredstrategy多gpu并行,但tensorflow版本要1.8,当我更新完,发现input_fn要是data格式,我失败了。 如果有并行gpu的建议或者代码的指正请给我留言 结果展示 来源https://github.com/LeslieZhoa/tensorflow-deeplab_v3_plus

资源

【Demo】基于NLP方法的keyinfo提取的文本内容图示器

基于NLP方法的keyinfo提取的文本内容图示器,Text Content Grapher based on keyinfo extraction by NLP method。 输入一篇文档,将文档进行关键信息提取,进行结构化,并最终组织成图谱组织形式,形成对文章语义信息的图谱化展示。 项目介绍 如何用图谱和结构化的方式,即以简洁的方式对输入的文本内容进行最佳的语义表示是个难题。 本项目将对这一问题进行尝试,采用的方法为:输入一篇文档,将文档进行关键信息提取,并进行结构化,并最终组织成图谱组织形式,形成对文章语义信息的图谱化展示。 使用方式 结果保存在graph.html文件当中。 事件举例 1)中兴事件 2)魏则西事件 3)雷洋事件 4)同学杀人事件 总结 1)如何用图谱和结构化的方式,即以简洁的方式对输入的文本内容进行最佳的语义表示是个难题。 2)本项目采用了高频词,关键词,命名实体识别,主谓宾短语识别等抽取方式,并尝试将三类信息进行图谱组织表示,这种表示方式是一种尝试。 3)命名实体识别以及关键信息抽取受限于NLP的性能,在算法和方式上还存在多处不足。 来源https://github.com/liuhuanyong/TextGrapher

资源

【Demo】基于语义分割的矿区无人机影像地物提取实验

基于语义分割的矿区无人机影像地物提取实验 1. 实验数据介绍 无人机拍摄的高分辨率矿区影像图 实验室进行标注的对应label v0219版本:进行裁剪后的640 x 640的图像与label数据 v0225&v0301版本及之后:进行裁剪后的320 x 320的图像与label数据,并更换测试集 v0607及所有详细数据调整情况:实验数据版本调整 2. 实验环境介绍 GPU等服务器资源不加介绍 Python3.6、Pytorch、OpenCV、torchvision、numpy等必备环境 图像切割工具包GDAL:仅在win系统下可运行 3. 实验流程介绍 原图数据和标注好的label数据,label是灰度的图像,且每个像素属于该类(0-3)共四类 切割原图和相应的label数据为640 x 640的图像,后期改为320大小进行实验 将切割好的原图和label对应好,使用代码进行可视化(因为标注的label是灰度,直观上看是黑色一片) 对数据进行数据增强,切割完成才有对应的几百张数据,增强至几千张 增强后的数据也要一对一对应好,建议一开始就取两者相同的图像名,使用可视化进行测试 数据划分,分为训练集、验证集、测试集;按照6:2:2的比例 搭建网络代码,使用Pytorch搭建网络,后期加入多种trick进行测试 编写train.py训练代码,写好训练流程、保存模型、保存loss等信息 训练完成之后,使用保存的模型进行预测,对预测出的图片进行涂色,使之可视化 根据预测结果进行kappa系数、mIoU指标的计算 4. 实验部分代码简介 数据简介:以一张大图和对应的label为例,可视化label以便查看原始数据 数据切割:介绍有关tif文件的切割,以及转换tif格式为png格式 灰度label可视化:由于label是1通道的图像,直观上是黑色图像,写代码使得同类别像素一个颜色进行可视化 数据增强_Data_Augmentation.py:离线数据增强,对图像进行随机旋转、颜色抖动、高斯噪声处理; 数据载入及数据划分:v0304版本之前的数据载入方式,使用简单留出法划分训练集、验证集 基于k折交叉验证方式的数据载入及数据划分:基于k折交叉验证,避免了因偶然因素引起的验证集的不同(验证集随机划分,每次实验结果都会有影响) deeplabv3.py:基于pytorch的deeplab_v3网络搭建代码 deeplabv3论文笔记:论文Rethinking Atrous Convolution for Semantic Image Segmentation的阅读笔记 train.py:v0304版本之前训练程序的代码,基于简单留出验证 train_kfold.py:基于交叉验证方式的训练程序的代码 predictv0217.py:使用生成的训练模型来预测,并给预测图片进行涂色显示 MIoU指标计算:使用PyTorch基于混淆矩阵计算MIoU、Acc、类别Acc等指标 Kappa系数计算:使用PyTorch基于混淆矩阵计算Kappa系数评价指标 5. 实验版本数据记录 本实验有多个版本,具体实验详情如下: 使用图像增强进行训练集的生成,640大小的图像:训练集1944张、验证集648张、测试集162张 v0225版本&v0301版本,320大小的图像:训练集9072张、验证集2268张、测试集378张 v0607版本之后:第三次调整数据;使用dataset3 v0923版本之后:加入dsm高程数据;使用dataset4 v1012版本之后:加入了新数据;使用dataset5 图像的预处理:无标准化、只进行了归一化 损失函数:CrossEntropyLoss 优化器:SGD、lr=1e-3、动量=0.9; v0219版本测试Adam优化器、lr=1e-3 v0225版本&v0301版本:Adam优化器、lr=1e-3 v0225版本:deeplabv3-resnet152 V3p-152: deeplabv3+-resnet152 + 5折交叉验证 DANet_res:danet-resnet152 + 5折交叉验证 Deeplabv3_dan:deeplabv3-dan-resnet152 + 5折交叉验证 CCNet0403:ccnet-resnet152 + 5折交叉验证 CCNet0509:deeplabv3-ccnet-resnet152 + 5折交叉验证 ResNeSt0518:deeplabv3-resnest152 + 5折交叉验证(此代码修改自resnest分类网络代码) ResNeSt0525:deeplabv3-resnest101 + 5折交叉验证(此代码修改自resnest用于分割的代码) CCNet0607: deeplabv3-ccnet-resnet152 + 5折交叉验证 + 第三次调整数据 + 使用weight减轻样本不均衡 ACNet0923: ACNet-resnet50 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 40 ACNet0925: ACNet-resnet101 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 40 ACNet0927: ACNet-resnet50 + CCNet替换decode的agant层 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 45 ACNet0928: ACNet-resnet50 + CCNet替换原通道注意力模块 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 45 ACNet0930: ACNet-resnet50 + CBAM替换原通道注意力模块 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 45 ACNet1002: ACNet-resnet50 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 40 + ACNet0923对照实验测试Focalloss效果 ACNet1004: ACNet_del_M_model-resnet50 + 5折交叉验证 + 加入dsm高程信息 + 使用weight减轻样本不均衡 + 40 ACNet1005: ACNet1004对照实验 + torch.cat代替+融合方式;比较两者融合的效果好坏 ACNet1006: ACNet1004对照实验 + CC_Moudle代替上采样过程中的4个agant层 ACNet1008: ACNet1004对照实验 + CC_Moudle代替上采样过程中的第1个agant层 ACNet1009: ACNet1004对照实验 + m0-m4融合的特征加入到RGB分支 ACNet1010: ACNet1004对照实验 + sk-resnet50网络替换se-resnet50 ACNet1012: ACNet0923网络结构 + 新的dataset5数据集 ACNet1014: ACNet1004网络结构 + 新的dataset5数据集 ACNet1016: ACNet1014对照实验 + 编码器的最后融合前添加ASPP模块 ACNet1021: ACNet1014对照实验 + 将高程数据的分支的通道注意力改为空间注意力 ACNet1023: ACNet1014对照实验 + 将RGB数据的分支的通道注意力改为通道与空间注意力串行 ACNet1025: ACNet1014对照实验 + 替换注意力机制中的一个卷积为两个卷积层 ACNet1029: ACNet1014对照实验 + 将RGB数据的分支的通道注意力改为通道与空间注意力并行 ACNet1101: ACNet1014对照实验 + 删除了第一个卷积层之后的注意力机制与融合 + 删除对下采样的指导 ACNet1103: ACNet1014对照实验 + 将之前的agant层替换为金字塔池化模块ppm + sizes==(1,2,5,10) ACNet1106: ACNet1014对照实验 + 将之前的agant层替换为金字塔池化模块ppm + sizes==(1,2,5) ACNet1110: ACNet1014对照实验 + 将RGB分支和高程分支的通道注意力改为通道与空间注意力并行 ACNet1113: ACNet1014对照实验 + 将RGB分支的通道注意力改为通道与空间注意力并行,高程分支为串行 5.1 实验版本记录 & 一些想法 数据增强加入随机裁剪操作,并双线性插值pad至320大小(不能pad,标签pad就不是真实值),投入训练 随机裁剪数据至192大小,没有pad,和320大小的数据一起当做训练集,出现错误提示:一个batch的数据,[B,C,H,W]必须一致,由于320和192大小的数据掺杂,所以报错。因为实验使用离线的数据增强 因数据集中样本数量不平衡,测试weighted Cross Entropy-Loss以及Focal-Loss 使用CCNet单独训练 v0403版本:只使用了ccnet注意力模块的输出上采样,结果为不收敛,但是使用epoch-8.pth测试有点效果 后期测试:将x与x_dsn特征融合,进行测试,测试结果如下,可以看出较danet单独训练结果稍好,车辆acc例外 CCNet与deeplabv3共同使用,将注意力模块加入deeplabv3 v0509版本:将ccnet模块与aspp模块并行,cat两个结果,最后进行分割。整体Acc、MIoU、Kappa都达到了最高 v0509版本:只有道路和车辆的准确率低于以往的实验 v0607版本:测试Cross Entropy-Loss加入权重[0.1, 0.8, 1.0, 1.0] 测试到epoch12,由于服务器原因程序中断,查看log,在训练集、验证集上的loss都较之前增大 修改权重,根据训练数据集,算出真正的像素比例值,调整权重,重新训练 此次效果很好,其中明显在预测图中【道路】的识别率增大,且指标上涨明显 DAN网络单独训练 danet_drn_v0408版本:output包括feat_sum、pam_out、cam_out,采用辅助loss训练,结果一塌糊涂 danet_v0408版本:更换backbone网络为resnet-152,替换deeplabv3的aspp模块,不使用辅助loss,使用feat_sum进行结果的分割,结果详见下表Danet0408 DAN模块并行加入deeplabv3网络中,实验数据如下所示 将deeplabv3的backbone网络Resnet换为ResNeSt,目前测试版本:resnest-v0518 此版本:根据代码修改,去除aspp后的层,模仿deeplabv3-resnet进行修改,效果一般,仅仅提升了道路的识别 根据@张航作者的代码进行更改得出,deeplabv3-resnest101,已测试 目前的实验目标:提高车辙的识别率(道路的标注中,有一部分是车轮轧过的车辙),最怀疑是数据量不够 思路1:加大数据量,如下进行的新的数据增强; 思路2:调整损失函数,加入weight权重,减轻样本数目不平衡问题; 实验结果有较大的提升,见下结果 关于数据的调整:重新审视了代码,测试了增强的结果;其中,颜色抖动、随机旋转有效;高斯噪声处理像素值改变小; 在原训练数据上新添加如下:左右翻转图像;上下翻转图像;其中各1890张,共3780张; 更新:删除了反转的图像中全黑的label,即全是背景的label;(减轻一下样本不均衡) 有关第三次数据调整,详见issue-数据调整汇总 5.2 基于RGB与高程数据的语义分割实验 数据处理部分 Depth原始数据(高程数据)是32位的tiff格式图像,需转换为8位的tiff格式图,使用python的代码直接转换会线性压缩图像的对比性,所以要先找到图像像素的极值,将其像素之间的差做出来,再使用代码转换为uint8文件。转换代码地址:32to8.py png切割代码:png_crop.py 在dataset3中有筛选出的特征较均衡的图像,使用代码筛选切割好的dsm高程数据;代码:file_find.py 基于dataset3加入dsm高程数据:dataset4的调整记录 代码详见上方链接 5.3 test测试数据集-各版本结果对比 版本&指标 Acc MIoU Kappa 背景 房屋 道路 车辆 V0225 0.9562 0.7864 0.8477 0.9847 0.8531 0.8898 0.7269 V0301 0.9545 0.7740 0.8429 0.9815 0.8849 0.9037 0.6313 V0304 0.9555 0.7777 0.8470 0.9816 0.8529 0.9086 0.7151 V3p-101 0.9544 0.7706 0.8427 0.9785 0.8704 0.9165 0.5758 V3p-152 0.9525 0.7582 0.8317 0.9860 0.8235 0.9111 0.6009 Danet0408 0.9294 0.6762 0.7347 0.9818 0.5991 0.8409 0.4458 Danet0420 0.9497 0.7611 0.8276 0.9732 0.8232 0.9101 0.6559 CCnet0403 0.9412 0.6846 0.7845 0.9876 0.7803 0.9252 0.4353 CCnet0509 0.9593 0.7947 0.8593 0.9863 0.8818 0.8856 0.6740 ResNeSt0518 0.9437 0.7143 0.8057 0.9765 0.8315 0.9184 0.4154 ResNeSt0525 0.9525 0.7601 0.8363 0.9763 0.8725 0.8192 0.5519 CCNet0607 0.9603 0.8057 0.8684 0.9722 0.8907 0.9216 0.7745 ACNet0923 0.9635 0.8220 0.8802 0.9710 0.9191 0.9588 0.8167 ACNet0925 0.9583 0.8016 0.8625 0.9716 0.9060 0.9002 0.7994 ACNet0927 0.9573 0.7935 0.8618 0.9677 0.9415 0.9521 0.8032 ACNet0928 0.9352 0.7172 0.7878 0.9491 0.8509 0.9534 0.6594 ACNet0930 0.9616 0.8192 0.8733 0.9744 0.9113 0.9472 0.8420 ACNet1002 0.9492 0.7681 0.8355 0.9634 0.8688 0.9394 0.7913 ACNet1004 0.9638 0.8204 0.8807 0.9713 0.9229 0.9643 0.8317 ACNet1005 0.9619 0.8065 0.8740 0.9715 0.9288 0.9425 0.7376 ACNet1006 0.9537 0.7853 0.8518 0.9585 0.9420 0.9505 0.7951 ACNet1008 0.9642 0.8175 0.8806 0.9771 0.9317 0.9386 0.7271 ACNet1009 0.9627 0.8099 0.8758 0.9760 0.8999 0.9133 0.7584 ACNet1010 0.9587 0.7969 0.8655 0.9710 0.9331 0.9376 0.7433 ACNet1012 0.9528 0.7844 0.8477 0.9720 0.9036 0.8208 0.8036 ACNet1014 0.9580 0.7948 0.8622 0.9753 0.9214 0.8318 0.7961 ACNet1016 0.9534 0.7837 0.8434 0.9750 0.8340 0.9580 0.7566 ACNet1021 0.9481 0.7560 0.8329 0.9588 0.9319 0.9375 0.6947 ACNet1023 0.9513 0.7653 0.8405 0.9673 0.9179 0.9373 0.7573 ACNet1025 0.9483 0.7635 0.8231 0.9764 0.7607 0.8985 0.7280 ACNet1029 0.9553 0.7863 0.8539 0.9738 0.9123 0.8204 0.7964 ACNet1101 0.9494 0.7685 0.8379 0.9603 0.9339 0.9377 0.7849 ACNet1103 0.9561 0.7816 0.8545 0.9722 0.8957 0.9162 0.7634 ACNet1106 0.9571 0.7802 0.8543 0.9800 0.8832 0.9148 0.6309 ACNet1110 0.9544 0.7848 0.8479 0.9733 0.8983 0.8243 0.8057 ACNet1113 0.9530 0.7833 0.8435 0.9676 0.8729 0.9304 0.7828 ACNet1117 0.9613 0.8102 0.8724 0.9774 0.9154 0.8719 0.8009 6. 实验分割结果展示 ACNet-0923版本实验预测图: 7. 实验优化问题记录 7.1 实验优化问题解决记录-MIoU-v0217 MIoU数据:MIoUData.py:读取label和predict图像,以tensor形式,batch_size=4传入----v0210 MIoU的计算:testMIoU.py:将传入的tensor转为np的array,再执行flatten()进行一维化,每4个图像进行计算miou,最后求平均的miou 问题:计算得到的MIoU都为1.0,怀疑原因,中间的float强转int,最后得到的数值都为1 解决v0217:修改读入方式,使用CV2直接读入,不变为tensor,详见MIoUCalv0217.py,MIoUDatav0217.py 7.3 预测问题-已解决v0217 v0217版本:修改预测方法,以一张一张读入进行预测,解决之前的大部分涂色失败问题。效果如下: 来源https://github.com/yearing1017/UAVI_Seg_Pytorch

资源

【Demo】利用Python实现酒店评论的中文情感分析

利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析、归纳。情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法。基于情感知识的方法通过一些已有的情感词典计算文本的情感极性(正向或负向),其方法是统计文本中出现的正、负向情感词数目或情感词的情感值来判断文本情感类别;基于机器学习的方法利用机器学习算法训练已标注情感类别的训练数据集训练分类模型,再通过分类模型预测文本所属情感分类。本文采用机器学习方法实现对酒店评论数据的情感分类,利用Python语言实现情感分类模型的构建和预测,不包含理论部分,旨在通过实践一步步了解、实现中文情感极性分析。 开发环境准备 1.Python环境 在python官网https://www.python.org/downloads/ 下载计算机对应的python版本,本人使用的是Python2.7.13的版本。 2.第三方模块 本实例代码的实现使用到了多个著名的第三方模块,主要模块如下所示: 1)Jieba 目前使用最为广泛的中文分词组件。下载地址:https://pypi.python.org/pypi/jieba/ 2)Gensim 用于主题模型、文档索引和大型语料相似度索引的python库,主要用于自然语言处理(NLP)和信息检索(IR)。下载地址:https://pypi.python.org/pypi/gensim 本实例中的维基中文语料处理和中文词向量模型构建需要用到该模块。 3)Pandas 用于高效处理大型数据集、执行数据分析任务的python库,是基于Numpy的工具包。下载地址:https://pypi.python.org/pypi/pandas/0.20.1 4)Numpy 用于存储和处理大型矩阵的工具包。下载地址:https://pypi.python.org/pypi/numpy 5)Scikit-learn 用于机器学习的python工具包,python模块引用名字为sklearn,安装前还需要Numpy和Scipy两个Python库。官网地址:http://scikit-learn.org/stable/ 6)Matplotlib Matplotlib是一个python的图形框架,用于绘制二维图形。下载地址:https://pypi.python.org/pypi/matplotlib 7)Tensorflow Tensorflow是一个采用数据流图用于数值计算的开源软件库,用于人工智能领域。 官网地址:http://www.tensorfly.cn/ 下载地址:https://pypi.python.org/pypi/tensorflow/1.1.0 数据获取 1.停用词词典 本文使用中科院计算所中文自然语言处理开放平台发布的中文停用词表,包含了1208个停用词。下载地址:http://www.hicode.cc/download/view-software-13784.html 2.正负向语料库 文本从http://www.datatang.com/data/11936 下载“有关中文情感挖掘的酒店评论语料”作为训练集与测试集,该语料包含了4种语料子集,本文选用正负各1000的平衡语料(ChnSentiCorp_htl_ba_2000)作为数据集进行分析。 数据预处理 1.正负向语料预处理 下载并解压ChnSentiCorp_htl_ba_2000.rar文件,得到的文件夹中包含neg(负向语料)和pos(正向语料)两个文件夹,而文件夹中的每一篇评论为一个txt文档,为了方便之后的操作,需要把正向和负向评论分别规整到对应的一个txt文件中,即正向语料的集合文档(命名为2000_pos.txt)和负向语料的集合文档(命名为2000_neg.txt)。 具体Python实现代码如下所示: 运行完成后得到2000_pos.txt和2000_neg.txt两个文本文件,分别存放正向评论和负向评论,每篇评论为一行。文档部分截图如下所示: 2.中文文本分词 本文采用结巴分词分别对正向语料和负向语料进行分词处理。特别注意,在执行代码前需要把txt源文件手动转化成UTF-8格式,否则会报中文编码的错误。在进行分词前,需要对文本进行去除数字、字母和特殊符号的处理,使用python自带的string和re模块可以实现,其中string模块用于处理字符串操作,re模块用于正则表达式处理。 具体实现代码如下所示: 处理完成后,得到2000_pos_cut.txt和2000_neg_cut.txt两个txt文件,分别存放正负向语料分词后的结果。分词结果部分截图如下所示: 3.去停用词 分词完成后,即可读取停用词表中的停用词,对分词后的正负向语料进行匹配并去除停用词。去除停用词的步骤非常简单,主要有两个: 1)读取停用词表; 2)遍历分词后的句子,将每个词丢到此表中进行匹配,若停用词表存在则替换为空。 具体实现代码如下所示: 根据代码所示,停用词表的获取使用到了python特有的广播形式,一句代码即可搞定: 读取出的每一个停用词必须要经过去符号处理即w.strip(),因为读取出的停用词还包含有换行符和制表符,如果不处理则匹配不上。代码执行完成后,得到2000_neg_cut_stopword.txt和2000_pos_cut_stopword.txt两个txt文件。 由于去停用词的步骤是在句子分词后执行的,因此通常与分词操作在同一个代码段中进行,即在句子分词操作完成后直接调用去停用词的函数,并得到去停用词后的结果,再写入结果文件中。本文是为了便于步骤的理解将两者分开为两个代码文件执行,各位可根据自己的需求进行调整。 4.获取特征词向量 根据以上步骤得到了正负向语料的特征词文本,而模型的输入必须是数值型数据,因此需要将每条由词语组合而成的语句转化为一个数值型向量。常见的转化算法有Bag of Words(BOW)、TF-IDF、Word2Vec。本文采用Word2Vec词向量模型将语料转换为词向量。 由于特征词向量的抽取是基于已经训练好的词向量模型,而wiki中文语料是公认的大型中文语料,本文拟从wiki中文语料生成的词向量中抽取本文语料的特征词向量。Wiki中文语料的Word2vec模型训练在之前写过的一篇文章“利用Python实现wiki中文语料的word2vec模型构建” 中做了详尽的描述,在此不赘述。即本文从文章最后得到的wiki.zh.text.vector中抽取特征词向量作为模型的输入。 获取特征词向量的主要步骤如下: 1)读取模型词向量矩阵; 2)遍历语句中的每个词,从模型词向量矩阵中抽取当前词的数值向量,一条语句即可得到一个二维矩阵,行数为词的个数,列数为模型设定的维度; 3)根据得到的矩阵计算矩阵均值作为当前语句的特征词向量; 4)全部语句计算完成后,拼接语句类别代表的值,写入csv文件中。 主要代码如下图所示: 代码执行完成后,得到一个名为2000_data.csv的文件,第一列为类别对应的数值(1-pos, 0-neg),第二列开始为数值向量,每一行代表一条评论。结果的部分截图如下所示: 5.降维 Word2vec模型设定了400的维度进行训练,得到的词向量为400维,本文采用PCA算法对结果进行降维。具体实现代码如下所示: 运行代码,根据结果图发现前100维就能够较好的包含原始数据的绝大部分内容,因此选定前100维作为模型的输入。 分类模型构建 本文采用支持向量机(SVM)作为本次实验的中文文本分类模型,其他分类模型采用相同的分析流程,在此不赘述。 支持向量机(SVM)是一种有监督的机器学习模型。本文首先采用经典的机器学习算法SVM作为分类器算法,通过计算测试集的预测精度和ROC曲线来验证分类器的有效性,一般来说ROC曲线的面积(AUC)越大模型的表现越好。 首先使用SVM作为分类器算法,随后利用matplotlib和metric库来构建ROC曲线。具体python代码如下所示: 运行代码,得到Test Accuracy: 0.88,即本次实验测试集的预测准确率为88%,ROC曲线如下图所示。 来源https://github.com/AimeeLee77/senti_analysis

资源

【Demo】使用Dlib从相机进行人脸识别

使用Dlib从相机进行人脸识别 介绍 调用摄像头进行人脸识别,支持多张人脸同时识别; 摄像头人脸录入 / Face register 请不要离摄像头过近,人脸超出摄像头范围时会有 "OUT OF RANGE" 提醒; 提取特征建立人脸数据库 利用摄像头进行人脸识别 单张人脸 利用 OT 对于单张人脸追踪 多张人脸 利用 OT 来实现 定制显示名字, 可以写中文 关于精度: 当使用0.6的距离阈值时,dlib模型在标准LFW人脸识别基准上可获得99.38%的精度。 关于算法: 基于 Residual Neural Network / 残差网络的 CNN 模型; 该模型是一个具有29个转换层的ResNet网络。 它本质上是He,Zhang,Ren和Sun的论文《深度残差学习进行图像识别》中ResNet-34网络的一个版本,删除了几层,每层的过滤器数量减少了一半。 概述 此项目中人脸识别的实现流程 (no OT, 每一帧都进行检测+识别) 实现流程(with OT, 初始帧进行检测+识别,后续帧检测+质心跟踪) 如果利用 OT 来跟踪,可以大大提高 FPS, 因为做识别时候需要提取特征描述子的耗时很多; 流程 安装依赖库 下载源码 进行人脸信息采集录入 提取所有录入人脸数据存入 "features_all.csv" 调用摄像头进行实时人脸识别 或者利用 OT 算法,调用摄像头进行实时人脸识别 关于源码 Repo 的 tree / 树状图: 用到的 Dlib 相关模型函数: Dlib 正向人脸检测器 (based on HOG), output: <class 'dlib.dlib.rectangles'> Dlib 人脸 landmark 特征点检测器, output: <class 'dlib.dlib.full_object_detection'>, will use shape_predictor_68_face_landmarks.dat Dlib 特征描述子 Face recognition model, the object maps human faces into 128D vectors Python 源码介绍如下: get_face_from_camera.py: 进行 Face register / 人脸信息采集录入 请注意存储人脸图片时,矩形框不要超出摄像头范围,要不然无法保存到本地; 超出会有 "out of range" 的提醒; features_extraction_to_csv.py: 从上一步存下来的图像文件中,提取人脸数据存入CSV; 会生成一个存储所有特征人脸数据的 "features_all.csv"; size: n*128 , n means n people you registered and 128 means 128D features of the face face_reco_from_camera.py: 这一步将调用摄像头进行实时人脸识别; / This part will implement real-time face recognition; Compare the faces captured from camera with the faces you have registered which are saved in "features_all.csv" 将捕获到的人脸数据和之前存的人脸数据进行对比计算欧式距离, 由此判断是否是同一个人; face_reco_from_camera_ot_single_person/multi_people.py: 区别于 face_reco_from_camera.py (对每一帧都进行检测+识别),只会对初始帧做检测+识别,对后续帧做检测+质心跟踪; (optional) face_descriptor_from_camera.py 调用摄像头进行实时特征描述子计算; / Real-time face descriptor computation; Tips: 如果希望详细了解 dlib 的用法,请参考 Dlib 官方 Python api 的网站 / You can refer to this link for more information of how to use dlib: http://dlib.net/python/index.html Windows下建议不要把代码放到 C:\, 可能会出现权限读取问题 / In windows, we will not recommend that running this repo in dir C:\ 代码最好不要有中文路径 人脸录入的时候先建文件夹再保存图片, 先 N 再 S 关于人脸识别卡顿 FPS 低问题, 原因是特征描述子提取很费时间, 光跑 face_descriptor_from_camera.py 中 face_reco_model.compute_face_descriptor 在 CPU: i7-8700K 得到的最终 FPS: 5~6 (检测在 0.03s, 特征描述子提取在 0.158s, 和已知人脸进行遍历对比在 0.003s 左右), 所以主要提取特征时候耗资源, 可以用 OT 去做追踪,而不是对每一帧都做检测+识别 来源https://github.com/coneypo/Dlib_face_recognition_from_camera

资源

【毕业设计】基于爬虫的房源数据分析系统

基于Python的南京二手房数据采集及可视化分析 内容简介 首先通过爬虫采集链家网上所有南京二手房的房源数据,并对采集到的数据进行清洗;然后,对清洗后的数据进行可视化分析,探索隐藏在大量数据背后的规律;最后,采用一个聚类算法对所有二手房数据进行聚类分析,并根据聚类分析的结果,将这些房源大致分类,以对所有数据的概括总结。通过上述分析,我们可以了解到目前市面上二手房各项基本特征及房源分布情况,帮助我们进行购房决策。 应用技术介绍 Python网络爬虫技术 Requests Beautifulsoup Python数据分析技术 Numpy Matplotlib Pandas 数据处理 来源https://github.com/zqm233/HouseAnalysis

  • 1
  • 8
  • 9
  • 10
  • 20
前往