pytorch深度学习案例(二)——航拍街道语义分割

Python高级编程 07-图像语义分割 图像语义分割 传统的语义分割 大多都是基于像素的分割,由于是对像素变化敏感,所以分割出来的效果往往与人眼所判断出来的效果有很大的不同。 SuperPixel 将像素按特性(如颜色或纹理等)划分到不同的块中,这个块就叫超像素。 通过对超像素的特征提取进而能实现识别。同时降低了运行时间。 传统图像分割问题 基于图像的语义分割 思路:“编码——解码” 编码:使用CNN将图像映射到特征空间,激活情况标志着“这里是什么” 解码:将低分辨率的特征图映射回原图尺寸,为每个像素标记一个类别 典型方法:U-Net U- 阅读详情

数据集

使用的数据集是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进行语义分割的实验。 1.什么是语义分割? 语义分割是一项图像分析任务,我们将图像中的每个像素分类为对应的类。 这类似于我们人类在默认情况下一直在做的事情。每当我们看到某些画面时,我们都会尝试“分割”图像的哪一部分属于哪个类/标签/类别。 从本质上讲,语义分割是我们可以在计算机中实现这一点的技术。 您可以在我们关于图像分割的帖子中阅读更多关于分割的内容。 这篇文章... 阅读详情

相关推荐

【计算机视觉40例】案例23:语义分割

《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。...

计算机视觉之光 1494

使用神经网络(ICNet)对航拍图片(遥感图像)进行图像语义分割+膨胀预测后处理优化(数据集+代码+最终训练模型)

所有代码,数据集和模型下载地址:https://github.com/wangye707/ICNet-paddlepaddle 本博客主要做部分内容讲解 1.数据集介绍以及预处理 1.1数据集介绍 上图中左侧为航拍原图,右侧为标签(类别标签 像素值分别为 0,1,2,3,4,所以人的肉眼不能够分辨出区别,本文对标签进行可 视化处理 (实际训练中不做可视化处理),植被用绿色,道路用黑色,建筑用灰色, 水体用蓝色,以及其背景用白色标注) 1.2图片裁剪、镜像和旋转 裁剪: 镜像和选装: .

懒骨头707 1万+

AI城市规划实战:从大数据到15分钟生活圈落地

城市智能规划是融合地理信息系统、时空大数据与可解释AI的城市治理新范式,其核心在于将模糊的经验判断转化为可验证、可迭代的量化决策证据链。通过移动信令、POI、政务及IoT等多源数据融合建模,结合图神经网络(GNN)动态OD分析、PostGIS空间合规校验与SHAP可解释性输出,系统支撑交通流量预测、公共设施选址、用地优化等关键任务。技术价值不仅体现于模型精度,更在于驱动规划流程从‘经验驱动’转向‘证据驱动’,实现如‘15分钟社区生活圈’这类法定指标的精准评估与闭环优化。本文聚焦真实项目中数据清洗、模型泛化与

weixin_30839881的博客 453

使用U-Net方法对航空图像进行语义分割

在机器学习中,模型是在各种应用中训练的,特别是在深度学习和图像数据集上。基于卷积运算的方法在许多领域都进行了研究,尤其是手臂检测、自动驾驶汽车、无人机航拍图像、战争技术。人眼能够很容易地对所看到的进行分类和区分。然而,在人工智能技术中,这种能力的等价物,即理解图像的问题,属于计算机视觉领域。顾名思义,计算机视觉是以计算机可以理解的方式引入(分类)图像,下一步是使用不同的方法对这些图像进行操作。本文...

深度学习与计算机视觉 1706

遥感AI如何实现像素到地理坐标的端到端落地

地理空间机器学习(Geospatial ML)是将图像识别能力升级为真实世界定位能力的关键技术路径。其核心原理在于打破传统计算机视觉的‘像素封闭链路’,让坐标系、投影变换、空间先验等地理要素深度融入数据预处理、模型输入与矢量输出全环节。该技术显著提升遥感解译结果的GIS可用性与业务交付效率,广泛应用于自然资源监测、城市规划、农业管理等需精准空间决策的场景。本文聚焦‘Geospatial Data’与‘Machine Learning’的工程级耦合实践,详解从带地理参考的影像加载、经纬度通道嵌入,到OGC标准

abo1977的博客 428

【2019-TGRS】Aerial LaneNet: Lane-Marking Semantic Segmentation in Aerial Imagery Using Wavelet-Enhanc

创新点:1.建立了航片路面标志数据集2.在不同步骤中将输入图像的离散小波变换插入到FCNNs中来保存高频信息(包括标线),从而专注于小尺寸车道标记不足:分析:积结论:SOTA、end-to-end、pixels-to-pixels。

qq_273058791的博客 612

无人机高分辨率街景语义分割数据集 深度学习框架如何训练无人机这个无人机航拍街景语义分割数据集

无人机高分辨率街景语义分割数据集 深度学习框架如何训练无人机这个无人机航拍街景语义分割数据集

2401_88440984的博客 1103

PyTorch(1.3.0+):基于UNet和camvid数据集的道路分割

背景 语义分割是深度学习中的一个非常重要的研究方向,并且UNet是语义分割中一个非常经典的模型。在本次博客中,我尝试用UNet对camvid dataset数据集进行道路分割,大致期望的效果如下: 原图 道路分割效果 本博客的代码参考了以下链接: https://github.com/milesial/Pytorch-UNet https://github.com/qubvel/segment...

Yan 1万+

无人机高分辨率街景语义分割数据集 深度学习框架unet模型如何训练无人机这个无人机航拍街景语义分割数据集

无人机高分辨率街景语义分割数据集 深度学习框架如何训练无人机这个无人机航拍街景语义分割数据集

2401_88441190的博客 411

Python 深度学习实战:图像分割

1.背景介绍 1.1 什么是图像分割? 图像分割(Image Segmentation)是将连续的像素值区域划分成多个不同语义且具有相似外观、形状或功能的区域,称为语义分割。它的主要应用场景是对图像进行计算机视觉分析、自动目标检测、机器人导航等任务。图像分割是一个旷日持久的话题,它从深度学习、图像处理

AI天才研究院 755

使用语义分割进行图像前景后景分离处理

在我们以前的文章中,我们学习了什么是语义分割,以及如何在PyTorch中使用DeepLabv3来获得图像中检测到的对象的RGB掩码。即我们将图像中的对象标识出来。 虽然语义分割是很酷,但让我们看看如何在一些现实世界的应用程序中使用语义分割的处理结果。 在这篇文章中,我们将在torchvision中使用DeepLabv3制作以下应用程序。 1、去掉背景 2、改变背景 3、模糊背景 4、背景灰度化 如果您没有阅读我们以前关于使用torchvision进行语义分割的帖子,请最好先阅读下,因为我们将修改该帖子中使用的一些方法,并跳过该帖子中包含的一些详细注解信息。 1、删除背景 让我们选择一个真实的应

基于Pytorch实现的图像分割算法: DeepLabV3+

图像分割可以算是图像处理领域最重要的几个问题之一了。随着自动驾驶,广告推荐,手机照片处理,知识图谱等智能应用的快速普及,基于语义分析的图像分割、理解与识别变得越来越重要。近年来比较热的视觉领域工作,很大比重是围绕如何使用大规模数据,结合结构优良的深度网络模型,实现图像分割计算。今天,我们就来学习一项该领域的著名工作(DeepLabV3+)。

2万+

Open5GS实战:从零搭建树莓派5G核心网并与商用终端联调

本文详细介绍了如何在树莓派5上从零开始搭建基于Open5GS的5G核心网,涵盖系统准备、依赖安装、源码编译、关键配置修改及服务启动全流程。通过整合SDR基站与商用终端进行端到端联调,为开发者和研究者提供了一个低成本、可实践的5G网络实验平台,助力物联网与边缘计算应用的本地化测试与验证。

weixin_29194255的博客 160

Udacity机器人软件工程师课程笔记(三十) - 语义分割与实例实现 - 使用keras实现语义分割

语义分割 1.语义分割介绍 计算机视觉与机器学习研究者对图像语义分割问题越来越感兴趣。越来越多的应用场景需要精确且高效的分割技术,如自动驾驶、室内导航、甚至虚拟现实与增强现实等。这个需求与视觉相关的各个领域及应用场景下的深度学习技术的发展相符合,包括语义分割及场景理解等… 更多可以参考语义分割概述. 在这个项目中,我们将训练一个深度神经网络,以从Quadcoptor模拟器生成的图像中识别目标人...

Stan_Fu的博客 1368

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3942

华为2288H-V5服务器做raid的详细步骤

华为2288H-V5服务器做RAID

qq_50263172的博客 6万+

【Python&语义分割】Segment Anything(SAM)模型详细使用教程+代码解释(一)

Segment Anything可以实现对任意物体的识别和分割提供了简单易用的接口,用户只需要通过提示,即可进行物体识别和分割操作,今天给大家分享一下SAM的源码。

Remote Sensing迷途小书童 2万+

静态时序分析(Static Timing Analysis, STA):简介及内容导航

静态时序分析(简称STA)是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一,简单来说,时序分析的目的就是为了解决设计中的各种时序问题。STA被称为静态的原因是其对于设计的分析是静态地执行的,并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激。

Starry__的博客 1992

道路场景语义分割综述_王飞龙

挖坑:暂时还没有理解的定义或者方法,但因为暂时不重要留到后面看 论文结构 一、引言 1、道路场景语义分割定义 针对道路场景进行语义分割是对采集到的道路场景图像中的每个像素都划分到对应的类别,实现道路场景图像在像素级别上的分类。 2、道路场景语义分割面临的挑战 精确性 首先要克服不同目标对象的相异性和相似目标对象的相似性;其次还要注意分割对象所处场景的复 杂性; 最后一些外界因素如光照,拍摄条件、 拍摄设备和拍摄距离的不同也会使得目标物体与图片上差异较 大,进而影响分割的效果 实时性 二、图像

qq_42138662的博客 8727

231003-四步MacOS-iPadOS设置无线竖屏随航SideCar

新建虚拟屏幕参考文献。

专注机器学习之路 7487

【OS】AUTOSAR架构下MCAL Modules软件分区问题分析

AUTOSAR架构下MCAL Modules软件分区问题分析

qq_36056498的博客 939

基于深度学习的语义分割教程(含python代码)

目录一、遥感数据介绍二、代码实现1、UNet网络2、数据集划分3、超参数设置4、数据加载5、训练6、结果出图三、项目代码 2、数据集划分 指定训练集、验证集、测试集的大小 3、超参数设置 4、数据加载 支持多波段数据,支持tif、png、jpg等格式。定义数据后缀即可 5、训练 数据预测结果由于训练次数少,使用的数据仅为20个用于测试,因此精度较低,结果不太理想。有需要的可以自行增加数据和迭代次数。由于网络使用的0,1,2,3的但波段灰度标签。如果我们是RGB色彩的三波

知识搬运者 3356

HTML小游戏20 —— html5版开心斗地主小游戏(附完整源码)

100个H5游戏专栏🎮 目前已有100+小游戏,源码在持续更新中,前100位订阅限时优惠,先到先得。🐬 订阅专栏后可阅读100个HTML小游戏文章;还可私聊进前端/游戏制作学习交流群;领取一百个小游戏源码。在线演示地址:源码也可在文末进行获取。

前端好玩的小案例、游戏、工具 1万+

Python图像处理:3.七种图像分割方法

用通俗的比喻解释图像分割的一些专业术语,传统的四种分割方法:阈值分割、边缘检测、区域增长、分水岭,基于深度学习的三种方法:U-Net, Mask R-CNN, DeepLab。

qq_53529450的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Pytorch实现图像语义分割(初体验)

这些天在学习图像语义分割相关的知识,并简单写了篇。原本想先看几篇经典论文,如全卷积网络,奈何英语水平有限,翻译起来实在费劲。想来不如先直接体验一下语义分割的效果,果然实践起来还挺有趣的。遂将过程记录如下。

Daybreak's blog 675

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: pytorch零基础实现语义分割项目(四)——模型训练与预测
下一篇: 计算机失去竞争力了吗?(23普本计算机现状)
艾醒(AiXing-w)
艾醒(AiXing-w) 2021年度博客之星AI领域top5 2021年度博客之星AI领域top5
博客等级 码龄7年 1万+粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾醒(AiXing-w)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值