深度学习pytorch——天气识别

 项目背景

        日常生活中人类的各种活动都与天气现象息息相关,天气现象的实时自动识别在自动驾驶,智慧交通,智能监控等方面都具有重要的研究价值和广阔的应用前景.近年来,随着深度学习在机器视觉领域的迅速发展,由于卷积神经网络能够提取天气图像中丰富,抽象,深层次的语义信息,本文基于深度学习对天气现象识别算法进行研究.针对目前天气现象识别方法存在的挑战和问题,本文的主要研究工作如下:(1)本文构建了一个含有更多类别的六类天气图像数据库(Weather Dataset-6),并且通过Cycle GAN对数据集进行扩展,获得Weather Dataset-6Plus,极大增加了天气图像数据集规模,实现天气图像数据的多样性及分布平衡性,提高天气识别模型的普适性和泛化能力.(2)本文基于经典CNN模型和迁移学习方法提出了一种三通道融合卷积神经网络(3C-CNN)模型算法用于天气现象识别,采用三个不同的CNN分支分别提取天气图像的天空特征,地面特征以及全局特征,并通过Concatenate函数将提取到的各个区域上的天气特征进行融合,最后通过Softmax分类器进行天气图像识别与分类。该模型同时具有很高的天气识别准确率和较快的识别速度,此外3C-CNN模型的参数数量与模型大小相对较小,基本可以满足大多数移动和嵌入式终端设备上天气现象的实时识别,具有很强的实用价值。

 一、前期准备

语言环境:Python3.8以上
● 编辑器:jupyter notebook
● 学习环境:Pytorch11.7 

● 数据:飞桨Ai Studio

深度学习环境:TensorFlow2

1、导入依赖项和设置GPU

判断当前设备是否支持CUDA(即GPU加速),如果支持则使用CUDA,否则使用CPU。

import torch
import torch.nn as nn
import torchvision.transforms as transforms
from torchvision import transforms, datasets
import os,PIL,pathlib
  • torch是PyTorch的核心库
  • torch.nn是神经网络模块,包括定义各种神经网络层和激活函数
  • PIL(Python Imaging Library)是Python的一个图像处理库3、查看数据集
  • os是Python中的一个操作系统接口模块,可以处理文件和目录
# 没有GPU使用CPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
device(type='cuda')
 2、导入数据

定义数据所在文件夹的路径,将数据所在文件夹的路径转换为pathlib.Path对象,方便后续处理。获取数据文件夹中所有文件的路径,将数据文件夹中的所有类别名称提取出来,['cloudy', 'rain', 'shine', 'sunrise'] ,存储在classeNames列表中。使用了列表解析式,遍历data_paths中的每个文件路径,将其转换为字符串类型并使用split()方法将其按照“\\”分隔,然后取得分隔后的第4个元素(从0开始计数),即类别名称。最后将类别名称存储在classeNames列表中。

import os,PIL,random,pathlib

data_dir = 'E:/深度学习/数据集/weather_photos'
data_dir = pathlib.Path(data_dir)

data_paths = list(data_dir.glob('*'))
classeNames = [str(path).split("\\")[4] for path in data_paths]
classeNames

我们可以通过classeNames输出数据集的标签。标签将按字母顺序对应于目录名称。 

 

 3、查看数据集 

数据集一共分为cloudyrainshinesunrise四类,分别存放于weather_photos文件夹中以各自名字命名的子文件夹中。

查看多少图片

image_count = len(list(data_dir
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值