目錄
前言
一、課題背景與意義
二、設計思路
2.1.多尺度特征融合
2.2 絕緣子缺陷檢測
三、模型訓練
3.1 實驗環(huán)境
3.2 結(jié)果分析
最后
前言
???大四是整個大學期間最忙碌的時光,一邊要忙著備考或?qū)嵙暈楫厴I(yè)后面臨的就業(yè)升學做準備,一邊要為畢業(yè)設計耗費大量精力。近幾年各個學校要求的畢設項目越來越難,有不少課題是研究生級別難度的,對本科同學來說是充滿挑戰(zhàn)。為幫助大家順利通過和節(jié)省時間與精力投入到更重要的就業(yè)和考試中去,學長分享優(yōu)質(zhì)的選題經(jīng)驗和畢設項目與技術思路。
? ? ? ????對畢設有任何疑問都可以問學長哦!
? ? ? ? ?選題指導:
? ? ? ? 最新最全計算機專業(yè)畢設選題精選推薦匯總
? ? ? ??大家好,這里是海浪學長畢設專題,本次分享的課題是
? ? ? ? ??基于深度學習的絕緣子缺陷檢測系統(tǒng)
一、課題背景與意義
??????? 隨著電力系統(tǒng)規(guī)模的不斷擴大,電力設備的智能運維得到廣泛關注。變電站作為電力系統(tǒng)的樞紐,在電能的傳輸與分配環(huán)節(jié)中發(fā)揮了重要作用,變電站中關鍵設備的運行狀態(tài)直接決定了電網(wǎng)的安全穩(wěn)定運行。絕緣子大多長時間暴露在戶外,往往容易出現(xiàn)破損、掉串、腐蝕等缺陷,絕緣子的絕緣強度將會下降。若不能及時發(fā)現(xiàn)此類缺陷而繼續(xù)帶電運行,極易發(fā)展為永久性故障,從而為電網(wǎng)安全穩(wěn)定運行帶來重大隱患,因此絕緣子是變電站日常維護工作中的重點巡檢對象。
二、設計思路
2.1.多尺度特征融合
??????? 多尺度特征融合網(wǎng)絡由特征提取網(wǎng)絡和特征融合網(wǎng)絡構成,其中特征融合網(wǎng)絡包含反卷積特征融合模塊和多分支檢測模塊,形成不對稱沙漏的網(wǎng)絡結(jié)構,并通過跨層連接實現(xiàn)多尺度特征融合。為適應巡檢圖像中不同尺寸和形狀的絕緣子缺陷,MSD2Net采用基于反卷積和多分支檢測的特征融合網(wǎng)絡。該網(wǎng)絡采用可學習的反卷積層自適應調(diào)整上采樣的參數(shù),實現(xiàn)跨特征層的信息交互,并通過多分支檢測結(jié)構分別進行目標分類和邊框位置回歸,可實現(xiàn)更好的檢測效果。
??????? SSD網(wǎng)絡將VGGNet提取的特征圖直接輸入檢測環(huán)節(jié),缺少特征融合操作。MSD2Net網(wǎng)絡通過反卷積特征融合模塊,將特征提取網(wǎng)絡的Conv3~Conv6的輸出特征圖分別跨層與同尺寸的反卷積層Deconv1~Deconv4輸出特征圖連接并融合,實現(xiàn)深層語義信息與淺層細節(jié)信息的交互,之后送入檢測環(huán)節(jié)。多尺度特征融合網(wǎng)絡采用反卷積代替?zhèn)鹘y(tǒng)的雙線性插值作為上采樣方法,能夠動態(tài)調(diào)整輸出特征。反卷積過程是先按照一定比例在尺寸為i的輸入特征圖中通過插入零值來擴大尺寸,再通過尺寸為k的卷積核處理獲得尺寸為o的輸出特征圖,從而實現(xiàn)從低分辨率到高分辨率的映射。
??????? 目標檢測網(wǎng)絡常選擇與標注框交并比最大的先驗框作為正樣本,而將IOU小于設定閾值的先驗框全部作為負樣本,正負樣本數(shù)量嚴重不平衡。交叉熵損失作為分類損失,大量的負樣本會淹沒正樣本的回歸過程,使網(wǎng)絡整體難以快速準確地擬合正樣本,影響檢測結(jié)果。
代碼如下(示例):
lass FocalLoss(nn.Module):
def __init__(self, alpha=0.25, gamma=2):
super(FocalLoss, self).__init__()
self.alpha = alpha
self.gamma = gamma
def forward(self, inputs, targets):
ce_loss = nn.CrossEntropyLoss(reduction='none')(inputs, targets)
pt = torch.exp(-ce_loss)
focal_loss = self.alpha * (1 - pt) ** self.gamma * ce_loss
return focal_loss.mean()
2.2 絕緣子缺陷檢測
??????? 在網(wǎng)絡檢測環(huán)節(jié),常用的非極大值抑制算法按置信度得分對檢測框進行排序,并保留得分最高的檢測框,同時篩除與該框的重疊面積(IOU)大于設定閾值的檢測框。然而,這種方法存在一個問題,即在重疊面積較大的情況下,其他檢測框可能會被錯誤刪除。為了解決這個問題,可以計算每個檢測框與最高得分框的IOU,并將其作為高斯函數(shù)的輸入,再與原始置信度得分相乘得到最終的分數(shù)。通過這種方式,與最高得分框重疊較大的檢測框的分數(shù)會下降更多。然后,可以刪除分數(shù)高于設定閾值的檢測框,從而緩解了與最高得分框有重疊部分的檢測框被錯誤刪除的問題。
?代碼如下(示例):?
def adjust_scores_with_iou(detection_boxes, detection_scores, iou_threshold):
# 根據(jù)IOU調(diào)整檢測框的分數(shù)的代碼
adjusted_scores = detection_scores.copy()
max_score_index = np.argmax(detection_scores)
for i in range(len(detection_boxes)):
if i == max_score_index:
continue
iou = calculate_iou(detection_boxes[i], detection_boxes[max_score_index])
adjusted_scores[i] *= np.exp(-iou / iou_threshold)
return adjusted_scores
def remove_boxes_with_high_scores(detection_boxes, detection_scores, score_threshold):
# 刪除分數(shù)高于閾值的檢測框的代碼
filtered_boxes = []
filtered_scores = []
for i in range(len(detection_boxes)):
if detection_scores[i] < score_threshold:
filtered_boxes.append(detection_boxes[i])
filtered_scores.append(detection_scores[i])
return filtered_boxes, filtered_scores
# 檢測框和置信度得分的初始化
detection_boxes = load_detection_boxes() # 加載檢測框數(shù)據(jù)
detection_scores = load_detection_scores() # 加載置信度得分數(shù)據(jù)
# 調(diào)整檢測框的分數(shù)
adjusted_scores = adjust_scores_with_iou(detection_boxes, detection_scores, iou_threshold)
# 刪除分數(shù)高于閾值的檢測框
filtered_boxes, filtered_scores = remove_boxes_with_high_scores(detection_boxes, adjusted_scores, score_threshold)
# 輸出結(jié)果
for i in range(len(filtered_boxes)):
print("Box:", filtered_boxes[i], "Score:", filtered_scores[i])
??????? 設計模型的主要目標是減少復雜背景的干擾,提高絕緣子缺陷檢測的精度,并解決缺乏樣本數(shù)量的問題。為此,作者構建了一個變電場景下的絕緣子缺陷數(shù)據(jù)集,包括不同場景的圖像樣本。在真實場景的變電巡檢圖片中,提取絕緣子串,并在提取后的圖像中批量生成模擬缺陷,以增加數(shù)據(jù)集的多樣性。為了避免圖像變形對檢測精度的影響,作者將提取出的絕緣子圖片劃分為正方形滑動窗口進行檢測,以原始圖片的短邊作為窗口的邊長。
??????? 在不同巡檢場景中的泛化性能,在公開的輸電場景數(shù)據(jù)集上進行了驗證。由于該數(shù)據(jù)集的絕緣子串形狀角度相似且缺陷位置單一且固定,樣本數(shù)量較少,容易導致網(wǎng)絡過擬合。因此,通過合成缺陷樣本對數(shù)據(jù)集進行增強。
?代碼如下(示例):
# 創(chuàng)建增強后的數(shù)據(jù)集
augmented_images = []
augmented_labels = []
# 對每個樣本進行合成缺陷樣本的增強
for i in range(len(dataset_images)):
image = dataset_images[i]
label = dataset_labels[i]
# 創(chuàng)建一個全黑的缺陷掩膜
defect_mask = np.zeros_like(image)
# 隨機選擇缺陷類型(比例根據(jù)實際需求進行調(diào)整)
defect_types = ['crack', 'contamination']
selected_defect_types = np.random.choice(defect_types, size=2, replace=False)
# 生成兩個合成缺陷樣本
for defect_type in selected_defect_types:
augmented_image = add_synthetic_defect(image, defect_mask.copy(), defect_type)
augmented_images.append(augmented_image)
augmented_labels.append(label)
# 將增強后的數(shù)據(jù)集與原始數(shù)據(jù)集合并
final_images = dataset_images + augmented_images
final_labels = dataset_labels + augmented_labels
三、模型訓練
3.1 實驗環(huán)境
??????? 為驗證本文算法的可行性,作者使用PyTorch 1.9.0深度學習框架、PyCharm 2020.3軟件和CUDA 11.2開發(fā)環(huán)境,在Ubuntu 20.04.2 LTS操作系統(tǒng)上進行了模型的訓練和測試。實驗硬件配置包括Intel Core i7-11700K 8核16線程的CPU和NVIDIA GeForce RTX-3070 GPU。
3.2 結(jié)果分析
??????? 測試實驗的評估指標包括每個類別的平均精度(AP)和所有類別的平均精度均值(mAP),用于評估檢測算法的準確率。
??????? 精度曲線是一種常見的評估模型性能的方式,它展示了模型在不同閾值下的準確率(Precision)和召回率(Recall)之間的關系。通過調(diào)整閾值,我們可以在準確率和召回率之間進行權衡。通常,我們可以通過繪制精度-召回率曲線或者繪制接收者操作特征曲線來進行模型性能的評估和比較。驗證集和測試集的精度曲線對比可以幫助我們評估模型的泛化能力,并為進一步改進和優(yōu)化模型提供指導。
??????? 在不同數(shù)量和不同拍攝角度的絕緣子片場景下,能夠有效地檢測出絕緣子和缺陷目標。與SSD網(wǎng)絡相比,所提出的網(wǎng)絡避免了漏檢、多檢和錯檢等問題,進一步驗證了算法的有效性。在復雜背景和目標尺寸差距較大的場景下仍然具有相對最高的檢測精度,并展現(xiàn)了較強的適應性。文章來源:http://www.zghlxwxcb.cn/news/detail-800254.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-800254.html
最后
到了這里,關于畢業(yè)設計:基于深度學習的絕緣子缺陷檢測系統(tǒng) 人工智能 YOLO 計算機視覺的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!