李淑娟 任朋欣 薛丁丹 翟興旺
(西安理工大學機械與精密儀器工程學院)
隨著科學技術的快速發展、工業產線的智能化,液位測量技術得到了大力發展,特別在凈水產線、水利工程及石油化工等產業。 常用的液位測量手段通常分為兩大類: 接觸式和非接觸式。接觸式液位儀一般有電容式液位儀、電感式液位儀、浮力式液位儀及壓阻式液位儀等;非接觸式液位儀一般使用超聲波傳感器、雷達傳感器及激光傳感器等進行測量,文獻[1]還提出了利用激光三角測量原理和角位移同步跟蹤來提取液位圖像的方法。
在凈水器設備中使用的反滲透膜與納濾膜生產過程中,由于涂布與溶液中的納米粒子發生反應,導致液位發生連續變化。 當液位不符合要求時,經常導致反滲透膜表面不均勻,影響產品質量。 因此,檢測液位高度十分必要。 其中,涂覆過程中的溶液具有高腐蝕性, 且溶液具有流動性, 如果使用接觸式傳感器則需要經常更換,成本高昂,故此類溶液應采用非接觸式傳感器進行液位測量。 超聲波傳感器、雷達傳感器及激光傳感器等雖然精度高,但是價格高昂,測量范圍有限,均屬于點測量,不能解決涂覆過程中溶液波動的問題,文獻[2,3]采用的是基于機器視覺的液位檢測方法,但是魯棒性較弱,因此筆者對該方法進行改進,設計出一種基于機器視覺的液位測量系統。
筆者設計的基于機器視覺的液位測量系統總體框圖如圖1所示。

圖1 基于機器視覺的液位測量系統總體框圖
該系統采用機器視覺方法進行液面高度的自動識別和檢測。 在溶液池上標記相應刻度,工業相機實時采集液面信息, 通過YOLOv3+SPP深度學習算法進行目標檢測識別,在上位機界面進行顯示。 將液位信息傳輸到控制系統中,對液位進行實時控制,以保證產品質量。
YOLO(You Only Look Once)是一種實時的、先進的、端到端的目標檢測模型,是目標檢測方面的領跑者。 YOLOv3是YOLO的第3版,也是最為經典的一個版本。 文獻[4,5]分別介紹了YOLO從第1~3版的發展歷程和具體實現方法。
SPP(Spatial Pyramid Pooling)是一種從不同尺度進行最大池化操作得到不同大小視野特征圖的網絡。
YOLOv3的基本思想是: 將輸入的圖片經過特征提取網絡提取特征, 輸出不同大小的特征圖,在不同尺度上對目標進行預測。 將輸入圖像劃分為S×S的網格, 真實框中的目標中心落入某個網格中,此網格將預測這個目標;YOLOv3中每個網格根據候選框預測3個邊界框的偏移量和置信度,并且預測C個類別分數。 YOLOv3網絡模型將Darknet53作為主干特征提取網絡, 分別從3個不同尺度進行預測,實現對不同大小目標的精確預測。
YOLOv3+SPP網絡結構如圖2所示。
DarkNet53的結構如圖3所示,輸入512×512×3的彩色圖像,經過3×3卷積核進行特征提取,不同步長實現圖片壓縮,1×1卷積核進行降維處理,使用批歸一化(Batch Normalization,BN)進行數據處理, 消除噪聲干擾。 使用LeakyReLU作為激活函數。 加入殘差網絡(Residual Networks,ResNets)防止梯度消失、梯度爆炸和過擬合。 DarkNet53作為主干特征提取網絡, 為分類網絡提供不同尺度的特征層,分別為16×16、32×32、64×64,以此來預測不同大小的目標,提高精度。

圖3 DarkNet53的結構
DarkNet53特征提取網絡的輸出尺度后接SPP網絡,SPP網絡以1×1、5×5、9×9、13×13這4個不同的尺度進行最大池化操作,即可得到不同大小視野的特征圖,這對預測尺寸相差較大的目標是極為有利的,增加了預測精度。SPP網絡結構框圖如圖4所示。

圖4 SPP網絡結構
YOLOv3+SPP網絡中使用一個1×1卷積層將不同尺度輸出為最終預測結果, 卷積核個數為(classes+1+4)×anchors,其中classes表示類別個數,1為置信度個數,4為預測邊界框相對于候選邊界框的偏移量個數,anchors表示候選框的個數。
YOLOv3的損失函數由置信度損失、 分類損失和定位損失3部分組成:

其中,λ1、λ2、λ3是平衡系數;Lconf(o,c)為置信度損失;Lcla(O,C)為分類損失;Lloc(l,g)為定位損失。



目標邊界框預測示意圖如圖5所示, 圖中虛線框表示候選邊界框,實線框表示預測邊界框,cx、cy表示預測目標網格的左上角坐標, 即候選邊界框的中心點;pw、ph表示候選邊界框的寬、高。bx、by、bw、bh表示預測邊界框的中心點、寬和高,其中bx=σ(tx)+cx、by=σ(ty)+cy、bw=pwetw、bh=pheth、σ(x)=Sigmoid(x)。

圖5 目標邊界框預測示意圖
采集1 000張實際工作環境照片,利用GitHub上開源軟件LabelImg輔助標注工具進行標注,實際檢測目標為0~10的數字,即框選出目標圖像中數字的真實邊界框。LabelImg標注的圖像如圖6所示。

圖6 LabelImg標注的圖像
深度學習訓練過程中, 為防止模型過擬合,需要大量訓練樣本,訓練樣本數量直接影響最終的檢測結果。 1 000張圖像屬于小樣本,對于深度學習訓練來說嚴重不足,因此采用圖像增強方式來擴充樣本數量和種類。 常用的數據增強方式有旋轉、鏡像、翻轉、裁剪、顏色抖動、噪聲、平移、縮放以及采用生成式對抗神經網絡生成新圖片,文獻[6]介紹了相應的圖像預處理方法。
筆者采用常用的數據增強算法將數據集擴充至20 000張, 并且使用Mosaic數據增強方法,隨機抽取4張圖片將其隨機裁剪再拼接。這樣不僅增加了數據, 而且相當于提高了批處理圖片的個數。對數據進行批歸一化,防止中間層數據分布發生變化。
YOLOv3 SPP網絡中參數量龐大, 如果直接從零訓練,沒有足夠的算力,訓練將非常耗時,而且損失值難以下降,預測效果不佳。 筆者在訓練過程中采用遷移學習方法中的模型遷移進行訓練, 使用官方在PASCAL VOC2012數據集上的訓練權重作為預訓練權重,將DarkNet53特征提取網絡參數進行凍結,SPP網絡參數和分類網絡參數使用實際液位測量數據(即經過預處理的20 000張圖像)進行訓練。 學習率按照自適應法取值,隨著訓練次數的增加, 學習率從0.001逐漸減小,平均準確率均值 (mean Average Precision,mAP)逐漸上升為0.6,如圖7、8所示。

圖7 學習率隨訓練次數的變化

圖8 mAP隨訓練次數的變化
將預處理的20 000張圖像按9∶1劃分為訓練集和測試集,將測試集輸入mAP值最高(即損失函數最?。┑哪P椭羞M行預測,滿足工程需求,預測結果如圖9所示。

圖9 網絡最終預測結果
為了保證預測結果的準確性,根據液位是連續變化的,進行誤識別結果剔除,即對采集的照片進行數字識別,取最小數字和相鄰數字的像素坐標,若最小刻度y軸像素坐標小于相鄰刻度y軸像素坐標或大于最小間距的1.5倍均為誤識別,進行重新采集。 由于液面具有波動性,測量結果隨機變化,為了解決這個問題,每10 s采集一幀,取前5次刻度識別結果的平均值以抵消波動帶來的影響。 大量實驗證明,該方法提升了液位識別的準確率,由原來的95%提升為98%。
筆者設計的基于機器視覺的液位測量系統由??低暪I相機、 諾達佳嵌入式工控機以及客戶端操作軟件組成。采用YOLOv3+SPP深度學習算法進行目標識別,具有高魯棒性和高準確性,可直接移植到其他液位測量項目中。 該液位測量系統屬于非接觸式測量,安裝位置比較寬泛,測量系統整體位于溶液槽外,使用保護罩進行保護,保證了系統的可靠性。 通過實驗驗證了視覺液位測量系統的可行性,具有一定的推廣價值。