










摘 要:針對路面坑洼圖片進行圖像預處理,包括圖像裁剪、去噪和歸一化處理以及數據增強操作,以此提高模型的泛化能力并降低過擬合的風險,增強數據的多樣性。利用遷移學習的方法,構建了基于VGG16架構的深度學習模型。在模型構建過程中,引入了全局平均池化層和自定義頂層,以實現對坑洼道路圖像的準確分類和識別。為了進一步優化模型的性能,應用了Sigmoid激活函數、ReLU激活函數,并添加了全連接層以及Dropout層等,以提高模型的非線性擬合能力并減少過擬合現象的發生。在模型訓練過程中,凍結了預訓練模型的權重,采用了Adam優化器和二元交叉熵損失函數,從而有效地提高了模型的訓練效率和性能。通過實驗仿真測試,得到了得分曲線、學習曲線、混淆矩陣等數據,并綜合采用了準確率、召回率、F1分數以及ROC-AUC值等多個維度指標來評估模型的性能。綜合來看,模型在分類識別方面表現良好,能夠為道路坑洼檢測提供可靠的解決方案。
關鍵詞:圖像預處理;數據增強;VGG16架構;遷移學習;深度學習;Adam優化器
中圖分類號:TP391.4;TP183 文獻標識碼:A 文章編號:2095-1302(2024)11-00-05
0 引 言
道路是一種重要的交通設施,在一定程度上影響著人們的日常生活,甚至影響著社會的發展[1]。道路安全已成為世界各國關注的問題,檢測道路坑洼可以減少交通事故的發生,保障人們的出行安全。
文獻[2]提出了自主道路裂縫和坑洼檢測系統,該系統基于卷積神經網絡結構,從背景中區分坑洼和裂縫,但是在遇到表面變形和斑塊之間的結構模糊性較大時其檢測誤差較大。文獻[3]利用由立體相機拍攝的一對立體圖像生成的強度圖像和視差圖像來選擇潛在坑洼候選者的感興趣區域(ROI),但是該方法成本高,在現實生活中應用具有局限性。文獻[4]提出了最小二乘支持向量機(LS-SVM)[5]和基于人工神經網絡的坑洼識別方法。
本文采用數據增強操作,利用遷移學習的方法,構建了基于VGG16架構[1]的深度學習模型。在模型構建過程中,引入全局平均池化和自定義頂層,并且在Adam優化器和二元交叉熵函數的作用下,實現了對抗洼道路圖像的準確分類和識別,為解決道路坑洼問題提供了一個可行的方案。
1 圖像預處理
通過網絡渠道查找獲取相應的道路數據集,將其分為
2種不同的場景:無坑洼的道路、坑洼道路。每種場景包括雨天、雪天、強光、弱光及有陰影的情況,數據集共收集有5 312張圖像。考慮到圖像中可能存在的雜質因素(如植被、汽車和天空等),為提高模型的準確性,需要對圖像進行裁剪處理,主要是截取主路段。為了提高模型的魯棒性,進行數據增強操作,包括隨機應用旋轉、平移、剪切、縮放和水平翻轉等變換。
1.1 圖像裁剪與歸一化處理
在坑洼道路識別模型的建立過程中,初步觀察已提供的數據集,大部分道路圖片清晰,未包含過多復雜元素,例如車輛、天空和植被等。為提高后續訓練的準確性,采用閾值編輯器獲取道路像素,并進行去噪操作,以獲取去除了背景的道路圖像。這一去噪操作可批量處理,對于大部分圖片效果顯著。然而,少數圖片包含較多復雜元素,需使用圖像編輯軟件(例如Photoshop)手動進行裁剪操作,以獲取高質量的道路圖像。
通過閾值編輯器得到的二值化圖像(如圖1所示)存在大量噪點,再通過多次高斯模糊和形態學操作,成功去除噪點并保留道路結構的關鍵特征,生成更清晰的二值圖像(如圖2、圖3所示)。上述操作在減少噪點的同時,還能夠保留重要的道路特征。
圖像高斯模糊[6]公式如下:
(1)
對這些經過處理的二值圖像與原圖進行掩膜操作,獲取最終的道路圖像(如圖4所示)。盡管無法完全濾除其他無關因素,但這一步能夠幫助我們集中注意力在道路結構上,為后續的分析和處理提供基礎。這樣的預處理操作有助于提高模型的訓練效果,確保模型對道路坑洼的識別更加精準和可靠。
將每個圖像的像素值除以255,并將其壓縮到0和1之間,由此完成對圖像的歸一化操作,這樣能夠幫助神經網絡更輕松地學習權重。歸一化處理表達式如下:
(2)
1.2 圖像增強
通過數據增強操作對訓練集中的圖像進行隨機變換,從而增強數據的多樣性,擴展數據集樣本,減少過擬合的風險。通過定義數據增強變量參數進行隨機旋轉、寬度和高度平移、剪切、縮放和水平翻轉等,如圖5所示。
通過自定義如下參數來對圖像進行調整:
-rotation_range=60,表示隨機旋轉圖像的角度范圍為±60°。
-width_shift_range=0.3,表示寬度方向隨機平移范圍為圖像寬度的30%。
-height_shift_range=0.3,表示高度方向隨機平移范圍為圖像高度的30%。
-shear_range=0.3,表示對圖像進行剪切變換,隨機剪切強度為30%。
-zoom_range=0.3,表示對圖像進行隨機縮放,縮放范圍為30%。
-horizontal_flip=True,表示隨機對圖像進行水平翻轉。
1.3 訓練集劃分
對增強后的圖像按照7∶2∶1的比例劃分為訓練集、驗證集和測試集。在建立深度學習模型后,對圖像進行學習和訓練,最終獲得權重文件,用于模型的識別任務。這樣的數據處理和模型訓練過程將有助于提高模型的準確性和魯棒性,使其在識別道路坑洼時能夠表現出更好的性能。
2 模型建立
VGG16是一種經典卷積神經網絡,其簡潔統一的結構以連續的小卷積核和池化層堆疊為特點。該網絡采用了深層結構,能夠有效捕捉復雜特征并具有強大的表達能力。通過預訓練模型權重,VGG16成為了強大的特征提取器,被廣泛用于圖像識別、目標檢測和圖像分割等任務。通道數在卷積層逐漸增加,直至達到512后不再增加。全連接層中的4 096是經驗值,確保不低于最終的分類類別數。所有激活單元均采用ReLU激活函數。
ReLU激活函數在輸入為正時直接返回該輸入值,而在輸入為負時返回0。這種特性使得它能夠在不引入指數增長的情況下引入非線性,同時保留正值的輸入信息。
ReLU激活函數[7]為:
(3)
VGG16是一個深度為16層的卷積神經網絡,它包含13個卷積層和3個全連接層。網絡結構中,卷積層的卷積核數逐漸增加,然后經過池化層進行降采樣。圖6所示為VGG16的網絡結構[8]。
通過加載本地VGG16權重文件,使用遷移學習方法,基于加載的預訓練模型創建一個新的模型。將VGG16模型的輸出作為全局平均池化層的輸入,以減少參數量并提高計算效率。然后,添加一個擁有1 024個神經元的全連接層,并使用ReLU激活函數引入非線性,以提高高階特征提取能力和增強模型的表達能力。通過添加Dropout層,減少模型的過擬合現象,提高模型的泛化能力。添加了一個擁有2個輸出節點的全連接層,并應用了Sigmoid激活函數,這在二分類問題中是常用的做法。圖7所示為深度學習模型框架。
Sigmoid激活函數[9]為:
(4)
Sigmoid激活函數的特點是能夠將任意實數值映射到一個介于0和1之間的數值。因此,它常被用于二分類問題中,將輸出限制在0和1之間。
使用Keras的Model類構建完整的模型,將VGG16模型的輸入和自定義頂層的輸出連接起來,形成一個新的模型。通過遍歷VGG16模型的各層,并將其設置為不可訓練,實現了對預訓練模型權重的凍結,保護了預訓練模型所學到的通用特征表示不被破壞,防止其在新任務的訓練過程中被大幅度修改。最后,使用了二元交叉熵作為損失函數、Adam作為優化器,并添加了準確率作為評估指標來編譯模型。這樣做是為了在訓練過程中監控模型的性能,并確保模型能夠按預期進行訓練和優化。
二元交叉熵作為損失函數,用于衡量2個概率分布之間的差異:
H(p, q)=-[p(x)×log(q(x))+(1-p(x))×log(1-q(x))]" " " " "(5)
式中:p(x)是真實標簽的概率分布;q(x)是模型預測的概率分布;x表示樣本或事件。代入樣本和模型的概率分布后,該損失函數會計算每個樣本的交叉熵,并對所有樣本的交叉熵求和,即求預測值和真實值之間的交叉熵總和。最終的損失值用來衡量模型的性能好壞,優化算法會根據損失值來更新模型參數,以使損失值盡可能地減小。
在Adam優化[10]中實現參數更新的表達式為:
(6)
式中:ΔJ(θ)表示損失函數J關于參數θ的梯度;β1和β2分別是一階矩和二階矩估計的指數衰減率,通常設置為接近1的數值;η是學習率;ε是一個很小的常數,用于保證數值穩定性;m和v分別表示一階矩和二階矩估計的變量。
具體步驟如下:
(1)修正一階矩估計的偏差:mhat=m/(1-βt1),t為迭代次數;
(2)修正二階矩估計的偏差:vhat=v/(1-βt2);
(3)更新參數:θ=θ-η×mhat/[sqrt(vhat)+ε]。
根據梯度的一階矩和二階矩估計來動態調整學習率,并通過自適應調整梯度的縮放來優化模型參數。這有助于加快模型的收斂速度,避免在訓練過程中陷入局部最優。
這種遷移學習的策略使得模型能夠快速而有效地適應特定的二分類任務,充分利用了預訓練模型所蘊含的豐富圖像特征表示能力。通過凍結預訓練模型的權重,保留了其通用特征表示,為模型在新任務中的學習提供了更有力的支持。這樣的遷移學習策略在深度學習任務中具有重要意義,能夠加快模型的訓練速度并提高模型的性能表現。
3 訓練與結果評估
3.1 模型訓練
使用Keras庫中的ImageDataGenerator創建了train_generator和validation_generator數據生成器,用于加載并預處理圖像數據。訓練過程中,設置了steps_per_epoch參數和validation_steps參數以確保在每個訓練epoch和驗證過程中使用正確的步數。訓練周期數設置為60,并將訓練完成的模型保存到名為“road.h5”的文件中。
3.2 評估指標
采用多維度的評估指標評估模型的性能,包括準確率(Accuracy)、召回率(Recall)、精確率(Precision)、F1分數(F1 Score)和ROC-AUC值。
(1)準確率(Accuracy)
準確率是通過比較模型預測的結果與實際標簽的一致性來計算的。具體而言,對于分類問題,它是預測正確的樣本數與總樣本數之比。
(7)
(2)精確率(Precision)
精確率是用于評估分類模型性能的一項關鍵指標,它衡量了模型預測為正例的樣本中正確的比例。
(8)
(3)召回率(Recall)
召回率用于衡量模型識別出所有相關樣本的能力,特別是在所有實際相關樣本中識別出的比例。
(9)
(4)F1分數
F1分數綜合考慮了模型的精確率和召回率,用于平衡模型的準確率和召回率。
(10)
(5)ROC-AUC值
ROC-AUC值[11]可以衡量模型在不同閾值下的分類能力,因此能夠用于評估關于模型對于不同類別樣本的區分能力的整體性能。較高的ROC-AUC值表明模型能夠有效區分正例和負例,具有更好的分類能力。
TPR=" " " " " " " " " " " " " " " " " (11)
FPR=" " " " " " " " " " " " " " " " " (12)
(6)混淆矩陣
混淆矩陣是一個用于評估分類模型性能的重要工具,它能夠展示模型預測結果與實際標簽之間的差異。其中,行表示實際標簽,列表示預測標簽。
(13)
3.3 模型評估結果
本文模型下的混淆矩陣為:
(14)
上式表明424個樣本被正確地預測為負類(TN);318個
樣本被錯誤地預測為正類,但實際上是負類(FP);284個樣本被錯誤地預測為負類,但實際上是正類(FN);650個樣本被正確地預測為正類(TP)。
通過式(11)和式(12)計算出TPR和FPR分別為0.695 931和0.428 571。模型評價指標見表1。
由表1可以看出,模型的總體性能較好。為了直觀了解模型的性能,繪制了學習曲線和得分曲線,如圖8和圖9所示。學習曲線反映了模型在60次的周期訓練過程中準確率隨著訓練周期的推進而提高,同時也顯示了模型在測試集中的準確率變化情況。通過觀察學習曲線,了解到該模型沒有出現過度擬合或過度欠擬合的問題,說明該模型是一個有效、可靠的模型。得分曲線反映了損失率隨著學習周期的推進而明顯降低,表明模型的訓練效果逐漸收斂。
4 結 語
本文針對坑洼道路的識別與檢測問題,通過互聯網查找以及線下手機拍攝獲取圖片,建立正常道路與坑洼道路的數據集;對數據集進行圖像增強與劃分后,采用遷移學習方法,通過加載本地VGG16權重文件來創建并訓練模型。經過多次實驗,利用準確率、召回率、F1分數、ROC-AUC值等指標進行了評價,證明了模型具有良好的檢測精度,對坑洼道路的檢測與識別效果良好。
注:本文通訊作者為蔡梓豐。
參考文獻
[1] RASTOGI R, KUMAR U, KASHYAP A, et al. A comparative evaluation of the deep learning algorithms for pothole detection [C]// 2020 IEEE 17th India Council International Conference (INDICON).New Delhi, India: IEEE, 2020: 1-6.
[2] ANAND S, GUPTA S, DARBARI V, et al. Crack-pot: autonomous road crack and pothole detection [C]// 2018 Digital Image Computing: Techniques and Applications (DICTA). Canberra, ACT, Australia: IEEE, 2018: 1-6.
[3] BANGALORE R N, KUNDU S. Stereo vision based pothole detection system for improved ride quality [J]. SAE international journal of advances and current practices in mobility, 2021, 3(5): 2603-2610.
[4] HOANG N D. An artificial intelligence method for asphalt pavement pothole detection using least squares support vector machine and neural network with steerable filter-based feature extraction [J]. Advances in civil engineering, 2018, 2018: 7419058.
[5] SHI Q, ZHANG H. An LS-SVM control method for path following of autonomous ground vehicles [C]// 2020 IEEE 92nd Vehicular Technology Conference (VTC2020-Fall). Victoria, BC, Canada: IEEE, 2020: 1-5.
[6] HWANG J J, RHEE K H. Gaussian forensic detection using blur quantity of forgery image [C]// 2019 International Conference on Green and Human Information Technology (ICGHIT). Kuala Lumpur, Malaysia: IEEE, 2019: 86-88.
[7] KIRANA K C, WIBAWANTO S, HIDAYAH N, et al. Improved neural network using integral-RELU based prevention activation for face detection [C]// 2019 International Conference on Electrical, Electronics and Information Engineering (ICEEIE). Denpasar, Indonesia: IEEE, 2019: 260-263.
[8] SEOK J, KIM J S. Quantized ADAM with monotonically increasing resolution of quantization [C]// 2021 International Conference on Information and Communication Technology Convergence (ICTC).Jeju Island, Korea: IEEE, 2021: 1719-1721.
[9]蒯鵬.靈敏放大器與Sigmoid激活函數發生器復用電路設計[D].合肥:安徽大學,2021.
[10]楊觀賜,楊靜,李少波,等.基于Dopout與ADAM優化器的改進CNN算法[J].華中科技大學學報(自然科學版),2018,46(7):122-127.
[11] CHIRILA C B, SORA I. The optimization of a page rank based key classes classifier using simulated annealing with ROC-AUC and Recall metrics [C]// 2019 IEEE 13th International Symposium on Applied Computational Intelligence and Informatics (SACI).Timisoara, Romania: IEEE, 2019: 000021-000026.
收稿日期:2023-11-08 修回日期:2023-12-06
基金項目:廣東省普通高校特色創新項目:基于強化學習的智能車路徑規劃研究(2022KTSX188)