当前位置: 首页 > news >正文

深圳建设信息网站完成一个个人主页网站的制作

深圳建设信息网站,完成一个个人主页网站的制作,公司开发个网站怎么做,巨量引擎大家好#xff0c;我是微学AI#xff0c;今天给大家介绍一下计算机视觉的应用19-基于pytorch框架搭建卷积神经网络CNN的卫星地图分类问题实战应用。随着遥感技术和卫星图像获取能力的快速发展#xff0c;卫星图像分类任务成为了计算机视觉研究中一个重要的挑战。为了促进这一…大家好我是微学AI今天给大家介绍一下计算机视觉的应用19-基于pytorch框架搭建卷积神经网络CNN的卫星地图分类问题实战应用。随着遥感技术和卫星图像获取能力的快速发展卫星图像分类任务成为了计算机视觉研究中一个重要的挑战。为了促进这一领域的研究进展卫星图像分类问题数应运而生。本文将详细介绍遥感卫星图片分类项目包括其背景、卫星图像分类数据集构建流程、数据集特点以及在卫星图像分类任务中的应用。 一、项目说明 随着城市化和环境监测需求的增加卫星图像分类成为了很多应用场景中的核心任务。然而由于数据集的有限性和复杂性导致该任务的挑战性提高。为了解决这个问题EuroSAT项目被启动旨在创建一个大规模、多类别的卫星图像数据集以推动卫星图像分类算法的发展。 二、数据集构建流程 EuroSAT数据集的构建过程主要分为以下几个步骤 1数据采集从欧洲空间局ESA的Sentinel-2卫星获取高分辨率的多光谱卫星图像。 2数据预处理对采集到的原始图像进行预处理包括遥感图像纠正、边缘对齐和亮度调整等。 3样本选择根据地理标签和类别信息选择合适的区域作为样本并手动标注每个样本的类别标签。 4数据增强通过旋转、平移、缩放等变换方式对每个样本进行数据增强扩充数据集规模和多样性。 5数据集划分将数据集划分为训练集、验证集和测试集保证数据集的随机性和可比性。 三、数据集特点 EuroSAT数据集具有以下显著特点 1多类别EuroSAT包含13个不同的土地覆盖类别例如城市、森林、河流、田地等。 2高分辨率所有图像都经过高分辨率处理有助于提取更多细节和特征。 3多样性数据集中包含了不同季节、不同天气条件下的卫星图像增加了数据集的多样性。 4大规模EuroSAT数据集共包含27,000张卫星图像使得算法可以进行更全面的训练和评估。 四、卫星图像分类任务中的应用 EuroSAT数据集在卫星图像分类任务中具有广泛的应用包括但不限于以下几个领域 1土地覆盖变化监测通过对卫星图像进行分类和分析可以实时监测土地覆盖的变化情况为城市规划、环境保护等提供支持。 2灾害监测与评估通过对不同地区的卫星图像进行分类可以及时发现并评估灾害事件为救援工作提供有效指导。 3农业管理和产量预测通过对农田卫星图像进行分类可以监测农作物的生长情况预测产量优化农业管理策略。 五、遥感卫星地图数据加载 下面我将加载EuroSAT数据集(卫星图像分类数据集)EuroSAT数据集下载地址https://madm.dfki.de/files/sentinel/EuroSAT.zip import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms import matplotlib.pyplot as plt import numpy as np from torch.utils.data import DataLoader from torchvision.datasets import ImageFolder import random from torch.utils.data import Subset# 图片展示函数 def imshow(img):img img / 2 0.5 # 反归一化npimg img.numpy()plt.imshow(np.transpose(npimg, (1, 2, 0)))plt.show()# 定义图像转换操作 trans transforms.Compose([transforms.Resize((64, 64)),transforms.ToTensor(), # 转换为张量transforms.Normalize(mean[0.5, 0.5, 0.5], std[0.5, 0.5, 0.5]) # 归一化 ])# 加载数据集 dataset ImageFolder(root./data/EuroSAT/2750, transformtrans)# 类别标签 classes dataset.classes print(len(classes))# 设置随机种子确保每次划分结果一致 random.seed(42)# 计算划分的样本数量 dataset_len len(dataset) train_len int(0.7 * dataset_len) val_len int(0.2 * dataset_len) test_len dataset_len - train_len - val_len# 创建索引列表 indices list(range(dataset_len)) random.shuffle(indices)# 划分数据集 train_indices indices[:train_len] val_indices indices[train_len:train_lenval_len] test_indices indices[train_lenval_len:]# 创建子集 train_dataset Subset(dataset, train_indices) val_dataset Subset(dataset, val_indices) test_dataset Subset(dataset, test_indices)# 创建数据加载器 train_dataloader DataLoader(train_dataset, batch_size64, shuffleTrue) val_dataloader DataLoader(val_dataset, batch_size64, shuffleFalse) test_dataloader DataLoader(test_dataset, batch_size64, shuffleFalse)六、基于pytorch框架的遥感卫星地图分类模型构建 class CNNnet(nn.Module):def __init__(self):super(CNNnet, self).__init__()self.conv1 nn.Conv2d(3,32,3,1)self.conv2 nn.Conv2d(32,32,3,1)self.pool nn.MaxPool2d(2,2)self.relu nn.ReLU()self.dropout nn.Dropout(0.25)self.fc nn.Linear(6272,len(classes))def forward(self,x):x self.conv1(x)x self.pool(x)x self.conv2(x)x self.pool(x)x self.relu(x)x self.dropout(x)x x.view(x.size(0),-1)xself.fc(x)return x七、模型训练 models CNNnet() optimizer torch.optim.Adam(models.parameters(),lr0.001) criterion nn.CrossEntropyLoss()for epoch in range(10):train_total 0train_correct 0train_loss_total 0.0val_total 0val_correct 0val_loss_total 0.0# 训练集for datas, label in train_dataloader:optimizer.zero_grad()outs models(datas)loss criterion(outs, label)loss.backward()optimizer.step()_, pred torch.max(outs, 1)train_total label.size(0)train_correct (pred label).sum().item()train_loss_total loss.item()train_loss_avg train_loss_total / len(train_dataloader)train_acc train_correct / train_total# 验证集models.eval() # 设置为评估模式不进行反向传播with torch.no_grad():for datas, label in val_dataloader:outs models(datas)loss criterion(outs, label)_, pred torch.max(outs, 1)val_total label.size(0)val_correct (pred label).sum().item()val_loss_total loss.item()val_loss_avg val_loss_total / len(val_dataloader)val_acc val_correct / val_totalprint(fEpoch: {epoch1})print(fTrain Loss: {train_loss_avg}, Train Accuracy: {train_acc})print(fValidation Loss: {val_loss_avg}, Validation Accuracy: {val_acc})八、模型保存与加载 这里我们采用torch.jit方式进行存储直接保存Torch Script 格式 torch.jit.save(torch.jit.script(models), model.pt) loaded_model torch.jit.load(model.pt)以上torch.jit.save 是 PyTorch 中用于将模型保存为 Torch Script 格式的函数。Torch Script 是一种中间表示法它可以将 PyTorch 模型序列化并保存到磁盘上以便后续在不需要原始模型定义的情况下加载和执行模型。 models 是已经训练好的模型实torch.jit.script 用于将模型转换为 Torch Script 形式这样它就可以被保存到磁盘并加载回来进行预测。 ‘model.pt’ 是要保存模型的文件路径和名称。你可以根据需要更改文件名和路径。 采用torch.jit.save(torch.jit.script(models), ‘model.pt’) 的作用是将经过转换为 Torch Script 的模型保存到名为 ‘model.pt’ 的文件中。 运行结果 Epoch: 1 Train Loss: 1.0448811401587885, Train Accuracy: 0.6264550264550265 Validation Loss: 0.7070850253105163, Validation Accuracy: 0.7627777777777778 Epoch: 2 Train Loss: 0.692695257228774, Train Accuracy: 0.7563492063492063 Validation Loss: 0.6866358742994421, Validation Accuracy: 0.7483333333333333 Epoch: 3 Train Loss: 0.5860184832803301, Train Accuracy: 0.7971428571428572 Validation Loss: 0.5635017317884109, Validation Accuracy: 0.8048148148148148 Epoch: 4 Train Loss: 0.537103551213403, Train Accuracy: 0.8129100529100529 Validation Loss: 0.5531797622933107, Validation Accuracy: 0.8101851851851852 Epoch: 5 Train Loss: 0.4707282580233909, Train Accuracy: 0.8357671957671957 Validation Loss: 0.5103719413280488, Validation Accuracy: 0.8185185185185185 Epoch: 6 Train Loss: 0.4517604966421385, Train Accuracy: 0.8439682539682539 Validation Loss: 0.5074160200708052, Validation Accuracy: 0.8285185185185185 Epoch: 7 Train Loss: 0.4016518093444206, Train Accuracy: 0.8625925925925926 Validation Loss: 0.5236595521954929, Validation Accuracy: 0.8137037037037037 Epoch: 8 Train Loss: 0.37693205440567956, Train Accuracy: 0.8712698412698413 Validation Loss: 0.5407256515587078, Validation Accuracy: 0.8312962962962963 Epoch: 9 Train Loss: 0.33328121374487074, Train Accuracy: 0.8876190476190476 Validation Loss: 0.5358928382396698, Validation Accuracy: 0.8262962962962963 Epoch: 10 Train Loss: 0.31978219168613087, Train Accuracy: 0.8924867724867724 Validation Loss: 0.525197943168528, Validation Accuracy: 0.8322222222222222结论 396698, Validation Accuracy: 0.8262962962962963 Epoch: 10 Train Loss: 0.31978219168613087, Train Accuracy: 0.8924867724867724 Validation Loss: 0.525197943168528, Validation Accuracy: 0.8322222222222222 # 九、结论 本项目是基于遥感卫星地图分类数据集做的卫星图像分类任务为卫星图像分类任务提供了一个重要的基准推动了该领域的研究进展。其多样性、多类别和大规模的特点使得EuroSAT成为了一个广受关注的数据集。未来我们可以期待更多基于EuroSAT数据集的算法和应用的涌现进一步推动卫星图像分类技术的发展。
http://www.w-s-a.com/news/198149/

相关文章:

  • 船员专用网站开发建议wordpress 图片占用id
  • 桌面软件开发跟网站开发那个上海网站备案在哪里查询
  • 罗湖网站建设陕西省建设网官网住房和城乡厅官网
  • 做一个网站的详细教学wordpress 忘记用户名密码
  • 建设银行的网站是多少wordpress添加新页面跳转
  • 网站设计费用抓取网站访客qq号码
  • 驾校视频网站模板郑州网站建设价格
  • 上海 有哪些做网站的公司成都企业网站备案流程
  • 移动端快速建站的方法青海公司网站建设
  • 网站重新搭建程序要多少钱移动互联网应用的使用情况
  • 学建站论坛给别人做网站怎么赚钱吗
  • 响应式网站代码校友会网站建设的目的
  • 北京公司网站网站建设html模板
  • 专门做医疗器械的网站免费网页制作系统团队
  • 网站开发技术 html临夏网站建设
  • flash网站模板免费下载拍卖网站开发多少钱
  • 北京网站建设制作颍州网站建设
  • 网站制作报价表做网站上海公司
  • 简洁大气蓝色文章资讯网站百度搜索广告推广
  • 河南建设工程协会网站网站收银系统建设
  • 网站制作 服务企业网站案例展示
  • 咸宁网站建设wordpress手动降级
  • 昆明做网站建设怎么样做网站赚钱全攻略
  • 企业网站建设实战教程微信如何注册小程序
  • 做一件代发网站百度seo服务
  • 小说网站开发 公司可以做行程的网站
  • 古交市网站建设公司apk连接wordpress
  • 网页 网 址网站区别wordpress菜单居右
  • 网站建设搭建运营一台云服务器做多个网站
  • 用php做网站用什么框架推广网站推荐