毕业设计

毕业设计 · 圈子

5541 位酷友已加入

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

关注推荐最新

热门标签

资源

【毕业设计】基于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

资源

【毕业设计】无线视频监控系统设计

概述 无线视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合系统。无线视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,视频监控制技术也有长远的发展。 在国内外市场上,主要推出的是数字控制的模拟视频监控和数字视频监控两类产品。前者技术发展已经非常成熟、性能稳定,并在实际工程应用中得到广泛应用,特别是在大、中型视频监控工程中的应用尤为广泛;后者是新近崛起的以计算机技术及图像视频压缩为核心的新型视频监控系统,该系统解决了模拟系统部分弊端而迅速崛起,但仍需进一步完善和发展。 目前,视频监控系统正处在数控模拟系统与数字系统混合应用并将逐渐向数字系统过渡的阶段。 本设计中运用了nRF905收发模块,此模块提供了SPI 接口方便与C8051F310单片机的SPI 口连接。nRF905 单片无线收发器工作在433MHZ,通过SPI 接口进行编程配置,从而工作在消耗很低的电流状态。 C8051F310单片机的增强型串行外设接口SPI0提供访问一个全双工同步串行总线。SPI0可以作为主器件或从器件工作,使用4线主方式。通过C8051F310单片机SPI串口进行编程控制视频头的转向,同时,通过89S52单片机控制液晶显示电路;再运用射频发射与射频接收电路,将图像信息显示在电视机上,达到对周围事件进行实时监控。 经过对无线视频监控系统的设计,让我们更好的熟悉C8051F310单片机和89S52 两款单片机,而且对C8051F310这款在校园里运用还不是很多的单片机有很好的掌握。在使用89S52单片机控制液晶显示电路时,可以对以往学习过的51系列单片机进行巩固;对HY-12864液晶显示电路的硬件和软件有一个充分的认识。 目录 1 引言 2 方案论证 2.1 方案1——采用A/D和D/A转换的数字无线视频监控系统 2.2 方案2——数字和模拟结合的无线视频监控系统 3 系统概述 4 单元电路设计 4.1 射频发射电路 4.2 射频接收 4.3 数字无线发射电路 4.3.1 C8051F310单片机介绍 4.3.2 nRF905芯片介绍 4.3.3 数字无线发射硬件电路 4.3.4 液晶显示电路 4.4 数字无线接收电路 4.5 电源电路 4.5.1 +5V电源电压设计 4.5.2 +3.3V电源电压设计 4.5.3 蓄电池 5 软件设计 5.1 数字无线发射电路程序设计 5.1.1 发射电路程序 5.1.2 液晶显示电路程序 5.2 数字无线接收电路程序设计 6 测试结果 结 论 参考文献 附录A 无线发射电路 附录B 无线接收电路 附录1 发射程序 附录2 液晶程序 附录3 接收程序 致 谢

资源

【毕业设计】T6113卧式镗床电气控制系统的设计

选题目的与意义 由于现代加工技术的日益提高,对加工机床特别是工作母机的要求也越来越高,由此人们也将注意力集中到机床上来,数控技术是计算机技术、信息技术、现代控制技术等发展的产物,他的出现极大的推动了制造业的进步。 机床的控制系统的优劣与机床的加工精度息息相关,特别是PLC广泛应用于控制领域后,已经显现出它的优越性。可编程控制器PLC已广泛应用于各行各业的自动控制。在机械加工领域,机床的控制上更显示出其优点。 由于镗床的运动很多、控制逻辑复杂、相互连锁繁多,采用传统的继电器控制时,需要的继电器多、接线复杂,因此故障多维修困难,费工费时,不仅加大了维修成本,而且影响设备的功效。采用PLC控制可使接线大为简化,不但安装十分方便而且工作可靠、降低了故障率、减小了维修量、提高了功效。 本资料包含设计说明书、电气原理图等资料

资源

【毕业设计】三菱FX2N PLC在电梯控制中的应用

摘要 本文主要介绍可编程控制器(PLC)在电梯电气控制系统中的应用,通过对系统硬件设计方法和程序设计思路的介绍,给出了5层电梯逻辑控制部分的方法。主要涉及5层电梯的PLC控制系统的总体设计方案、组成及模块化程序设计。 本资料主要包含:毕业设计论文、PLC接线图、三菱电梯T形图等

资源

【毕业设计】电动式关节型机器人机械手的结构设计与仿真

论文摘要 本文简要介绍了电动式关节型机器人机械手的概念,机械手硬件和软件的组成,机械手各个部件的整体尺寸设计,气动技术的特点。 本文对机械手进行总体方案设计,确定了机械手的坐标形式和自由度,确定了机械手的技术参数。 同时,设计了机械手的夹持式手部结构,设计了机械手的手腕结构,计算出了手腕转动时所需的驱动力矩和回转气缸的驱动力矩。 设计了机械手的手臂结构。设计出了机械手的气动系统,绘制了机械手气压系统工作原理图,大大提高了绘图效率和图纸质量,画出了机械手的装配图。 本资源包含任务书、毕业设计论文与设计图纸。

资源

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

整体介绍 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

资源

【毕业设计】利用机械臂下五子棋、倒水、物品分拣

项目概述 本项目实现了安卓端语音控制机器人完成下五子棋、倒水、物品分拣、智能示教、身份认证以及颜值检测。 演示视频 五子棋:https://www.bilibili.com/video/av70817190 倒水:https://www.bilibili.com/video/av70817949 物品分拣:https://www.bilibili.com/video/av71569842 智能示教:https://www.bilibili.com/video/av74145669 主要内容 代码分为3个部分: 1、机械臂运动学控制 2、物品识别、位置检测及人脸识别 3、安卓平板app 硬件价格以及购买地址放在:小憨机器人硬件价格表以及购买网址.xlsx 教程 【视觉机械臂抓取入门教程】第一次课 :流程总览https://www.bilibili.com/video/BV1dE411T73U 【如何快速制作自己的视觉抓取机械臂】视觉机械臂抓取入门教程 第二次课 https://www.bilibili.com/video/BV11t4y1C76N Tips: 由于项目时间仓促,只用了不到两个月,项目只是完成了一些简单的功能,也还未来得及整理代码,若有问题,可以加QQ了解:965295412 本项目转载自:https://github.com/Kkoutianwu/RISE-Robot 作者的B站主页:https://space.bilibili.com/109454273?spm_id_from=333.788.b_765f7570696e666f.1

资源

【毕业设计】基于单片机的六足机器人控制系统设计

本资源包含论文、开题答辩PPT、硬件设计、软件设计等文件。 摘要 本设计主要是基于单片机的六足机器人控制系统设计,综合分析六足机器人的结构、步态和控制算法,结合云端服务器、WIFI技术、蓝牙技术、语音识别技术和手势识别技术进行多种控制模式的设计,并提出不同应用场景的不同构建方案。 设计思路 本系统的硬件设计分为主控板和舵机控制板两部分。主控板主要负责各种控制模式的数据处理和显示,舵机控制板主要负责舵机转动角度的控制,两板通过串口进行数据的交互。主控制板采用STM32F103VET6芯片,舵机控制板采用STM32F103R8T6芯片,两者都基于ARM的Cortex M3内核进行设计的。主控制板的硬件电路设计主要有启动电路、晶振电路、下载电路、复位电路、稳压电路以及各个模块接口电路。在Altium Designer16软件中进行原理图的绘制和PCB的绘制,打样后进行焊接并完成整体的测试。 本系统的上位机主要是手机APP,其开发环境是Android Studio,采用C#作为云端开放平台语言,JAVA语言作为移动客户端设计语言,通过JAVA语言的编写实现手机客户端的数据接收和发送,最终实现基于云端和蓝牙的控制系统上位机板块的设计。本系统下位机的软件设计是在Keil5编程环境下进行的,参考STM32F1的手册和各个模块的数据手册进行程序的编写,最终实现云端控制、蓝牙控制、语音控制和手势控制这四种控制系统设计。 目录 第一章 绪 论 1 1.1 设计的背景和意义 1.2 国外研究现状分析 1.3 国内研究现状分析 1.4 本文主要设计内容 第二章 系统方案设计 2.1 控制系统方案设计 2.1.1 远程控制方案设计 2.1.2 蓝牙控制方案设计 2.1.3 人机交互方案设计 2.2 应用场景方案设计 2.2.1 系统运用方案说明 2.2.2 崎岖地形探测方案 2.2.3 震后救灾搜寻方案 2.2.4 科研探险勘测方案 2.2.5 工厂巡检预警方案 第三章 硬件系统设计 3.1机械结构的分析 3.2主控芯片的分析 3.3数字舵机的选型 3.4 模块接口电路设计 3.4.1 WIFI模块接口电路设计 3.4.2 蓝牙模块接口电路设计 3.4.3 语音播放芯片外围电路设计 3.4.4 语音识别芯片外围电路设计 3.4.5 手势识别接口电路设计 3.5 远程视频模块介绍 3.6 各种传感器的说明 3.6.1 红外传感器 3.6.2 声音传感器 3.6.3 光敏传感器 3.6.4 超声波传感器 3.6.5 温湿度传感器 3.6.6 气体传感器 3.7 主控板电路设计 3.7.1 总体介绍 3.7.2 晶振电路 3.7.3 复位电路 3.7.4 降压电路 3.7.5 IIC接口电路 3.7.6 SPI接口电路 3.7.7 USART接口电路 3.8 PCB板设计及绘制 第四章 软件系统设计 4.1 软件开发平台介绍 4.2 系统整体设计框图 4.3 步态的设计和动作编写 4.4 远程控制程序设计 4.4.1 上位机的程序编写 4.4.2 下位机的程序编写 4.4.3 通信协议的说明 4.5 蓝牙控制APP设计 4.6 语音控制程序设计 4.7 手势控制程序设计 4.8 液晶显示界面设计 第五章 系统整体调试 5.1 远程云端控制调试 5.2 语音识别控制调试 5.3 手势识别控制调试 5.4 动作组整体调试 致 谢 参考文献 附 录 本毕业设计转载自:https://github.com/linyongxinhio/Six-legged-Robot

资源

【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

  • 1
  • 12
  • 13
  • 14
  • 27
前往