石孟曦,張文紅,張 磊,郭佑民
(1. 蘭州交通大學(xué)機(jī)電技術(shù)研究所,甘肅 蘭州 730070;2. 中國(guó)鐵路蘭州局集團(tuán)有限公司科研技術(shù)監(jiān)督所,甘肅 蘭州 730000;3. 甘肅省物流及運(yùn)輸裝備信息化工程技術(shù)研究中心,甘肅 蘭州 730070)
隨著計(jì)算機(jī)技術(shù)與機(jī)器視覺(jué)的迅速興盛,與此同時(shí),與之相關(guān)的各類檢測(cè)技術(shù)被廣泛用于識(shí)別各種精密儀器,同時(shí)由于工業(yè)生產(chǎn)的規(guī)模的迅速擴(kuò)大,各類儀表的數(shù)量也顯著上升,因此如何快速、準(zhǔn)確地獲取儀器儀表的測(cè)量值已經(jīng)成為了亟待解決的問(wèn)題。目前雖然關(guān)于儀表讀數(shù)識(shí)別技術(shù)的相關(guān)研究已取得一定的成果,但是在具體的應(yīng)用場(chǎng)景中仍舊存在著亟待解決的問(wèn)題[1]。
近些年以來(lái),有關(guān)目標(biāo)回歸檢測(cè)分析方法的網(wǎng)絡(luò)模型基本都是以深度學(xué)習(xí)為基礎(chǔ),其中可以大致分為兩種:其中第一種是以侯選框?yàn)榛A(chǔ)的Faster R-CNN算法,第二種則是以深度學(xué)習(xí)為基礎(chǔ)的SSD和YOLO算法[2],后者的目標(biāo)檢測(cè)結(jié)果速度更快并且對(duì)于大物件的目標(biāo)檢測(cè)結(jié)果準(zhǔn)確率更高[3]。
Faster R-CNN系列算法根據(jù)先獲取侯選框之后再實(shí)施分類的方法,得以確定多目標(biāo)。它為了提高檢測(cè)的準(zhǔn)確性,巧妙地把檢測(cè)問(wèn)題用分類的方法完成,其優(yōu)點(diǎn)主要是精度高,但同時(shí)也存在著速度慢的缺點(diǎn)[4]。
針對(duì)上述存在的問(wèn)題,本文提出了一種結(jié)合YOLOv2與LSD的算法,在目標(biāo)檢測(cè)方面,選用精度優(yōu)于Faster R-CNN,且速率優(yōu)于傳統(tǒng)ORB與SSD[5]的YOLOv2算法,采用殘差網(wǎng)絡(luò)ResNet50作為基礎(chǔ)網(wǎng)絡(luò)構(gòu)架。同時(shí),去除其最末尾的池化層與全連接層,并添加一個(gè)轉(zhuǎn)移層。從而能夠獲得更完善的細(xì)粒度特征,提高識(shí)別同一目標(biāo)的準(zhǔn)確度和魯棒性。在識(shí)別指針?lè)矫?本文使用了實(shí)時(shí)性與精度更優(yōu)的LSD算法。
本文采用機(jī)器視覺(jué)中YOLOv2檢測(cè)方法首先分割出待測(cè)圖像,準(zhǔn)確提取儀表表盤區(qū)域。其次根據(jù)LSD檢測(cè)算法,得到指針的精確快速的定位。最終,經(jīng)過(guò)計(jì)算得出的指針傾角同時(shí)與待測(cè)壓力表的刻度信息進(jìn)行對(duì)比推算,獲得待測(cè)壓力表的示數(shù)值。本文主要引入了YOLOv2進(jìn)行目標(biāo)的檢測(cè)以及LSD進(jìn)行指針位置信息的提取。本文的具體工作流程如圖1所示。
圖1 基于YOLOv2 和LSD的儀表識(shí)讀流程
YOLOv2在通常情況下可以實(shí)現(xiàn)多類型目標(biāo)的檢測(cè),由于只需要檢測(cè)輸入圖像中的儀表,無(wú)需執(zhí)行多類型目標(biāo)檢測(cè)。為了減少多目標(biāo)網(wǎng)絡(luò)檢測(cè)和分類所帶來(lái)的額外計(jì)算量,因而簡(jiǎn)化YOLOv2 的網(wǎng)絡(luò)結(jié)構(gòu),并減少卷積核的樣本規(guī)模到選擇更具表現(xiàn)力的儀表特征,能夠顯著提高檢測(cè)的精度與效率。
YOLOv2算法中,預(yù)訓(xùn)練圖像的分辨率為448×448, Darknet-19的基本架構(gòu)由19個(gè)卷積層、5個(gè)最大池化層組成。作為一種基本架構(gòu),Darknet-19 網(wǎng)絡(luò)主要是通過(guò)使用全局平均池化層來(lái)實(shí)現(xiàn)準(zhǔn)確預(yù)測(cè)[6]。此外,在每一個(gè)卷積層之后都會(huì)添加一個(gè) BN (Batch Normalization)層,這種結(jié)構(gòu)可以使模型達(dá)到更高的速度并降低模型過(guò)擬合概率。
Darknet-19網(wǎng)絡(luò)能夠表現(xiàn)出很強(qiáng)的目標(biāo)檢測(cè)效果,但在小范圍內(nèi)沒(méi)有優(yōu)勢(shì)。在實(shí)際場(chǎng)景下,儀表在整幅圖中占據(jù)較小的尺寸,而淺層特征是小尺寸儀表的關(guān)鍵依賴層。然而,在Darknet-19基礎(chǔ)構(gòu)成中,19個(gè)卷積層和4個(gè)池化層先提取特征,這阻止了高分辨率中的淺層特征的使用,會(huì)造成淺層訓(xùn)練不足特征。這會(huì)阻止使用高分辨率淺層特征,并會(huì)造成淺層訓(xùn)練特征不足。
ResNet50不僅可以有效解決殘差網(wǎng)絡(luò)數(shù)據(jù)深度過(guò)深可能引起的梯度爆炸問(wèn)題,并且還可以有效緩解深度學(xué)習(xí)網(wǎng)絡(luò)退化問(wèn)題,而且基于該網(wǎng)絡(luò)的數(shù)據(jù)訓(xùn)練處理過(guò)程要明顯優(yōu)于其它網(wǎng)絡(luò)。
因此,本文充分考慮了ResNet50的優(yōu)點(diǎn),將其深層神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò)構(gòu)架。通過(guò)選用殘差神經(jīng)網(wǎng)絡(luò)ResNet50獲取到待測(cè)壓力表的特征,替換了原本YOLOv2 中的基礎(chǔ)網(wǎng)絡(luò)構(gòu)架Darknet-19。同時(shí),進(jìn)一步對(duì)該深層神經(jīng)網(wǎng)絡(luò)做出相應(yīng)的改進(jìn)與完善,去除其最末尾的池化層與全連接層,并添加一個(gè)轉(zhuǎn)移層。這樣有效的融合了深淺特征,可以提取豐富的內(nèi)容,獲得更完善的細(xì)粒度特征。采用聚類算法K-means作為侯選框的選擇策略,相比于傳統(tǒng)策略,此算法能更為準(zhǔn)確的識(shí)別同一類目標(biāo),并且摒棄無(wú)關(guān)侯選框。如圖2顯示了部分目標(biāo)檢測(cè)結(jié)果:
圖2 不同位置中的儀表檢測(cè)結(jié)果
Loss值表明了在該訓(xùn)練中的預(yù)測(cè)結(jié)果與標(biāo)定結(jié)果之間的偏差值,其中,Loss值和訓(xùn)練網(wǎng)絡(luò)檢測(cè)目標(biāo)的精度呈現(xiàn)負(fù)相關(guān)的態(tài)勢(shì)。圖3為YOLOv2 與改進(jìn)后的YOLOv2 的Loss值變化曲線圖。
圖3 Loss值變化曲線圖
如圖所示,Loss值在經(jīng)歷了較大程度的降低之后,逐漸呈現(xiàn)穩(wěn)定的狀態(tài)。就整體的變化過(guò)程而言,經(jīng)過(guò)相應(yīng)的改進(jìn)后的YOLOv2的Loss值顯然低于YOLOv2原模型,由此可以得知,本文做出的改進(jìn)后的模型在目標(biāo)準(zhǔn)確度方面的確優(yōu)于原模型。
通常根據(jù)精度(Preision,P)、召回率(Recall,R)與平均準(zhǔn)確率(Average-Precision,AP)相關(guān)指標(biāo)對(duì)搭建的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行綜合評(píng)估。
(1)
在上式中,TP(TRUE P)包含的意義為預(yù)測(cè)為正例,同時(shí)真實(shí)結(jié)果也為正例的特征數(shù),而FP(False P)包含的意義為預(yù)測(cè)為正例,而真實(shí)結(jié)果為負(fù)例的特征數(shù)。
召回率包含的意義為最終得到的正確的數(shù)值與所有正確的數(shù)值的比率,TN包含的意義為預(yù)測(cè)為負(fù)例,同時(shí)真實(shí)結(jié)果也為負(fù)例的特征數(shù),FN包含的意義為預(yù)測(cè)為負(fù)例,而真實(shí)結(jié)果為正例的特征數(shù)。
(2)
精度是針對(duì)預(yù)測(cè)結(jié)果而言,表示的是真實(shí)的正例在預(yù)測(cè)為正的例子中所占的比率。
(3)
上式中,P代表Precision,r代表Recall,平均準(zhǔn)確率即為P-R曲線下的包絡(luò)區(qū)域的面積。通常情況下AP值與分類器的性能,兩者會(huì)呈現(xiàn)正相關(guān)的態(tài)勢(shì)。
本文提出的改進(jìn)YOLOv2網(wǎng)絡(luò)模型在檢測(cè)精度上有一定的優(yōu)勢(shì),通過(guò)多例測(cè)試結(jié)果可以得到兩種算法的召回率和精度曲線如圖4所示。
圖4 召回率與精度曲線
如圖4所示,最后壓力表的分類結(jié)果可達(dá)到83%的召回率,之后,隨著召回率的提高,精度逐漸下降,最后精度降低到94%左右,經(jīng)過(guò)計(jì)算后得到的召回率從0到1之間的平均精度為96%,精度滿足對(duì)待測(cè)壓力表實(shí)現(xiàn)目標(biāo)檢測(cè)的要求。
在圖像預(yù)處理階段,在圖像經(jīng)過(guò)檢測(cè)與校正之后即可得到用于待檢的高質(zhì)量目標(biāo)圖像,為了剔除外部無(wú)關(guān)的噪聲與影響,進(jìn)行均值濾波。采用sobel算子進(jìn)行邊緣檢測(cè)。如圖5為采用sobel算子。
圖5 sobel算子進(jìn)行邊緣檢測(cè)
圖6為采用非極大值抑制的結(jié)果。
圖6 非極大值抑制
通常而言,Hough 變換是較為經(jīng)典的檢測(cè)方法,雖然它可以穩(wěn)定地實(shí)現(xiàn)某些功能,但實(shí)際上存在的一些缺點(diǎn)不能忽視。例如,檢測(cè)過(guò)程中需要手動(dòng)設(shè)置參數(shù)以限制線段的數(shù)量,這樣人為信息將降低算法的魯棒性。因此針對(duì)Hough 法運(yùn)算量大、缺乏實(shí)時(shí)性等不足,本文所采用的指針直線的提取方法,是由Gioi等人首次提出的LSD算法,以改善傳統(tǒng)算法的計(jì)算實(shí)時(shí)性與精度[7]。
LSD直線提取算法的步驟[8]如下:
1)高斯降采樣。即將圖像長(zhǎng)、寬進(jìn)行縮放,再進(jìn)行高斯濾波。
2)梯度的計(jì)算。像素點(diǎn)(x,y)處的灰度值為i(x,y)。梯度由以下公式來(lái)計(jì)算。
gx(x,y)=
(4)
gy(x,y)=
(5)
3)區(qū)域的增長(zhǎng)。將采用過(guò)的鄰域像素進(jìn)行檢測(cè)并標(biāo)記。
4)更新區(qū)域的傾斜度。每次向該區(qū)域中增加新的像素時(shí),則會(huì)更新其傾斜度為
(6)
種子點(diǎn)處的level-line角度即為初始角度,下標(biāo)j是用來(lái)遍歷該區(qū)域中的所有像素。
5)直線段的確定。
為了測(cè)試文中改進(jìn)方法的性能,從訓(xùn)練樣本中選取圖像來(lái)評(píng)估算法的實(shí)際效果,同時(shí)與傳統(tǒng)方法進(jìn)行了比較。圖7是使用Hough變換法之后得到的結(jié)果,由此可知,傳統(tǒng)的Hough變換存在著精度不足和易被誤檢的問(wèn)題。圖8是采用改進(jìn)后的Hough變換的結(jié)果,相對(duì)于未進(jìn)行改進(jìn)的原方法而言,改進(jìn)之后的效果較好,但準(zhǔn)確性和精度仍舊不足。圖9顯示了LSD對(duì)指針直線的識(shí)別結(jié)果,由此可以表明此方法克服了傳統(tǒng)方法的精度不足和容易誤檢的缺陷,提高了精度和準(zhǔn)確度。
圖7 Hough變換的結(jié)果
圖8 改進(jìn)Hough變換的結(jié)果
圖9 LSD指針識(shí)別結(jié)果
在誤檢和漏檢兩個(gè)方面,根據(jù)圖7和圖8能夠清楚地看出,傳統(tǒng)的直線檢測(cè)方法在自然場(chǎng)景圖中會(huì)存在較多誤檢,并且在兩組圖像中也存在像著一定的漏檢。因此,通過(guò)與原有的方法進(jìn)行對(duì)比后,可以得知LSD可以達(dá)到更大程度上的準(zhǔn)確度和更穩(wěn)定的性能。
由表1能夠清楚地看出,改進(jìn)Hough變換法較Hough變換法耗時(shí)提升了24.5%,而LSD算法較Hough變換法耗時(shí)提升了71.9%,較改進(jìn)Hough變換法耗時(shí)提升了62.8%。因此,LSD算法在提高計(jì)算效率這部分較其余兩種算法更為顯著。
表1 直線檢測(cè)各算法耗時(shí)對(duì)比
壓力表讀數(shù)識(shí)別的角度法是利用待測(cè)壓設(shè)待測(cè)表的指針與其右刻度線的夾角為α,指向該刻度線的值為L(zhǎng),待測(cè)表的指針與其左刻度線的夾角為β,指向該刻度線的值為H,被測(cè)儀表的最終讀數(shù)由以下公式計(jì)算[9]:
(7)
在現(xiàn)實(shí)場(chǎng)景下,綜合考慮外界因素的影響,在分析了50張樣本圖片之后,提取其中的10張,分別采用Hough算法、改進(jìn)Hough算法、LSD算法并與人工識(shí)讀進(jìn)行比較,得到的結(jié)果如表2所示。由式(7)可算出LSD算法的識(shí)讀率可達(dá)96%。
表2 直線檢測(cè)各算法與人工識(shí)讀對(duì)比
本文完成的主要工作如下:
1)在傳統(tǒng)指針式壓力表讀取方法中摒棄了缺乏穩(wěn)定性的 ORB等算法[10],利用機(jī)器視覺(jué)中的 YOLOv2模型,提出了一種改進(jìn)的YOLOv2算法,通過(guò)檢測(cè)變電站場(chǎng)景中的壓力表圖片,能夠準(zhǔn)確提取壓力表圖像。由實(shí)驗(yàn)可以得出,改進(jìn)后YOLOv2的Loss值明顯低于傳統(tǒng)的YOLOv2,同時(shí)改進(jìn)后YOLOv2的平均精度為96%,優(yōu)于傳統(tǒng)的YOLOv2。
2)運(yùn)用圖像處理的方法與技術(shù),對(duì)待測(cè)儀表圖進(jìn)行濾波降噪、邊緣檢測(cè)等去除干擾的一系列預(yù)處理,為下一步的示值識(shí)讀打好基礎(chǔ)。
3)結(jié)合LSD方法得到待測(cè)表的指針直線的精準(zhǔn)位置信息,通過(guò)計(jì)算傾角來(lái)得到待測(cè)壓力表的示值,由實(shí)驗(yàn)可以得出,LSD算法較Hough變換法耗時(shí)提升了71.9%,較改進(jìn)Hough變換法耗時(shí)提升了62.8%。在現(xiàn)實(shí)場(chǎng)景下進(jìn)行識(shí)讀,LSD方法的準(zhǔn)確率可達(dá)到96%。
從本文的實(shí)驗(yàn)中能夠清楚地看出:由于壓力表的外觀和表盤之間的相似性差別,而且YOLOv2 算法在小型樣本上的表現(xiàn)力也很高,所以在實(shí)驗(yàn)中進(jìn)行檢測(cè)時(shí)所獲得的儀表位置信息也都是較為準(zhǔn)確的,這也給接下來(lái)進(jìn)行指針的提取和讀數(shù)工作提供了良好的基礎(chǔ)。在對(duì)壓力表進(jìn)行讀數(shù)的時(shí)候,通過(guò)對(duì)圖像進(jìn)行預(yù)處理以及采用LSD 直線檢測(cè)法,同時(shí)由于實(shí)驗(yàn)是在現(xiàn)實(shí)環(huán)境中進(jìn)行的,因此在拍攝過(guò)程中,相機(jī)的傾斜和光線的反射等問(wèn)題難以完全得到消除,這些影響因素都對(duì)壓力表的讀數(shù)造成了一些影響,但是總體來(lái)說(shuō),基于YOLOv2 算法和 LSD 直線檢測(cè)算法的讀數(shù)識(shí)別方法具有較高的準(zhǔn)確度與較強(qiáng)的魯棒性。