APP下载

基于改进CNN的太阳能板遮挡物分类研究

2023-12-10史新科杨成佳李丽新

吉林建筑大学学报 2023年5期
关键词:太阳能损失准确率

史新科,杨成佳,李丽新

吉林建筑大学 电气与计算机学院,长春 130118

我国西北地区的太阳能发电站分布广泛,太阳能板长期在外暴露,部分太阳能板上附着泥沙、鸟粪等遮挡物,长期遮挡会导致太阳能板产生热斑效应,损坏太阳能电池组件.针对此问题,国内外学者进行了相关研究.对于光伏组件红外图像故障检测学习效率低、运行速度慢等问题,提出一种改进InceptionV3网络的故障分类方法[1].基于无人机光伏组件可见光图像采集,提出一种基于Mask-RCNN迁移学习的光伏组件鸟粪检测方法[2].利用热成像技术研究和分析不同故障类型的光伏组件热图像特征,并利用人工神经网络对光伏组件故障进行分类[3].人工维护太阳能板效率低,为了提高维护效率,本文以卷积神经网络算法为理论基础,通过改进Resnet34网络结构来分类太阳能板遮挡物,提高了模型的泛化能力与准确率,有较好的分类效果.

1 改进CNN算法原理

卷积神经网络(Convolutional neural networks,简写CNN)最大的特点就是加入了卷积的计算,CNN拥有深层的前向反馈神经网络结构,是深度学习领域的典型代表[4].CNN中Resnet结构的最大优点是可以搭建突破1 000层以上的模型结构,且在模型的基础上增加了残差计算(Residual),残差的存在避免了模型在深层运算中梯度消失的情况.CNN由于其强大的学习能力,可以学习到适应不同问题的特征,具有很强的适应性[5].CNN一般由卷积计算层、激活函数计算层、池化下采样层、全连接处理层组成.在训练之前需将数据集分为训练集和验证集,每个训练集与验证集都会有分类标签,训练方法为监督学习.首先对图像进行预处理,然后图像的每个像素点通过卷积核计算得出每张图像的特征,通过损失值不断更新模型的权重参数,保留准确率最高的一组权重参数,最后利用权重参数分类图像.

1.1 激活函数的改进

在卷积神经网络结构中,Relu激活函数是多数神经网络的首要选择,该函数计算简单、收敛速度快,有利于反向传播的计算.但是Relu函数在训练过程中遇到x<0的情况时,输出的梯度会为0,这样就导致当负梯度出现时,梯度被置零.如果发生梯度被置零的情况,之后的运算中神经元的梯度仍然为0,相当于神经元被杀死,一些数据在之后的运算中就会停止更新.所以,改进神经网络用PRelu做激活函数,在几乎没有增加额外参数的前提下既提升了模型的拟合能力,又减小了过拟合的风险,允许了负梯度的存在,提升了网络的泛化性能.PRelu函数的计算公式如下:

(1)

式中,a为一个可学习的参数,控制负半轴的斜率,这里取a=0.01.

1.2 Dropout层与损失函数的选择

改进Resnet34神经网络中添加了Dropout层,避免了过拟合的情况.Dropout函数中参数P值设置为0.3,这意味着在全连接层中每个神经元有30 %的概率被杀死,在模型进行反向传播时,被杀死的神经元不参与参数的更新.在学习率优化算法的选择中,选择了Adam优化器,该优化器有计算高效、实现简单、消耗内存小等优点,而且能自动实现步长退火的过程,自动调整学习率.Adam默认的初始步长为0.001,第一个动量的衰减因子为0.9,无穷大范数的衰减因子为0.999.本文选择交叉熵损失(Cross entropy loss)作为模型的损失函数,该函数的梯度很大,可以加快模型的优化速度.交叉熵损失函数的公式为:

(2)

式中,N为图像样本的数量;M为遮挡物类别的数量;yij为第i个样本第j个类别的真实概率值;Pij为第i个样本第j个类别的预测概率值.

1.3 CNN算法的一般步骤

(1) 建立训练集与验证集并进行图像预处理.

(2) 加载Image net迁移学习预训练模型.

(3) 分批次输入图像数据.

(4) 卷积核对图像的特征进行逐一提炼与映射.

(5) 激活函数层增加非线性映射.

(6) 池化层进行下采样计算,稀疏处理特征图,减少运算量.

(7) 全连接层对图像特征做加权和,减少图像特征信息的损失,输出每个类别的概率.

(8) 交叉熵损失计算,判断实际结果与期望结果的拟合程度.

(9) 反向传播,根据损失更新模型的权重参数.

(10) 输出模型的权重参数.

2 改进CNN算法的训练与优化

2.1 改进Resnet34模型的训练

实验的运行环境为Python3.10版本,使用Pytorch搭建卷积神经网络结构,操作系统为Windows10,主机CPU为I5-7300HQ.将太阳能板遮挡物数据集分为两个集,一个为训练数据集,占总样本数的70 %,一个为验证数据集,占总样本数的30 %.CNN算法的训练流程为:使用迁移学习的方法来训练模型,将Image net中已经训练好的权重参数模型迁移到太阳能板遮挡物分类模型中做预训练.由于数据量不大,使用迁移学习的方法可以帮助模型快速收敛,增加了模型的准确率.在训练集中随机输入Batch尺寸数量的图像做训练,使用Adam学习率优化器来实时地调整学习率参数,使学习率参数随Epoch的改变而改变.Epoch设置为15,训练模块运算之后,通过验证模块验证模型的准确率.

2.2 学习率的优化

在Adam优化器中,模型的效果由学习率参数决定,较大的学习率会导致模型长时间不收敛,较小的学习率会导致模型的收敛速度变慢.Adam优化器的默认学习率为0.001,在Batch参数设置为16的时候,比较学习率为0.001,0.000 1,0.000 01时模型准确率与损失.图1为学习率参数大小对模型准确率与损失的影响曲线.由图1可以清楚地看到,学习率为0.001,0.000 01时模型的准确率和损失收敛速度比较慢,而且会出现不收敛的情况,损失值较大.所以,将学习率设置为0.000 1,模型的收敛速度会更快且损失较小、准确率较高.

图1 学习率对损失和准确率的影响

2.3 Batch的优化

Batch的大小对模型的影响小于学习率对模型的影响,但为了训练效果更好,需对Batch的大小做优化[6].上述实验确定了学习率设置在0.000 1时模型的效果最好,所以在该学习率下对Batch大小为8,16,24,32时的模型效果做测试,效果如图2所示.

图2 Batch对损失和准确率的影响

由图2可知,Batch为8和24时模型的损失不收敛且损失值较大,Batch为16,32时收敛快且损失小.虽然Batch为8时模型的准确率收敛很快,但是随着迭代次数的增加,准确率波动较大.Batch为32时模型的收敛速度快且损失较小、准确率较高.综合上述分析,最终选择模型的Batch大小为32来做分批次训练.

3 改进CNN算法在太阳能板遮挡物分类中的实现

3.1 图像数据扩充与预处理

本文的分类对象是太阳能板遮挡物,主要以植物遮挡、动物粪便遮挡、泥沙石头遮挡作为分类对象.在内蒙古五原县联星村采集了100张不同类型的太阳能板遮挡物样本,100张图像样本中,植物遮挡物30张,石头泥沙遮挡物20张,动物粪便遮挡物30张,无遮挡太阳能板样本20张.利用Python预装的Pillow图像处理包扩充样本,处理内容包括图像反转、图像旋转、图像平移及亮度、色度、对比度、锐度调整等,经过图像扩充后的数据集样本增加了10倍.在模型训练之前,数据集的图像要经过预处理,调用Torch Vision工具包对遮挡物图像做随机裁剪、缩放、翻转处理,最后图像要经过归一化处理,有利于之后模型的运算.

3.2 算法的实现

实验采用1 000张太阳能板遮挡物图像数据集训练改进Resnet34模型.数据集分为训练集700张,验证集300张,迭代次数为15次.经过上述实验,使用迁移学习模型选取最优参数,学习率和Batch大小分别取0.000 1和32.改进Resnet34模型对图像数据进行如下操作:

(1) 图像数据经预处理后,变为224×224×3通道.

(2) 经过卷积大小为7×7,步长为2的卷积计算,卷积层输出112×112大小,64通道的特征图.

(3) BN层将特征图像像素点变为标准差为零,均值为一的高斯分布,加快模型的收敛速度.

(4) 经过卷积核为3×3的最大池化(Max pool)下采样,输出56×56×64通道的特征图.

(5) 经过48个卷积计算与16个残差计算后,输出7×7×2 048通道的特征图.

(6) 经过平均池化(Avg pool)下采样,输出1×1×2 048通道的特征图.

(7) 经过2 048×4的全连接层处理(4代表类别数量),输出1×1×2 048通道的特征图.

(8) 经过Softmax概率归一函数将4类太阳能板遮挡物类型对应的概率值输出,得出分类结果.

3.3 结果分析

在训练好的模型上验证准确率与得分.300个植物类遮挡物中有10个分类错误,错误率较高,但这类遮挡物难以长期附着在太阳能板上,对太阳能板影响不大.300个动物粪便遮挡物中有9个分类错误.动物粪便体积较小时,在检测过程中出现无法检测出的情况,模型将图像误分类为太阳能板无遮挡物,错误率为3.05 %.上述两类遮挡物的错误率相对较高,但是分类的总体准确率达到了97.65 %,说明改进Resnet34卷积神经网络分类准确率较高,分类结果见表1.总体上分类结果符合预期,能够准确地分类遮挡物.图3为随机抽取9张不同类型遮挡物可视化的分类结果.图4为程序运行之后的分类结果.

表1 1 000张不同类型遮挡物的分类结果

图4 程序运行结果

4 结论

本文提出了一种基于改进Resnet34模型对太阳能板遮挡物进行分类.以动物粪便、植物、石头泥沙作为分类对象,搭建数据集,以Pytorch工具为基础,在经典Resnet34模型的全连接层中增加了Dropout并将激活函数改进为PRelu,很好地解决了传统模型在训练过程中出现的特征丢失问题,用迁移学习的方法预训练模型,使用Adam优化算法,在每次迭代之后调整模型的学习率.实验证明,将学习率调整为0.000 1,Batch大小调整为32时,模型可以取得较高的准确率与较快的收敛速度.改进Resnet34模型的总体准确率达到了97.65 %,相较经典Resnet34模型提高了1.43 %,并且在一定程度上降低了过拟合风险,提升了网络的泛化能力.实验验证了改进Resnet34模型性能的优越性,可以对不同类型的太阳能板遮挡物进行分类.

猜你喜欢

太阳能损失准确率
应用广泛的太阳能无人机
胖胖损失了多少元
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
玉米抽穗前倒伏怎么办?怎么减少损失?
高速公路车牌识别标识站准确率验证法
太阳能可以这样玩
太阳能虚拟窗
一般自由碰撞的最大动能损失