pytorch深度学习案例(二)——航拍街道语义分割
数据集
使用的数据集是kaggle
的Semantic segmentation of aerial imagery
其数据的组织形式为
项目结构
utils
dataConvert.py
dataConvert中主要包含数据的变换过程
函数 | 作用 |
---|---|
loadColorMap | 用于加载标签的颜色映射 |
voc_colormap2label | 获取颜色标签到数值标签的映射关系 |
voc_rand_crop | 用于裁剪数据 |
voc_label_indices | 将RGB标签转换成数值标签 |
one hot | 将标签转换成one hot |
dataLoader.py
dataLoader.py包含数据的加载过程
类/函数 | 作用 |
---|---|
SemanticDataset | 数据加载类,包含数据归一化,数据裁剪过程,用于加载数据 |
load_data_voc | 调用SemanticDataset批量加载训练集和测试集 |
losses.py
定义损失函数,本项目中采用的是Focal loss和Dice loss相加作为损失函数
model.py
包含U-net模型和deeplabv3+两种模型,在训练和测试过程可以通过修改参数进行选择
prepare模块
这个模块在训练前执行,是整个项目的准备工作
函数
函数 | 作用 |
---|---|
semantic2dataset | 航拍数据集转换成语义分割的数据集 |
trainValSplit | 分割训练集和测试集 |
getMeanStd | 获取均值和方差 |
writeColorClasses | 保存颜色和类别 |
参数
参数只有两个,就是颜色映射和类别,在本项目中这两个参数为
VOC_COLORMAP = [[226, 169, 41], [132, 41, 246], [110, 193, 228], [60, 16, 152], [254, 221, 58], [155, 155, 155]]
VOC_CLASSES = ['Water', 'Land (unpaved area)', 'Road', 'Building', 'Vegetation', 'Unlabeled']
train模块
函数
train
根据传入的参数进行训练
参数
参数 | 作用 |
---|---|
batch_size | 批量大小,在语义分割中可以设置小一些 |
crop_size | 裁剪图像大小 |
model_choice | 模型的选择,可选U-net、deeplabv3+ |
in_channels | 输入图像通道数,RGB图像为3,灰度图为1 |
out_channels | 输出标签类别,本项目中为6 |
num_epochs | 训练总轮次 |
auto_save | 自动保存权值的间隔轮次 |
lr | 学习率 |
device | 训练使用的环境,当cuda可用时自动设为cuda,否则自动设为cpu |
predict模块
predict模块只是浅测一下模型的精度和效果,如果需要应用可以调用predict函数进行预测并与实际应用结合
函数
函数 | 作用 |
---|---|
label2image | 数值标签转换成RGB标签 |
predict | 单张图片的预测 |
read_voc_images | 读取图片 |
plotPredictAns | 画出测试结果 |
参数
参数 | 作用 |
---|---|
voc_dir | 测试数据的路径 |
means | 图像均值 |
stds | 图像方差 |
device | 训练使用的环境,当cuda可用时自动设为cuda,否则自动设为cpu |
batch_size | 批量大小 |
model_choice | 模型的选择,可选U-net、deeplabv3+ |
下载地址
GitHub下载地址:Semantic-segmentation-for-aerial
详细讲解
语义分割项目(一)——数据概况及预处理
语义分割项目(二)——标签转换与数据加载
语义分割项目(三)——语义分割模型(U-net和deeplavb3+)
语义分割项目(四)——模型训练与预测
pytorch深度学习案例(二)——航拍街道语义分割相关推荐
- Pytorch深度学习实战教程:UNet语义分割网络
1 前言 本文属于Pytorch深度学习语义分割系列教程. 该系列文章的内容有: Pytorch的基本使用 语义分割算法讲解 本文的开发环境如下: 开发环境:Windows 开发语言:Python3. ...
- 深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果(计算机视觉)
大家好,我是微学AI,今天给大家带来深度学习实战23(进阶版)-语义分割实战,实现人物图像抠图的效果.语义分割是计算机视觉中的一项重要任务,其目标是将图像中的每个像素都分配一个语义类别标签.与传统的目 ...
- AI深度学习入门与实战19 语义分割:打造简单高效的人像分割模型
上一讲,我向你介绍了语义分割的原理.在理解上一课时中 U-Net 语义分割网络的基础上,这一讲,让我们来实际构建一个人像分割模型吧. 语义分割的评估 我们先简单回顾一下语义分割的目的:把一张图中的每一 ...
- 深度学习100问:图像语义分割有哪些经典的上采样方法?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 大家都知道目前主流的语义分割模型都是编码-解码框架的.通过编码器不 ...
- 了解图像分割的深度学习技术(2019年语义分割论文综述)
论文名称:Understanding Deep Learning Techniques for Image Segmentation 论文链接:https://arxiv.org/abs/1907.0 ...
- Pytorch 深度学习实战教程(二):UNet语义分割网络
本文 GitHub https://github.com/Jack-Cherish/PythonPark 已收录,有技术干货文章,整理的学习资料,一线大厂面试经验分享等,欢迎 Star 和 完善. 一 ...
- Pytorch深度学习实战教程(二):UNet语义分割网络
1 前言 本文属于Pytorch深度学习语义分割系列教程. 该系列文章的内容有: Pytorch的基本使用 语义分割算法讲解 如果不了解语义分割原理以及开发环境的搭建,请看该系列教程的上一篇文章< ...
- 基于PyTorch深度学习无人机遥感影像目标检测、地物分类及语义分割
随着无人机自动化能力的逐步升级,它被广泛的应用于多种领域,如航拍.农业.植保.灾难评估.救援.测绘.电力巡检等.但同时由于无人机飞行高度低.获取目标类型多.以及环境复杂等因素使得对无人机获取的数据处理 ...
- 【Pytorch深度学习实践】B站up刘二大人之BasicCNN Advanced CNN -代码理解与实现(9/9)
这是刘二大人系列课程笔记的 最后一个笔记了,介绍的是 BasicCNN 和 AdvancedCNN ,我做图像,所以后面的RNN我可能暂时不会花时间去了解了: 写在前面: 本节把基础个高级CNN放在一 ...
最新文章
- 中国商业航天单轮最大融资!星际荣耀B轮获投11.925亿
- localdatetime获得时间搓_得用户者得天下,一禅小和尚×往事若茶如何获得消费者认同...
- 关于我转生变成史莱姆这档事
- Tomcat : IOException while loading persisted sessions: java.io.EOFException
- 哥谈的是语言,不是寂寞
- markdown 提示文本_【文本编辑01】MarkdownPad安装及基本配置
- 研发管理系统选型必读
- 将域名从易名中国(www.ename.cn)转移到中国万网(www.net.cn)
- 高质量论文配图配色,让你的图更加亮眼
- 虚拟服务器443端口开启,服务器开启443端口
- PPT——地图快速获取(各地区域)
- 【大学物理·早期量子论和量子力学基础】量子力学中的氢原子问题
- Juniper路由器基本命令及中文解
- 为什么raw图是绿色的?
- JavaScript学习过程
- 论文阅读笔记:vTPM
- JAVA科学计数法,金额数字,转换为中文大写字
- java版wifi下载电脑版_360wifi下载
- OA系统开发人事模块关于请假跨月的处理
- usb3.0 ssd 测试软件,Msata SSD转USB3.0的盘盒不完全测试
热门文章
- ROC/AUC曲线学习及Python实现
- js html转pdf并在线浏览器,Egg + Puppeteer 实现Html转PDF
- DoDataExchange(CDataExchange *pDX)
- Php实现rdp协议,RDPY - Twisted Python 实现的RDP协议(Windows 远程桌面)
- Python 爬虫速成教程,还有35个实战项目送给你
- H5移动端适配 rem 和 vw 的区别
- 一诺万金智慧物业大脑平台
- web前端开发职业培训,前端应届生如何做一个职业规划
- 图书分类怎么写用php,PHP开发简单图书后台管理系统实现图书统计
- stringstream的使用方法