王 康 陸生華 陳 潮 陳澤波 強(qiáng) 晟 陳 波
(1. 河海大學(xué) 水利水電學(xué)院, 南京 210098; 2. 紹興市越城區(qū)城市發(fā)展建設(shè)集團(tuán)有限公司, 浙江 紹興 312000)
大壩廊道在運(yùn)行和維護(hù)期間,為了監(jiān)測(cè)廊道結(jié)構(gòu)內(nèi)部的裂縫和滲水情況,在廊道內(nèi)部會(huì)安裝各種監(jiān)測(cè)儀表.由于部分儀表沒(méi)有設(shè)置通信接口或者遠(yuǎn)程通信故障,無(wú)法遠(yuǎn)程獲取數(shù)據(jù),在大壩廊道巡檢過(guò)程中,巡檢機(jī)器人需要觀測(cè)定位儀表位置,對(duì)儀表和監(jiān)測(cè)儀器運(yùn)行狀態(tài)進(jìn)行評(píng)估,進(jìn)而讀取儀表示數(shù).因此,針對(duì)適用于巡檢機(jī)器人的大壩廊道指針式儀表檢測(cè)與讀數(shù)識(shí)別研究,具有十分重要的工程意義.
基于機(jī)器視覺(jué)的指針式儀表識(shí)別已經(jīng)積累了很多相關(guān)經(jīng)驗(yàn),國(guó)內(nèi)外學(xué)者的研究大致可以分為基于傳統(tǒng)圖像處理技術(shù)和基于深度學(xué)習(xí)算法的儀表識(shí)別兩大類.在傳統(tǒng)圖像處理方面:張文杰等[1]利用指針式儀表的視覺(jué)顯著性區(qū)域構(gòu)建儀表檢測(cè)模型,并使用無(wú)向圖排序算法抑制非指針圖像的干擾,很好地提取到了儀表指針;Han等[2]使用改進(jìn)的自適應(yīng)中值濾波處理儀表圖像,利用刻度盤(pán)轉(zhuǎn)角與刻度的線性關(guān)系提出一種改進(jìn)的霍夫變換指針式儀表讀數(shù)算法;張志鋒等[3]對(duì)比不同表盤(pán)圖像建立讀數(shù)識(shí)別參考系,利用幀差分法定位指針,進(jìn)而采用角度法進(jìn)行讀數(shù)識(shí)別.在深度學(xué)習(xí)算法方面:Liu等[4]使用基于區(qū)域的卷積網(wǎng)絡(luò)檢測(cè)(R-CNN)目標(biāo)儀表位置,通過(guò)特征對(duì)應(yīng)算法和透視變換消除鏡面反射和圖像失真,最終使用霍夫變換檢測(cè)指針的位置,得到讀數(shù);Liu等[5]對(duì)儀表圖像進(jìn)行非局部去噪、深度去噪等超分辨率預(yù)處理,然后利用實(shí)例分割算法Mask-RCNN對(duì)指針進(jìn)行分割和定位,最后采用角度法進(jìn)行讀取操作;李金紅等[6]在使用Faster R-CNN算法檢測(cè)指針表盤(pán)區(qū)域的基礎(chǔ)上,再采用此算法檢測(cè)指針,在得到的指針區(qū)域上再根據(jù)霍夫變換進(jìn)行指針提取,很好地避開(kāi)了復(fù)雜儀表區(qū)域的干擾.但是大部分基于深度學(xué)習(xí)的儀表識(shí)別模型因其網(wǎng)絡(luò)的復(fù)雜性導(dǎo)致推理速度受限,在嵌入式開(kāi)發(fā)平臺(tái)上的運(yùn)用并不好.
基于機(jī)器視覺(jué)的儀表檢測(cè)和讀數(shù)識(shí)別研究雖然已經(jīng)取得了較大的進(jìn)步,但在大壩廊道巡檢中儀表讀數(shù)常常依賴人工,所以需在前人研究的基礎(chǔ)上研發(fā)適用于巡檢機(jī)器人的大壩廊道指針式儀表檢測(cè)與讀數(shù)識(shí)別算法.為了監(jiān)測(cè)大壩廊道指針式儀表狀態(tài)和讀取儀表示數(shù),提出一種基于YOLOv5的指針式儀表檢測(cè)和讀數(shù)識(shí)別算法,并將其應(yīng)用到基于樹(shù)莓派的巡檢機(jī)器人上,通過(guò)訓(xùn)練好的YOLOv5模型進(jìn)行儀表檢測(cè),對(duì)不同儀表分類并截取儀表圖像,然后采用數(shù)字圖像處理技術(shù)進(jìn)行儀表讀數(shù)識(shí)別,測(cè)試結(jié)果表明讀數(shù)識(shí)別相對(duì)誤差均小于2.1%.
本文設(shè)計(jì)了基于YOLOv5s的指針式儀表檢測(cè)與讀數(shù)識(shí)別系統(tǒng),系統(tǒng)總設(shè)計(jì)方案如圖1所示.首先通過(guò)實(shí)驗(yàn)室和網(wǎng)絡(luò)搜集建立數(shù)據(jù)集,通過(guò)服務(wù)器訓(xùn)練YOLOv5s模型,然后將訓(xùn)練好的模型文件移植到樹(shù)莓派上,通過(guò)攝像頭進(jìn)行實(shí)時(shí)指針式儀表檢測(cè),當(dāng)檢測(cè)到儀表圖像后,截取儀表圖像區(qū)域,直接調(diào)用儀表識(shí)別算法讀取示數(shù).樹(shù)莓派和攝像頭均可以部署在智能小車(chē)、無(wú)人機(jī)和滑動(dòng)軌道等巡檢機(jī)器人上.
圖1 系統(tǒng)總體實(shí)際方案
由Redmon等[7]提出的YOLO算法把目標(biāo)檢測(cè)歸納為一個(gè)回歸問(wèn)題,回歸到空間上分離的邊界框和相關(guān)的類概率問(wèn)題,該算法基于一個(gè)單獨(dú)的端到端的網(wǎng)絡(luò),完成從原始圖像的輸入到物體位置和類別的輸出.隨著算法的深化和完善,YOLO系列算法經(jīng)歷了從V1到V5的發(fā)展,被廣泛地應(yīng)用到目標(biāo)檢測(cè)領(lǐng)域,且YOLOv5也于2021年4月更新到5.0版本[8].
YOLOv5在2020年被Ultralytics公司推出,該算法具有精度高、文件內(nèi)存占用小、速度快等優(yōu)點(diǎn),且能夠部署在PyTorch環(huán)境中[9].YOLOv5更容易部署在樹(shù)莓派等的嵌入式開(kāi)發(fā)板上,適應(yīng)于無(wú)人車(chē)等的移動(dòng)終端.YOLOv5包括s、m、l、x等4個(gè)模型,其中YOLOv5s體積最小,最新的5.0版本權(quán)重僅僅14 MB,本文儀表檢測(cè)采用最新的YOLOv5s 5.0版本.
YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)包括Input、Backbone、Neck、Prediction這4個(gè)部分,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示[10].
圖2 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)
Input:采用隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的Mosaic數(shù)據(jù)增強(qiáng),可以很好地適應(yīng)小目標(biāo)檢測(cè),豐富了數(shù)據(jù)集,減小了訓(xùn)練GPU的算力要求;自適應(yīng)計(jì)算不同訓(xùn)練集中的最佳錨框值;采用自適應(yīng)圖片縮放,減少了圖片兩端黑邊的填充,減小了計(jì)算量,提升了目標(biāo)檢測(cè)速率.
Backbone:采用Focus結(jié)構(gòu)和CSP結(jié)構(gòu).Focus結(jié)構(gòu)采用切片操作,切片操作如圖3所示,原始608×608×3的圖像經(jīng)過(guò)切片操作和一次32卷積核的卷積操作,變成304×304×32的特征圖;YOLOv5s中設(shè)計(jì)了兩種CSP結(jié)構(gòu),Backbone主干網(wǎng)絡(luò)使用CSP1_X結(jié)構(gòu),Neck使用CSP2_X結(jié)構(gòu).
圖3 切片操作示意圖(4×4×3到2×2×12)
Neck:采用FPN+PAN結(jié)構(gòu),如圖4所示,F(xiàn)PN自頂向下傳達(dá)強(qiáng)語(yǔ)義特征,F(xiàn)PN后面添加含有兩個(gè)PAN結(jié)構(gòu)的特征金字塔,自底向上傳達(dá)強(qiáng)定位特征,從不同的主干層對(duì)不同的檢測(cè)層進(jìn)行特征聚合,加強(qiáng)網(wǎng)絡(luò)特征的融合能力[11].
圖4 FPN+PAN結(jié)構(gòu)
Prediction:采用GIOU_Loss作為邊界框的損失函數(shù),評(píng)價(jià)預(yù)測(cè)值與真實(shí)值的誤差,解決了邊界沒(méi)有重合的問(wèn)題;采用非極大值抑制(NMS),舍棄得分較低的預(yù)測(cè)框[12].
實(shí)驗(yàn)自制了一個(gè)指針式儀表數(shù)據(jù)集,從實(shí)驗(yàn)室采集和網(wǎng)絡(luò)搜集的1 000張指針式儀表圖片(900張訓(xùn)練集和100張測(cè)試集),部分?jǐn)?shù)據(jù)集如圖5所示.根據(jù)指針式儀表刻度線圓弧所對(duì)應(yīng)角度大小分為兩類,大于180°為Circular instrument,其他為Arc instrument,用labelImg工具對(duì)圖片中指針式儀表進(jìn)行了標(biāo)注,如圖6所示.
圖5 儀表數(shù)據(jù)集
圖6 數(shù)據(jù)集標(biāo)注示意圖
網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置見(jiàn)表1,總迭代次數(shù)為300次.
表1 訓(xùn)練參數(shù)設(shè)置
實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)為精確率P(Precious)、召回率R(Recall)、平均精度均值(mA@0.5)以及調(diào)和均值(mAP@P0.5:0.95).
1)精確率和召回率
精確率是檢測(cè)為儀表的樣本中為真儀表的占比,見(jiàn)公式(1);召回率是在全部?jī)x表樣本中被檢測(cè)出來(lái)的占比,見(jiàn)公式(2).二者的值越大,表示該模型的儀表識(shí)別效果越好.
(1)
(2)
式中:TP表示目標(biāo)為儀表,檢測(cè)為儀表;FP表示目標(biāo)不是儀表,檢測(cè)不是儀表;FN表示目標(biāo)是儀表,檢測(cè)不是儀表.
精確率和召回率隨迭代次數(shù)變化如圖7所示,從圖中看出,YOLOv5s模型在訓(xùn)練200輪左右準(zhǔn)確率和召回率趨于穩(wěn)定,精確率和召回率在訓(xùn)練300次左右均穩(wěn)定保持在95%以上.
圖7 精確率和召回率
2)平均精度均值以及調(diào)和均值
精度均值為以精確率和召回率所圍成的曲線面積值,平均精度均值即為學(xué)習(xí)的所有類別精度均值的平均值[13].從圖8中看出,YOLOv5s在訓(xùn)練200輪左右mAP趨向穩(wěn)定,其中平均精度均值穩(wěn)定在1.0附近,模型訓(xùn)練結(jié)果比較理想.
圖8 精度均值
為了測(cè)試模型的效果,進(jìn)行多個(gè)、多類儀表圖片的目標(biāo)檢測(cè)測(cè)試,測(cè)試效果如圖9~10所示,圖中數(shù)字為置信度.從圖9所知,簡(jiǎn)單儀表目標(biāo)檢測(cè)效果很好,從圖10可知,左圖檢測(cè)出5個(gè)Circular instrument,小目標(biāo)檢測(cè)效果良好,右圖檢測(cè)出4個(gè)Arc instrument,被部分遮擋的Arc instrument也被檢測(cè)出來(lái).本次訓(xùn)練的模型檢測(cè)精度高,為儀表讀數(shù)識(shí)別奠定了基礎(chǔ),適用范圍廣.
圖9 簡(jiǎn)單儀表檢測(cè)效果圖
圖10 多目標(biāo)檢測(cè)效果圖
指針式儀表目標(biāo)檢測(cè)任務(wù)完成后,進(jìn)行讀數(shù)識(shí)別,主要包括表盤(pán)區(qū)域提取、刻度線提取及指針回轉(zhuǎn)中心確定、零刻度線確定及讀數(shù)識(shí)別.
指針式儀表經(jīng)過(guò)YOLOv5檢測(cè)儀表種類和位置,根據(jù)檢測(cè)結(jié)果裁剪儀表區(qū)域,目標(biāo)檢測(cè)完成后已經(jīng)剔除部分背景,為了更加準(zhǔn)確地讀取儀表示數(shù),進(jìn)行表盤(pán)區(qū)域提取工作,本文采用霍夫圓環(huán)變換提取表盤(pán)區(qū)域[14].首先對(duì)儀表圖片進(jìn)行均值濾波和灰度轉(zhuǎn)換工作,再經(jīng)過(guò)霍夫圓環(huán)變換篩選圓心位置和圓半徑,得到儀表圓區(qū)域,最后在儀表裁剪圖像上提取儀表圓區(qū)域得到表盤(pán)ROI區(qū)域,表盤(pán)區(qū)域提取過(guò)程如圖11所示.
圖11 表盤(pán)區(qū)域提取過(guò)程
在實(shí)際工作條件下,霍夫圓環(huán)變換找到圓心位置往往與指針回轉(zhuǎn)中心存在較大偏差,本文利用刻度線輪廓連通區(qū)域特點(diǎn)提取其輪廓,通過(guò)刻度線擬合,求其交點(diǎn)的方法確定指針回轉(zhuǎn)中心.表盤(pán)區(qū)域圖像經(jīng)過(guò)高斯濾波、灰度化、自適應(yīng)閾值分割后得到二值圖像;然后通過(guò)刻度線連通域區(qū)域面積、長(zhǎng)寬比和位置特征篩選刻度線輪廓;再使用最小二乘法用于擬合刻度線的輪廓區(qū)域,最后求擬合直線兩兩交點(diǎn),其均值即為指針回轉(zhuǎn)中心.流程如圖12所示.
圖12 指針回轉(zhuǎn)中心的確定
儀表表盤(pán)二值圖像在去除刻度線區(qū)域以后,表盤(pán)文字、陰影、儀表圖案等仍不能直接提取指針輪廓.本文采用霍夫直線檢測(cè)提取儀表指針,然后通過(guò)骨架細(xì)化和最小二乘法線性擬合得到指針直線,指針提取流程如圖13所示.霍夫直線變換利用點(diǎn)與線的對(duì)偶性,運(yùn)用兩個(gè)坐標(biāo)空間之間的變換,將在笛卡爾坐標(biāo)系的所有直線映射到霍夫空間上一個(gè)點(diǎn)上形成峰值,從而轉(zhuǎn)換為峰值統(tǒng)計(jì)問(wèn)題.
產(chǎn)品價(jià)格也是影響顧客滿意的一個(gè)重要因素。顧客在進(jìn)行產(chǎn)品選擇的時(shí)候,首先關(guān)注的就是產(chǎn)品的外觀和質(zhì)量,其次就是關(guān)注產(chǎn)品的價(jià)格。只有顧客認(rèn)為產(chǎn)品的質(zhì)量符合這個(gè)價(jià)格,性價(jià)比比較高時(shí)才會(huì)選擇購(gòu)買(mǎi)。因此,企業(yè)要對(duì)其產(chǎn)品制定合理的價(jià)格,既能實(shí)現(xiàn)產(chǎn)品的商業(yè)價(jià)值,又在顧客的承受范圍之內(nèi),從而促進(jìn)顧客購(gòu)買(mǎi)該產(chǎn)品,實(shí)現(xiàn)顧客滿意,提高企業(yè)的經(jīng)濟(jì)效益。
圖13 指針提取流程
指針式儀表零刻度線確定方法有人工選擇法、最大最小刻度線確定法[15],人工選擇法浪費(fèi)人力、最大最小刻度線確定法無(wú)法滿足圓形滿刻度線儀表,本文提出一種基于零刻度線標(biāo)記的儀表示數(shù)讀取算法,本方法適應(yīng)于讀取固定和少量易于標(biāo)記的儀表.在攝像頭拍照前,用綠色小圓標(biāo)記指針式儀表零刻度線,如圖11(a)所示.儀表讀數(shù)計(jì)算有角度法、距離法,本文采用角度法,讀取結(jié)果如圖14所示.
圖14 儀表讀數(shù)識(shí)別圖
以圖像左下角為原點(diǎn),建立如圖15所示的坐標(biāo)系.
圖15 指針旋轉(zhuǎn)角度示意圖
則:
(3)
(4)
式中:(x0,y0)為零刻度線端點(diǎn)坐標(biāo);(x1,y1)為指針回轉(zhuǎn)中心坐標(biāo);(x2,y2)為指針端點(diǎn)坐標(biāo);θ1為零刻度線端點(diǎn)與指針回轉(zhuǎn)中心連線與x軸正方向夾角(°);θ2為指針端點(diǎn)與指針回轉(zhuǎn)中心連線與x軸正方向夾角(°);atan2為math庫(kù)的一個(gè)函數(shù),其公式為:
(5)
儀表示數(shù)計(jì)算公式為:
(6)
式中:D為儀表讀數(shù);θ為指針相對(duì)于零刻度線的回轉(zhuǎn)角度;R為儀表量程對(duì)應(yīng)的最大回轉(zhuǎn)角度;l為儀表量程.當(dāng)θ1×θ2≥0時(shí),θ=|θ1-θ2|;當(dāng)θ1×θ2<0時(shí),θ=|θ1+θ2|.
為了測(cè)試算法的準(zhǔn)確性,本文采集了20張不同示數(shù)的儀表圖像,進(jìn)行儀表讀數(shù)識(shí)別實(shí)驗(yàn),其中YOLOv5模型檢測(cè)結(jié)果均為Circular instrument,儀表讀數(shù)識(shí)別結(jié)果見(jiàn)表2.本文的算法對(duì)清晰的指針式儀表圖像具有較高的識(shí)別能力,其讀數(shù)識(shí)別相對(duì)誤差均小于2.1%,平均相對(duì)誤差為1.2%,具有較強(qiáng)的識(shí)別能力和準(zhǔn)確性.
表2 指針式儀表讀數(shù)識(shí)別結(jié)果
針對(duì)當(dāng)前大壩廊道巡檢以及指針式儀表識(shí)別特點(diǎn),設(shè)計(jì)一套適用于巡檢機(jī)器人的基于YOLOv5的大壩廊道指針式儀表檢測(cè)與讀數(shù)識(shí)別算法,采用基于機(jī)器視覺(jué)的指針式儀表自動(dòng)識(shí)別及讀數(shù)方法,大大地減輕了人工負(fù)擔(dān),避免了巡檢人員的主觀錯(cuò)誤,更加準(zhǔn)確和高效.主要成果如下:
1)提出一種基于YOLOv5的指針式儀表自動(dòng)識(shí)別和數(shù)據(jù)采集方法.通過(guò)自制儀表數(shù)據(jù)集,訓(xùn)練YOLOv5s網(wǎng)絡(luò)模型,該模型能夠自動(dòng)識(shí)別儀表類型,定位圖像中儀表位置,經(jīng)測(cè)試該模型精確度高.
2)通過(guò)目標(biāo)檢測(cè)算法識(shí)別出儀表后,完成一種基于圖像處理技術(shù)的指針式儀表讀數(shù)識(shí)別算法,主要包括表盤(pán)區(qū)域提取、刻度線提取及指針回轉(zhuǎn)中心的確定、指針提取、零刻度線的確定和讀數(shù),測(cè)試結(jié)果表明讀數(shù)識(shí)別相對(duì)誤差均小于2.1%.