1. 引言
随着全球对可再生能源发展的迅速。光伏电池因具有可持续的能源发展方式,使其在全球范围内都具有很高的热度,产量逐年升高,生产运输过程中出现缺陷的概率也随之提高,电池缺陷的产量增加导致系统工作效率大幅度降低,伴随的是产量的提升没有使系统的发电效率有很明显的提高。
深度学习在图像分类领域开发前,光伏电池缺陷分类方法大多数是依据人的视觉进行识别,这种方式的弊端也很明显,首先,工作人员会因为长时间重复工作而引起视觉疲劳;其次,人的视觉在识别光伏电池是否有缺陷时,思考的时间要比计算机思考的时间久;最后,因为有些缺陷很相似,会导致工作人员进行模糊判断,不仅会影响准确度,还会使光伏电池进行返厂维修时因缺陷的不同增加维修时间。随着光伏产业的迅速发展,光伏电池的产量随着需求量的增加而增多,人工的视觉分类方法很明显无法满足大规模生产需求。
近些年,图像分类技术在深度学习的领域上也有所研究,并取得显著成效。可通过深度学习在缺陷的图像上训练分类模型,将训练好的模型应用到光伏电池缺陷分类上,可高效率、高准确率的对缺陷进行识别。
在深度学习的研究和应用中,选择合适的网络模型对于解决特定的问题至关重要。尤其在光伏电池缺陷分类等视觉识别任务中,模型的选择直接影响到分类的准确性和效率。本文旨在通过对比实验,探究不同的深度网络模型在光伏电池缺陷分类任务上的表现。本文对ResNet-18 [1]、ResNet-34 [1]、ResNet-50 [1]和VGG-16 [2]四种模型在输出层和归一化层进行了针对性改进,并通过模型的准确率、损失函数、收敛速度等多个维度进行比较分析,以找出最适合光伏电池缺陷分类任务的网络模型。应用在光伏电池缺陷图像上,实现自主分类和识别,有效的解决了在光伏电池大量生产的情况下,缺陷增多使分类任务量增加而导致的效率低下问题,并大大减少了缺陷的光伏电池流入市场的可能。
2. 总体方案设计
首先要收集光伏电池的图像数据,包括正常和各种缺陷的图像,下一步对收集到的光伏电池图像进行标注,包括正常和不同类型缺陷的图像,例如:裂纹、黒芯、短路、断栅和碎片等。因为收集到部分缺陷的图像数量较少,需要通过数据增强(亮度增强、变暗、旋转和翻转等)的方式来扩充数据集的数量,防止模型出现过拟合,提高其泛化能力。将扩充好的缺陷图像数据集按照4:1的比例分为训练集和测试集,为了改善图像数据,使其更适合后续模型分类任务,需要对训练集和测试集进行预处理,其中训练集里的缺陷图像首先进行随机裁剪为224 × 224尺寸的图像,其次,将其转换转化成Pytorch的张量(Tensor格式),最后进行归一化处理。而测试集预处理需要将图像缩放为256 × 256尺寸、对256 × 256尺寸的图像进行中心裁剪(尺寸为224 × 224),最后进行归一化处理。
本文选择了ResNet-18、ResNet-34、ResNet-50和VGG-16四种不同的深度学习模型作为研究对象,并对这四种模型的输出层和归一化层进行针对性的修改。提出改进的网络模型,旨在优化光伏电池缺陷分类的性能。再将训练好的模型作为特征提取器,用于Softmax分类器进行分类任务,最后将每一种深度卷积神经网络模型通过准确率、召回率和损失函数等指标对比分析得到较好的模型用于对光伏电池缺陷图像进行分类。
3. 改进优化的网络模型
3.1. 网络结构微调
3.1.1. VGGNet结构微调
本文采用的模型之一——VGG-16模型,为了提高此模型的准确度和收敛速度,更好的与光伏电池缺陷图像数据进行适配,对其输出层的结构进行微调。
VGG-16模型包括5部分特征提取层和输出层(包括全连接层和Softmax分类激活函数),其中特征提取层的每部分结束,都会经过一次最大池化层进行下采样,再经过拉伸操作得到的数据流与4096个神经元进行相连,最后通过Softmax分类操作将其输出为1000个类别结果,其结构如图1所示。
Figure 1. VGG-16 output layer structure
图1. VGG-16输出层结构图
本文的分类结果共有8类,由7类光伏电池缺陷以及正常组成。因此,将网络的最后一层Fc1000删除,并用一个8分类的Softmax分类器对其进行替代,改进后的网络模型如图2所示。
Figure 2. Improved VGG-16 model
图2. 改进后的VGG-16模型
3.1.2. ResNet结构微调
本文应用了ResNet网络中的三个模型(ResNet-18、ResNet-34和ResNet-50)。以ResNet-18为例进行说明,模型包括5部分特征提取层、全连接层和Softmax分类激活函数,其中特征提取层的每部分都有若干个参差块结构组成,最后经过平均池化层进行下采样,将数据流从7 × 7 × 512转变为1*1*512结构,再经过拉伸操作得到的数据流与512个神经元进行相连,最后通过Softmax分类操作将其输出为1000个类别结果,其输出层结构如图3所示。
Figure 3. ResNet-18 output layer structure
图3. ResNet-18输出层结构图
运用一个8分类的Softmax分类器对Fc1000进行替代,改进后的网络模型如图4所示。
Figure 4. Improved ResNet-18 model
图4. 改进后的ResNet-18模型
3.2. 改进网络归一化层
在深度学习中,层数不断增加的情况下,上层接收数据的分布会受到低层参数的影响。这种现象,经过多个层的累积作用,会使得网络顶层面对的输入数据分布发生显著的变动。网络的高层需要不断适应来自底层参数变化引起的输入分布的波动,这个过程会显著减缓网络整体的学习进度。因此,引入了归一化策略,其核心思想是通过将输入数据的分布规范到一个特定的范围内,来稳定每一层的输入分布。这样做可以减少输入分布变动对网络的影响,进而提高网络学习的效率。在神经网络中,广泛采用的归一化技术包括实例归一化(Instance Normalization, IN) [3]、层归一化(Layer Normalization, LN) [4]和批归一化(Batch Normalization, BN) [5]。
在经典的残差网络设计中,批归一化(BN)被广泛应用于卷积层后。然而BN的效果受到Batch大小的影响较大,主要是因为它在计算数据的均值和方差时依赖于批量内的样本。在小批量数据的情况下,得到的统计量可能无法准确反映整体数据分布,从而影响BN的性能。所以本文采用自适配归一化(Switchable Normalization, SN) [6]。SN融合了批归一化、层归一化(LN)和实例归一化(IN)的特点,能够独立于批量大小,在各种不同Batch大小下保持性能稳定。此外,考虑到网络中不同层承担的功能各异,输出SN归一化后的像素值为
,SN的计算公式如(1)所示。
(1)
公式(1)与IN、LN和BN的定义相似。其中γ和β分别为尺度因子和平移因子,是两个可以进行学习的训练参数,ε是一个极小值,用于避免产生分母为0错误计算,集合定义为
,
和
为相应统计量对应的权重系数,均值的加权系数
的计算公式如(2)所示。
(2)
其中
为IN、LN和BN归一化方法集合,
为控制参数,在反向传播时对其优化学习。本章改进的残差块结构如图5所示。
Figure 5. Improved residuals block structure diagram
图5. 改进的残差块结构图
3.3. 优化网络性能
学习率在随机梯度下降算法是影响神经网络训练效果的关键因素之一。设置过高的学习率可能导致网络在寻找最优解的过程中步长过大,使得损失函数值出现震荡,有可能错过最佳解。反之,设置为过低的学习率可能致使网络参数更新缓慢,增加训练时间。因此,应采用先快后慢的策略来实现最优化,在训练初期应设置较高学习率来加快收敛速度,随着训练时间的增加,逐渐降低学习率,以实现更精细的权重调整,帮助模型更接近最优解。本文的学习策略为等间隔调整学习函数(StepLR)。
本文的Epoch为30,根据官方在StepLR情况下Epoch为30时,初始学习率(lr)为0.005。其次本文学习率下降间隔(Step_Size)设置为5,调整倍数(Gamma)为0.5,即,每5个Epoch学习率下降为之前的一半,随着网络的迭代学习率逐步衰减,最终收敛到7.813e−5。
4. 实验结果及分析
4.1. 实验设置
4.1.1. 实验环境
Table 1. Experimental platform software environment configuration table
表1. 实验平台软件环境配置表
环境 |
配置 |
参数 |
|
Windows版本 |
Windows 11 |
软件环境 |
Python版本 |
Python 3.9.5 |
续表
|
深度学习框架 |
PyTorch 1.13.1 |
|
库 |
CUDA 11.6 |
为了验证本文提出的光伏电池缺陷分类方法的有效性,仿真实验所使用的计算机软硬件配置如表1、2所示。
Table 2. Experimental platform hardware environment configuration table
表2. 实验平台硬件环境配置表
环境 |
配置 |
参数 |
|
CPU |
Intel (R) Core (TM) i7-10875H |
硬件环境 |
GPU |
Geforce RTX 2060 |
|
内存大小 |
16GB |
4.1.2. 实验参数设置
为了保证模型达到最优,对实验的超参数进行预设,迭代次数、批量处理大小、优化器和学习率等参数设置如表3所示。
Table 3. Experimental parameter setting table
表3. 实验参数设置表
名称 |
参数 |
Epoch |
30 |
Batch SizeOptimizere |
20Adam [7] |
初始学习率 |
0.005 |
4.2. 数据集的构建
4.2.1. 数据集的采集
实验使用的图像数据来源于两个部分,一部分来自河北工业大学、北京航空航天大学联合发布的——PVE-LD数据集,另一部分则是在网站上进行爬取获得。最终选取7类较为常见的光伏电池缺陷和1类无缺陷的图像数据构建数据集,在构建的数据集中随机选取的图像示例如图6所示。
Figure 6. Image example
图6. 图像示例
4.2.2. 数据增强
在构建的数据集时,由于缺陷数据的稀缺性,光伏电池缺陷图像数据量较小,正常图像和缺陷图像数量差距非常大,不仅如此,由于光伏电池有些缺陷出现的概率相比其他缺陷类型而言出现的概率更低,所以各个缺陷类别之间的图像数量差距也会严重失调,导致在训练模型时出现过拟合的情况,加大了模型训练的难度。在各类别图像数量比例严重失调的情况下,将训练好的模型用于分类任务,可能会出现分类结果更偏向图像数据量较大的类别,降低模型分类的准度。因此数据增强在本次光伏电池的缺陷分类任务当中是尤为关键的。
本文将缺陷图像数据集采用数据增强的方式,涵盖了亮度增强、旋转和翻转。数据增强前的图像数量如图7所示,经过数据增强后的图像数量如图8所示。增强后的图像示例如表4所示。
Figure 7. The amount of image data before data enhancement
图7. 数据增强前的图像数据量
Figure 8. The amount of data after data enhancement
图8. 数据增强后的数据量
Table 4. Example of an enhanced image
表4. 增强后的图像示例
类别 |
原始图像 |
亮度增强 |
水平翻转 |
旋转90° |
碎片 |
|
|
|
|
续表
4.2.3. 训练集和测试集的分配
进行模型训练时需要将数据集划分为训练集和测试集,比例为4:1,训练集和测试集中各类缺陷图像数量如图9所示,数据增强后,保证了每种缺陷不会因为训练数据过少导致最终模型检测效果不好。
Figure 9. The number of images for each training set and test set
图9. 各类别训练集和测试集的图像数量
4.3. 不同网络模型对比实验及分析
4.3.1. 实验结果分析
在相同实验条件下,通过改进后的ResNet-18、ResNet-34、ResNet-50和VGG-16四种网络模型训练,将不同模型的准确率、收敛速度和召回率等多个维度进行记录,得到以下实验结果。
1) VGG-16网络模型
Figure 10. Evaluation index of VGG-16 network model
图10. VGG-16网络模型的评价指标
VGG-16网络模型的评价指标如图10所示,测试集的准确率、损失函数、召回率等指标在抵达次数达到869次时,出现明显的尖点,是因为本文使用了学习策略为等间隔调整学习函数(StepLR),学习率每5次Epoch下降至之前的一般,根据本文的Batch Size为20,训练集图像数量为3444,所以当迭代次数为860次左右时会使学习率突然下降,VGG-16模型需要一些迭代来适应新的学习率,最终回归正确的趋势走向。随着迭代次数的增加,VGG-16模型的准确率逐步增加,损失函数逐步减少。
2) ResNet-18网络模型
Figure 11. Evaluation index of ResNet-18 network model
图11. ResNet-18网络模型的评价指标
ResNet-18网络模型的评价指标如图11所示,测试集的准确率在迭代次数达到700次左右趋于平稳,损失函数在迭代次数达到3300次左右趋于平稳,且具有较好的收敛精度以及准确度。
3) ResNet-34网络模型
Figure 12. Evaluation index of ResNet-34 network model
图12. ResNet-34网络模型的评价指标
ResNet-34网络模型的评价指标如图12所示,测试集中准确率、F1和损失函数等指标两次出现明显的尖点,与VGG-16训练模型的原因一致,分别在迭代次数为860左右和1700左右出现学习率突然降低的情况,使得ResNet-34模型需要一些迭代来适应新的学习率,最终回归正确的趋势走向。测试集的准确率在迭代次数达到2200次左右趋于平稳,损失函数在迭代次数达到3500次左右趋于平稳,且具有较好的收敛精度以及准确度。
4) ResNet-50网络模型
Figure 13. Evaluation index of ResNet-50 network model
图13. ResNet-50网络模型的评价指标
ResNet-50网络模型的评价指标如图13所示,测试集中准确率和损失函数等指标出现尖点的位置在不同的迭代次数处,与本文其他训练模型出现尖点的原因不同,ResNet-50模型容量很大,而数据集相对此模型来说较小,出现过拟合,导致训练过程中准确率和损失函数等指标的波动。经过几次波动测试集的准确率和损失函数都是在迭代次数达到2800次左右趋于平稳,且具有较好的收敛精度以及准确度。
4.3.2. 对比试验分析
为了找出最适合光伏电池缺陷分类任务的网络模型。在相同实验条件下,将改进后的ResNet-18、ResNet-34、ResNet-50和VGG-16四种网络模型通过准确率、收敛速度和召回率等多个维度进行比较分析,比较这些模型在光伏电池缺陷分类任务上的效果。
Figure 14. Evaluation index of four kinds of network models
图14. 四种网络模型的评价指标
Table 5. Network model evaluation index specific data
表5. 网络模型评价指标具体数据
模型 |
准确率(Ac) |
损失函数 |
精确率(Pr) |
召回率(Re) |
F1 Score |
VGG-16 |
87.86% |
31.41% |
89.41% |
88.73% |
87.80% |
ResNet-18 |
96.97% |
12.05% |
97.88% |
96.74% |
97.20% |
ResNet-34 |
97.08% |
12.24% |
97.99% |
96.96% |
97.38% |
ResNet-50 |
97.08% |
12.51% |
98.19% |
97.01% |
97.50% |
四种网络模型的评价指标如图14所示,具体数据如表5所示。VGG-16模型在准确度以及损失函数等指标在其他模型中都不占据优势。ResNet-34模型相比其他模型具有较高的准确度以及较快的收敛速度,但是收敛过程中会因学习率下降而产生波动。ResNet-50模型虽然具有很高的准确度,但是在收敛过程中会出现过拟合现象。ResNet-18模型虽然在这几个模型中准确度不是最高的,但是也可以达到96.97%,且在收敛过程中不会出现明显的尖点,收敛速度较快且平稳。
以上结果表明,ResNet-18模型在光伏电池缺陷分类任务上具有显著的效果,是最适合光伏电池缺陷分类任务的网络模型。
4.3.3. 分类效果展示
运用选好的网络模型ResNet-18,进行分类效果的展示,如图15所示。
Figure 15. Example of classification effect
图15. 分类效果示例
5. 总结
通过对这四种模型的输出层和归一化层进行针对性的修改,本文提出了改进的网络模型,旨在优化光伏电池缺陷分类的性能。最后,我们基于一系列性能指标对四种模型进行了详细的对比分析。实验结果表明,虽然各模型均展现出了较高的分类性能,但最终选取ResNet-18作为光伏电池缺陷分类的优选模型。这一选择基于ResNet-18模型在准确率、训练效率和资源消耗等方面的综合表现。