目錄
前言
設(shè)計(jì)思路
一、課題背景與意義
二、算法理論原理
2.1 YOLOv5算法
2.2 改進(jìn)后的YOLOv5算法
三、鋰電池缺陷檢測(cè)的實(shí)現(xiàn)
3.1 數(shù)據(jù)集
3.2 網(wǎng)絡(luò)訓(xùn)練
3.3 網(wǎng)絡(luò)性能分析
實(shí)現(xiàn)效果圖樣例
最后
前言
? ? ? ???大四是整個(gè)大學(xué)期間最忙碌的時(shí)光,一邊要忙著備考或?qū)嵙?xí)為畢業(yè)后面臨的就業(yè)升學(xué)做準(zhǔn)備,一邊要為畢業(yè)設(shè)計(jì)耗費(fèi)大量精力。近幾年各個(gè)學(xué)校要求的畢設(shè)項(xiàng)目越來(lái)越難,有不少課題是研究生級(jí)別難度的,對(duì)本科同學(xué)來(lái)說(shuō)是充滿(mǎn)挑戰(zhàn)。為幫助大家順利通過(guò)和節(jié)省時(shí)間與精力投入到更重要的就業(yè)和考試中去,學(xué)長(zhǎng)分享優(yōu)質(zhì)的選題經(jīng)驗(yàn)和畢設(shè)項(xiàng)目與技術(shù)思路。
? ? ? ????對(duì)畢設(shè)有任何疑問(wèn)都可以問(wèn)學(xué)長(zhǎng)哦!
? ? ? ? ?選題指導(dǎo):
? ? ? ? 最新最全計(jì)算機(jī)專(zhuān)業(yè)畢設(shè)選題精選推薦匯總
設(shè)計(jì)思路
一、課題背景與意義
? ? ? 鋰聚合物電池在新能源產(chǎn)業(yè)中被贊譽(yù)為"綠色皇上的明珠",它具備高安全性、高溫下正常工作和大功率充放電的三大特性。然而,作為鋰電池的重要組成部分,極片往往受到材料品質(zhì)和生產(chǎn)工藝的影響,容易出現(xiàn)涂敷層的孔洞、劃痕和漏金屬等缺陷。一旦出現(xiàn)這些缺陷,將嚴(yán)重影響鋰電池的成本、壽命和質(zhì)量,甚至可能導(dǎo)致安全隱患。目前,工業(yè)表面缺陷檢測(cè)主要基于傳統(tǒng)的數(shù)字圖像處理方法,高度依賴(lài)操作人員的專(zhuān)業(yè)知識(shí),并且特征提取過(guò)程復(fù)雜。因此,采用神經(jīng)網(wǎng)絡(luò)對(duì)極片缺陷進(jìn)行檢測(cè)成為新的研究方向。
二、算法理論原理
2.1 YOLOv5算法
? ? ? YOLOv5是YOLO系列模型的最新版本,基于YOLOv4進(jìn)行了進(jìn)一步的優(yōu)化,并提供了YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四種模型。YOLOv5s是四種模型中寬度和深度最小的模型,而其他三種模型隨著深度增加,平均精度(Average Precision, AP)和速度也相應(yīng)提高。
? ? ? ?YOLOv5模型結(jié)構(gòu)分為Input、Backbone、Neck和Head四個(gè)部分。Input部分實(shí)現(xiàn)了數(shù)據(jù)增強(qiáng)、圖像尺寸處理和自適應(yīng)計(jì)算錨框等功能。數(shù)據(jù)增強(qiáng)對(duì)四張圖片進(jìn)行隨機(jī)裁剪、排列和縮放處理,并進(jìn)行拼接,以解決數(shù)據(jù)量不足導(dǎo)致的耦合問(wèn)題,同時(shí)提高對(duì)小目標(biāo)的檢測(cè)效果。Backbone是一個(gè)性能良好的分類(lèi)器,由三個(gè)模塊組成,用于提取通用特征。Neck通過(guò)一系列混合和組合圖像特征的網(wǎng)絡(luò)層,將圖像特征傳遞給輸出端。Head采用GIOU函數(shù)作為邊界框的損失函數(shù),生成邊界框并預(yù)測(cè)類(lèi)別,完成預(yù)測(cè)任務(wù),并記錄缺陷的位置和類(lèi)別。
2.2 改進(jìn)后的YOLOv5算法
? ? ? ?為了解決YOLOv5模型在采樣時(shí)對(duì)小型目標(biāo)容易丟失且容易受到背景干擾的缺點(diǎn),引入了注意力機(jī)制,以關(guān)注需要定位的內(nèi)容,并探索注意力機(jī)制對(duì)模型性能的優(yōu)化。采用了卷積注意力模塊(CBAM),它集成了時(shí)間和空間兩個(gè)映射過(guò)程,并采用混合型注意力機(jī)制,以獲取更多的特征信息。
? ? ? ?CBAM模塊包含通道(Channel)和空間(Spatial)兩個(gè)子模塊。輸入特征圖先后經(jīng)過(guò)這兩個(gè)子模塊的處理,在深度網(wǎng)絡(luò)的每個(gè)卷積塊上得到完善的特征圖。
? ? ? ?給定一個(gè)尺寸為F' = Mc(F) ? F的輸入特征圖F' = Mc(F) ? F,CBAM按順序推導(dǎo)出一個(gè)尺寸為F' = Mc(F) ? F的一維特征圖F' = Mc(F) ? F和一個(gè)尺寸為F' = Mc(F) ? F的二維特征圖F' = Mc(F) ? F。整個(gè)注意力過(guò)程可以總結(jié)如下。
? ? ? CBAM模塊中每個(gè)注意力子模塊的框圖。通道子模塊利用最大池化(MaxPool)和全局平均池化(AvgPool)輸出一個(gè)共享網(wǎng)絡(luò)。空間子模塊利用類(lèi)似的方法,在沿通道軸匯集的兩個(gè)輸出上進(jìn)行操作,并將它們傳遞到卷積層。
? ? ? ?CBAM首先通過(guò)MaxPool和AvgPool來(lái)聚合特征圖的空間信息,計(jì)算出兩個(gè)空間描述符:Fc_avg和Fc_max。這兩個(gè)描述符分別表示對(duì)應(yīng)通道特征圖。然后將這兩個(gè)描述符傳入一個(gè)共享網(wǎng)絡(luò),該網(wǎng)絡(luò)是一個(gè)具有隱藏層的多層感知器(MLP)。最后,使用元素求和的方法輸出特征向量。
三、鋰電池缺陷檢測(cè)的實(shí)現(xiàn)
3.1 數(shù)據(jù)集
? ? ? ?在鋰電池極片的生產(chǎn)過(guò)程中,常常會(huì)出現(xiàn)孔洞、漏金屬、劃痕等缺陷。這些缺陷如圖4所示。為了針對(duì)這類(lèi)缺陷,我們自己制作了鋰電池極片數(shù)據(jù)集,數(shù)據(jù)集包含了三類(lèi)缺陷圖片,每類(lèi)缺陷有1,000張圖片。我們隨機(jī)選擇了訓(xùn)練集和測(cè)試集,比例為8:2。對(duì)于圖中的缺陷,我們使用LabelImg軟件進(jìn)行標(biāo)注。
3.2 網(wǎng)絡(luò)訓(xùn)練
? ? ? ?在Windows 10操作系統(tǒng)上,使用的CPU型號(hào)是Intel(R) Core(TM) i7-10500 CPU @ 2.9 GHz,GPU型號(hào)是Nvidia GeForce GTX1080。該YOLOv5實(shí)驗(yàn)采用了Tensorflow深度學(xué)習(xí)框架,編程語(yǔ)言為Python,用于實(shí)現(xiàn)鋰電池極片的檢測(cè)訓(xùn)練和測(cè)試。
? ? ? ?模型的準(zhǔn)確性評(píng)價(jià)使用召回率R、精確率P、平均精度AP和平均精度均值mAP進(jìn)行衡量,具體定義如下:
? ? ? ?兩個(gè)訓(xùn)練模型使用相同的數(shù)據(jù)集和設(shè)備參數(shù)。下圖展示了YOLOv5s模型和改進(jìn)后的YOLOv5-CE模型在進(jìn)行了300輪訓(xùn)練后的目標(biāo)檢測(cè)損失(obj_loss)曲線(xiàn)對(duì)比。黃色曲線(xiàn)表示改進(jìn)前的模型曲線(xiàn),黑色曲線(xiàn)表示改進(jìn)后的YOLOv5-CE模型??梢杂^察到,相比YOLOv5s模型,YOLOv5-CE模型的收斂速度更快且損失值更小。這表明改進(jìn)后的YOLOv5網(wǎng)絡(luò)模型增強(qiáng)了網(wǎng)絡(luò)的收斂能力。
3.3 網(wǎng)絡(luò)性能分析
? ? ? ?通過(guò)與其他網(wǎng)絡(luò)模型進(jìn)行對(duì)比實(shí)驗(yàn),可以更好地展示改進(jìn)模型的優(yōu)勢(shì)。在該實(shí)驗(yàn)中,我們將YOLOv5-CE與Faster-RCNN、SSD、YOLOv3、YOLOv5s和YOLOv5m模型進(jìn)行對(duì)比。所有模型都使用相同的極片數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試,并以平均精度均值mAP和召回率Recall作為評(píng)價(jià)標(biāo)準(zhǔn)。
? ? ? ?此外,網(wǎng)絡(luò)模型訓(xùn)練的mAP曲線(xiàn)如圖所示。
部分代碼如下:
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)
# 添加注意力機(jī)制
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)
# 應(yīng)用注意力機(jī)制
x = self.attention(x)
x = self.conv(x)
x = x.view(x.size(0), -1)
x = self.fc(x)
return x
創(chuàng)作不易,歡迎點(diǎn)贊、關(guān)注、收藏。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-771807.html
畢設(shè)幫助,疑難解答,歡迎打擾!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-771807.html
最后
到了這里,關(guān)于畢業(yè)設(shè)計(jì)-基于深度學(xué)習(xí)的鋰電池極片缺陷檢測(cè)算法 YOLO python 卷積神經(jīng)網(wǎng)絡(luò) 人工智能的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!