目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:
设计思路
一、课题背景与意义
锂聚合物电池在新能源产业中被赞誉为"绿色皇上的明珠",它具备高安全性、高温下正常工作和大功率充放电的三大特性。然而,作为锂电池的重要组成部分,极片往往受到材料品质和生产工艺的影响,容易出现涂敷层的孔洞、划痕和漏金属等缺陷。一旦出现这些缺陷,将严重影响锂电池的成本、寿命和质量,甚至可能导致安全隐患。目前,工业表面缺陷检测主要基于传统的数字图像处理方法,高度依赖操作人员的专业知识,并且特征提取过程复杂。因此,采用神经网络对极片缺陷进行检测成为新的研究方向。
二、算法理论原理
2.1 YOLOv5算法
YOLOv5是YOLO系列模型的最新版本,基于YOLOv4进行了进一步的优化,并提供了YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四种模型。YOLOv5s是四种模型中宽度和深度最小的模型,而其他三种模型随着深度增加,平均精度(Average Precision, AP)和速度也相应提高。
YOLOv5模型结构分为Input、Backbone、Neck和Head四个部分。Input部分实现了数据增强、图像尺寸处理和自适应计算锚框等功能。数据增强对四张图片进行随机裁剪、排列和缩放处理,并进行拼接,以解决数据量不足导致的耦合问题,同时提高对小目标的检测效果。Backbone是一个性能良好的分类器,由三个模块组成,用于提取通用特征。Neck通过一系列混合和组合图像特征的网络层,将图像特征传递给输出端。Head采用GIOU函数作为边界框的损失函数,生成边界框并预测类别,完成预测任务,并记录缺陷的位置和类别。
2.2 改进后的YOLOv5算法
为了解决YOLOv5模型在采样时对小型目标容易丢失且容易受到背景干扰的缺点,引入了注意力机制,以关注需要定位的内容,并探索注意力机制对模型性能的优化。采用了卷积注意力模块(CBAM),它集成了时间和空间两个映射过程,并采用混合型注意力机制,以获取更多的特征信息。
CBAM模块包含通道(Channel)和空间(Spatial)两个子模块。输入特征图先后经过这两个子模块的处理,在深度网络的每个卷积块上得到完善的特征图。
给定一个尺寸为F' = Mc(F) ⊗ F的输入特征图F' = Mc(F) ⊗ F,CBAM按顺序推导出一个尺寸为F' = Mc(F) ⊗ F的一维特征图F' = Mc(F) ⊗ F和一个尺寸为F' = Mc(F) ⊗ F的二维特征图F' = Mc(F) ⊗ F。整个注意力过程可以总结如下。
CBAM模块中每个注意力子模块的框图。通道子模块利用最大池化(MaxPool)和全局平均池化(AvgPool)输出一个共享网络。空间子模块利用类似的方法,在沿通道轴汇集的两个输出上进行操作,并将它们传递到卷积层。
CBAM首先通过MaxPool和AvgPool来聚合特征图的空间信息,计算出两个空间描述符:Fc_avg和Fc_max。这两个描述符分别表示对应通道特征图。然后将这两个描述符传入一个共享网络,该网络是一个具有隐藏层的多层感知器(MLP)。最后,使用元素求和的方法输出特征向量。
三、锂电池缺陷检测的实现
3.1 数据集
在锂电池极片的生产过程中,常常会出现孔洞、漏金属、划痕等缺陷。这些缺陷如图4所示。为了针对这类缺陷,我们自己制作了锂电池极片数据集,数据集包含了三类缺陷图片,每类缺陷有1,000张图片。我们随机选择了训练集和测试集,比例为8:2。对于图中的缺陷,我们使用LabelImg软件进行标注。
3.2 网络训练
在Windows 10操作系统上,使用的CPU型号是Intel(R) Core(TM) i7-10500 CPU @ 2.9 GHz,GPU型号是Nvidia GeForce GTX1080。该YOLOv5实验采用了Tensorflow深度学习框架,编程语言为Python,用于实现锂电池极片的检测训练和测试。
模型的准确性评价使用召回率R、精确率P、平均精度AP和平均精度均值mAP进行衡量,具体定义如下:
两个训练模型使用相同的数据集和设备参数。下图展示了YOLOv5s模型和改进后的YOLOv5-CE模型在进行了300轮训练后的目标检测损失(obj_loss)曲线对比。黄色曲线表示改进前的模型曲线,黑色曲线表示改进后的YOLOv5-CE模型。可以观察到,相比YOLOv5s模型,YOLOv5-CE模型的收敛速度更快且损失值更小。这表明改进后的YOLOv5网络模型增强了网络的收敛能力。
3.3 网络性能分析
通过与其他网络模型进行对比实验,可以更好地展示改进模型的优势。在该实验中,我们将YOLOv5-CE与Faster-RCNN、SSD、YOLOv3、YOLOv5s和YOLOv5m模型进行对比。所有模型都使用相同的极片数据集进行训练和测试,并以平均精度均值mAP和召回率Recall作为评价标准。
此外,网络模型训练的mAP曲线如图所示。
部分代码如下:
def forward(self, x):
residual = x
x = self.conv1(x)
x = self.conv2(x)
x = self.sigmoid(x)
x = x * residual
return x
class YOLOv5WithAttention(nn.Module):
def __init__(self, num_classes):
super(YOLOv5WithAttention, self).__init__()
self.backbone = resnet50(pretrained=True)
# 添加注意力机制
self.attention = AttentionModule(2048)
self.conv = Conv(2048, 256, kernel_size=1)
self.fc = nn.Linear(256 * 7 * 7, num_classes)
def forward(self, x):
x = self.backbone(x)
# 应用注意力机制
x = self.attention(x)
x = self.conv(x)
x = x.view(x.size(0), -1)
x = self.fc(x)
return x
创作不易,欢迎点赞、关注、收藏。
毕设帮助,疑难解答,欢迎打扰!