李 俊,袁 亮,冉 騰
(新疆大學(xué) 機(jī)械工程學(xué)院,新疆 烏魯木齊 830046)
在有電磁干擾的環(huán)境下,數(shù)顯式、電子式儀表容易發(fā)生故障,而指針式儀表卻在抗干擾能力、結(jié)構(gòu)和成本方面都有顯著的優(yōu)勢(shì),因而被廣泛應(yīng)用于社會(huì)的諸多領(lǐng)域。
但是指針式儀表在傳統(tǒng)的人工判讀過(guò)程中,會(huì)因注意力不集中、視覺(jué)疲勞等原因造成誤讀。此外,在工況惡劣、安全風(fēng)險(xiǎn)高的場(chǎng)所(強(qiáng)輻射、高溫、化工場(chǎng)所等),并不適合人工觀測(cè)讀取儀表數(shù)據(jù)。因此,進(jìn)行指針式儀表的自動(dòng)檢測(cè)和讀數(shù)研究具有重要意義。
隨著計(jì)算機(jī)視覺(jué)和目標(biāo)檢測(cè)技術(shù)的不斷發(fā)展,指針式儀表數(shù)據(jù)的自動(dòng)讀取技術(shù)變得日臻成熟。針對(duì)復(fù)雜環(huán)境中儀表自動(dòng)檢測(cè)和讀數(shù)困難的問(wèn)題,已有學(xué)者做了許多具有指導(dǎo)意義的研究。圓形指針式儀表通常采用Hough圓檢測(cè)檢測(cè)進(jìn)行表盤定位與提取,但該方法易受到外形類似儀表的物體干擾。房樺等[1]利用SIFT(scale invariant feature transform)算法識(shí)別儀表,利用快速霍夫變換提取了指針角度。楊志娟等[2]提出了利用ORB(oriented FAST and rotated BRIEF)算法,求解儀表模板圖像與待測(cè)圖像的透視變換矩陣,定位表盤區(qū)域,并根據(jù)表盤灰度特征信息,提出了基于圓周區(qū)域的累積直方圖法對(duì)指針進(jìn)行了定位。GAO J L等[3]提出了利用改進(jìn)的ORB算法實(shí)現(xiàn)了儀表的搜索與識(shí)別,利用相似特征三角形方法確定了指針回轉(zhuǎn)中心坐標(biāo),引導(dǎo)PTZ調(diào)整了其姿態(tài)。胡彬等[4]通過(guò)提取待識(shí)別圖片和模板圖片的KAZE[5]特征,并采用KNN(k-nearest neighbor)算法進(jìn)行了關(guān)鍵點(diǎn)匹配,進(jìn)行了特征匹配,從而得到了表盤區(qū)域,最后采用概率霍夫變換擬合出了指針直線。
基于特征匹配的方法都需要人工預(yù)先標(biāo)定儀表模板,需要待識(shí)別圖像和模板之間要具有高度的相似性,檢測(cè)儀表速度較慢,在一定程度上限制了其應(yīng)用范圍。
筆者提出一種復(fù)雜背景下的指針式儀表自動(dòng)檢測(cè)和讀數(shù)方法,通過(guò)基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)解決上述方法存在的問(wèn)題;首先利用YOLOv4[6]檢測(cè)截取儀表區(qū)域,消除外形類似儀表的物體和背景環(huán)境的干擾,提高指針儀表區(qū)域的顯著性,然后利用霍夫變換提取表盤,RANSAC直線擬合方法提取指針中心線,結(jié)合中心線斜率求出儀表讀數(shù),最后通過(guò)實(shí)際測(cè)試驗(yàn)證方法的有效性和快速性。
用傳統(tǒng)方法獲取指針儀表圖像區(qū)域時(shí),需要構(gòu)建模板圖像,選取模板圖像必須要滿足許多條件,并且模板圖像構(gòu)建較為耗時(shí)。而利用YOLOv4進(jìn)行目標(biāo)檢測(cè),數(shù)據(jù)收集和模型訓(xùn)練簡(jiǎn)單,能夠快速魯棒地從相機(jī)采集到的圖像中檢測(cè)出儀表。
近年來(lái),研究人員在目標(biāo)檢測(cè)領(lǐng)域取得了很多突破。YOLOv4能夠非常好地平衡目標(biāo)檢測(cè)的精度與速度。YOLOv4目標(biāo)檢測(cè)器結(jié)構(gòu)由輸入、骨架網(wǎng)絡(luò)、頸部、頭部4個(gè)模塊組成。輸入端對(duì)數(shù)據(jù)進(jìn)行了Mosaic增強(qiáng),骨架網(wǎng)絡(luò)采用CSPDarknet53,它是在YOLOv3[7]的骨架網(wǎng)絡(luò)Darknet53的基礎(chǔ)上借鑒CSPnet[8]而來(lái),用于提取圖像的淺層特征;其頸部采用SPP[9]、FPN[10]、PAN[11]等模塊對(duì)淺層特征進(jìn)行了增強(qiáng),使模型能夠?qū)W習(xí)得到期望的特征;頭部采用YOLOv3返回目標(biāo)的分類和邊界框。
YOLOv4原有模型并未對(duì)指針式儀表進(jìn)行大量的數(shù)據(jù)訓(xùn)練,在實(shí)際檢測(cè)中無(wú)法獲得理想的檢測(cè)結(jié)果。因此,筆者針對(duì)指針式儀表,在不同背景、光照、拍攝角度、尺度的條件下采集圖像,建立VOC格式數(shù)據(jù)集,訓(xùn)練一個(gè)目標(biāo)檢測(cè)網(wǎng)絡(luò)模型;并根據(jù)計(jì)算機(jī)硬件配置和訓(xùn)練需求配置環(huán)境,修改YOLOv4網(wǎng)絡(luò)配置文件參數(shù)設(shè)置,完成模型訓(xùn)練。
其參數(shù)設(shè)置如表1所示。
表1 參數(shù)設(shè)置
筆者采集儀表圖像進(jìn)行訓(xùn)練,模型訓(xùn)練batch數(shù)為4 000次,訓(xùn)練總時(shí)長(zhǎng)為53 h。初始損失值高達(dá)2 000;訓(xùn)練過(guò)程中損失值迅速下降,batch值達(dá)到200后損失值降至5以下,訓(xùn)練結(jié)束時(shí)模型平均損失值為0.113。
模型的平均損失值曲線如圖1所示。
圖1 平均損失值曲線
平均交并比如圖2所示。
圖2 平均交并比變化
模型訓(xùn)練迭代總次數(shù)超過(guò)2.5×105后,交并比平均值約為0.95;模型的均值平均精度(mAP)達(dá)到95.45%。綜合各項(xiàng)數(shù)據(jù)表明,該模型具備較高的目標(biāo)檢測(cè)精度。
傳統(tǒng)的儀表檢測(cè)方法有霍夫圓檢測(cè)和特征點(diǎn)匹配等。筆者利用霍夫圓檢測(cè)進(jìn)行儀表盤檢測(cè)提取時(shí),當(dāng)參數(shù)調(diào)整不合適,或存在與儀表外形類似的圓形物體干擾時(shí),就會(huì)導(dǎo)致檢測(cè)失效。在建立高質(zhì)量模板的前提下,利用基于特征點(diǎn)匹配的方式檢測(cè)儀表,檢測(cè)準(zhǔn)確率和檢測(cè)時(shí)間都有較大差異。
傳統(tǒng)儀表檢測(cè)如圖3所示。
圖3 傳統(tǒng)儀表檢測(cè)
上述方法雖能從背景環(huán)境中檢測(cè)提取出儀表,但大多依賴于高質(zhì)量的儀表模板,應(yīng)對(duì)環(huán)境變化的魯棒性稍差。
經(jīng)過(guò)數(shù)據(jù)訓(xùn)練,YOLOv4模型能很好地克服上述方法的缺點(diǎn)。筆者將采集到的圖像輸入到訓(xùn)練好的目標(biāo)檢測(cè)模型,模型會(huì)自動(dòng)返回預(yù)測(cè)的儀表分類和邊界框;在不同條件(不同光照、拍攝角度等)下進(jìn)行YOLOv4儀表檢測(cè)實(shí)驗(yàn)。
YOLOv4儀表檢測(cè)結(jié)果如圖4所示。
圖4 YOLOv4儀表檢測(cè)結(jié)果
根據(jù)返回的儀表邊界框位置坐標(biāo)可以將絕大部分背景剔除,但儀表指針檢測(cè)多基于精確的表盤輪廓,所以筆者利用霍夫變換進(jìn)一步消除殘余背景,提取出表盤。
表盤提取結(jié)果如圖5所示。
圖5 表盤提取結(jié)果
圖5(a)表示圖4第一行第二列圖,根據(jù)邊界框剔除背景后的儀表區(qū)域;圖5(b)表示儀表區(qū)域圖像經(jīng)均值濾波、灰度化后,筆者采用霍夫圓變換[12]進(jìn)行表盤輪廓檢測(cè),根據(jù)霍夫圓的半徑創(chuàng)建mask提取得到的表盤區(qū)域。
標(biāo)準(zhǔn)霍夫圓變換將每個(gè)非零像素點(diǎn)都視為潛在的圓上點(diǎn)。笛卡爾坐標(biāo)系下,將經(jīng)過(guò)二維圖像上非零像素點(diǎn)(x0,y0)的所有圓映射到abr組成的三維坐標(biāo)系中,將會(huì)是一條三維曲線。遍歷圖像中每個(gè)非零像素點(diǎn),將得到三維曲線簇。如果abr坐標(biāo)系中相交于某一點(diǎn)曲線數(shù)量,超過(guò)給定閾值則點(diǎn)(a,b,r)在二維圖像上是圓。但這樣計(jì)算量特別大,運(yùn)算速度慢。
筆者采用霍夫梯度圓檢測(cè)方法,先篩選候選像素點(diǎn),即先求圖像梯度,將梯度值大的區(qū)域視為潛在的圓的邊緣,只對(duì)這些區(qū)域進(jìn)行檢測(cè),大幅降低了計(jì)算量。
笛卡爾坐標(biāo)系下圓方程為:
(x-a)2+(y-b)2=r2
(1)
其簡(jiǎn)化方程為:
a=x-rcosθ
b=y-rsinθ
(2)
式中:(a,b)—圓心;r—半徑;θ—半徑與x軸之間的夾角。
由于光照等原因,表盤輪廓邊緣可能會(huì)導(dǎo)致利用霍夫變換得到的指針回轉(zhuǎn)中心不準(zhǔn)確。表盤中多數(shù)刻度線輪廓往往較為清晰,根據(jù)刻度線都指向指針回轉(zhuǎn)中心的特點(diǎn),筆者利用最小二乘法[13-15]擬合刻度線輪廓直線,擬合直線交點(diǎn)的平均值點(diǎn)即為指針的回轉(zhuǎn)中心。
刻度線輪廓直線擬合分為刻度線輪廓查找和最小二乘刻度線直線擬合兩個(gè)步驟。
真實(shí)環(huán)境下光照條件多變,采集到的圖像可能出現(xiàn)光照不均勻的情況。筆者利用自適應(yīng)閾值分割進(jìn)行了圖像二值化,然后執(zhí)行膨脹與腐蝕操作;對(duì)二值圖像進(jìn)行了連通組件分析,得到了連通組件的輪廓點(diǎn)集;輪廓點(diǎn)集中包含無(wú)效輪廓,筆者利用刻度線都集中在表盤圓附近和刻度輪廓有特定橫縱比的特點(diǎn),對(duì)輪廓進(jìn)行了篩選,進(jìn)而得到了刻度線輪廓。
刻度線輪廓如圖6所示。
圖6 刻度線輪廓
最小二乘直線擬合是通過(guò)最小化偏差平方和來(lái)尋找刻度線輪廓點(diǎn)集的最佳函數(shù)匹配。其直線的截距式公式為:
y=ax+b
(3)
式中:a—直線斜率;b—y軸上的截距。
平方偏差求和公式為:
(4)
式中:(xi,yi)—刻度線輪廓外接最小矩形點(diǎn)集中的任意點(diǎn)。
筆者根據(jù)最小二乘法擬合直線的原理,求解關(guān)于a,b的最小平方偏差和函數(shù)的最小值。偏差和的偏導(dǎo)公式分別為:
(5)
(6)
通過(guò)求解上式可得到輪廓擬合直線。
刻度線直線擬合和指針回轉(zhuǎn)中心如圖7所示。
圖7 刻度線直線擬合和指針回轉(zhuǎn)中心
由圖7(a)可看到刻度線輪廓直線擬合結(jié)果;所有的刻度線擬合直線會(huì)相交,交點(diǎn)坐標(biāo)的平均值點(diǎn)即為指針回轉(zhuǎn)中心;由圖7(b)可看到求得的指針回轉(zhuǎn)中心。
輪廓點(diǎn)集中去除刻度線、表盤邊緣及雜點(diǎn)輪廓后,受到表盤中字符干擾,仍無(wú)法得到精確的指針輪廓。筆者對(duì)指針輪廓進(jìn)行細(xì)化,得到了指針骨架,利用RANSAC[16]算法去除了由字符影響產(chǎn)生的骨架中離群點(diǎn),進(jìn)而擬合了指針骨架直線,得到了精確的指針中心線。
筆者對(duì)指針輪廓圖像進(jìn)行了Canny邊緣檢測(cè),用概率霍夫變換直線檢測(cè)指針邊緣直線,得到了指針頂點(diǎn)。
指針定位過(guò)程如圖8所示。
圖8 指針定位過(guò)程
儀表讀數(shù)計(jì)算有角度法和距離法兩種方法,其中角度法簡(jiǎn)單且易于操作。本研究選用角度法計(jì)算儀表讀數(shù)。數(shù)字圖像以其左上角為原點(diǎn),水平方向?yàn)閤軸,垂直方向?yàn)閥軸。儀表最小刻度線和最大刻度線位置固定,筆者提出以指針的回轉(zhuǎn)中心為原點(diǎn),建立與圖像坐標(biāo)系相同的儀表直角坐標(biāo)系。
儀表坐標(biāo)系如圖9所示。
圖9 儀表坐標(biāo)系
計(jì)算指針中心直線與水平方向的夾角,換算出指針相對(duì)于最小刻度線的回轉(zhuǎn)角度,就能得到儀表讀數(shù)。
余弦絕對(duì)值公式為:
(7)
指針中心線與x軸的反余弦值公式為:
β=arccosK
(8)
式中:(x,y)—指針中心線頂點(diǎn)坐標(biāo);(xc,yc)—指針回轉(zhuǎn)中心坐標(biāo);K—余弦絕對(duì)值;β—指針與x軸的夾角。
根據(jù)下面的規(guī)則,可得出指針相對(duì)于最小刻度的回轉(zhuǎn)角度:
(1)當(dāng)y>yc:
x>xc時(shí),指針在第一象限θ=5π/4+|β|;
x (2)當(dāng)y x x>xc時(shí),指針在第四象限θ=5π/4-|β|。 通過(guò)計(jì)算指針回轉(zhuǎn)角度、最大回轉(zhuǎn)角度和儀表量程之間的比值關(guān)系,即可求得儀表讀數(shù)。儀表讀數(shù)計(jì)算公式為: (9) 式中:θi—指針回轉(zhuǎn)角度;valuei—儀表讀數(shù);valuemax—儀表量程最大值;valuemin—儀表量程最小值;R—指針最大回轉(zhuǎn)角度(最大刻度與最小刻度間夾角)。 筆者對(duì)準(zhǔn)確度等級(jí)為1.5的溫度表進(jìn)行檢測(cè)精度、速度與讀數(shù)精度的實(shí)驗(yàn)?;谔卣鞯臋z測(cè)方式,檢測(cè)精度與速度取決于對(duì)模板質(zhì)量及儀表圖像分辨率的高低,實(shí)際的檢測(cè)精度并不理想,精度均低于50%;與傳統(tǒng)的方法相比,筆者所提的方法檢測(cè)精度更高,儀表檢測(cè)精度達(dá)到了98.6%;并且隨著訓(xùn)練集的不斷擴(kuò)充,精度會(huì)進(jìn)一步提高。 筆者對(duì)分辨率為720×540的包含儀表的圖像進(jìn)行檢測(cè),所采用的YOLOv4檢測(cè)單幀圖像時(shí)間為80.65 ms,并且分辨率變化對(duì)檢測(cè)時(shí)間影響不大;而基于特征匹配的檢測(cè)方式時(shí)間都在240 ms以上,并且隨著圖像分辨率的增大,檢測(cè)時(shí)間變長(zhǎng)。 各檢測(cè)方法檢測(cè)速度如表2所示。 表2 各檢測(cè)方法檢測(cè)速度 以絕對(duì)誤差占量程的百分比作為基本誤差來(lái)衡量識(shí)別精度,基本誤差越小,識(shí)別精度越高。筆者對(duì)量程為100 ℃的指針式溫度表進(jìn)行了50組讀數(shù)識(shí)別精度實(shí)驗(yàn),此處僅展示部分讀數(shù)識(shí)別數(shù)據(jù)。 讀數(shù)識(shí)別結(jié)果如表3所示。 表3 讀數(shù)識(shí)別結(jié)果 實(shí)驗(yàn)結(jié)果顯示:本研究算法識(shí)別出的數(shù)據(jù)的平均基本誤差只有0.72%,具有較高的識(shí)別精度;實(shí)驗(yàn)數(shù)據(jù)中較大的誤差主要來(lái)自較大的圖像傾斜,后續(xù)將在校正算法方面進(jìn)行深入研究,以進(jìn)一步提升識(shí)別精度。 影響儀表識(shí)別精度的因素還有鏡頭畸變和圖像傾斜等,實(shí)驗(yàn)過(guò)程中使用相機(jī)本身鏡頭畸變較小,在儀表檢測(cè)前通過(guò)標(biāo)定板對(duì)相機(jī)進(jìn)行了標(biāo)定,獲得了相機(jī)的內(nèi)參和畸變系數(shù),用其對(duì)圖像進(jìn)行了畸變矯正,基本上消除了鏡頭畸變的影響。 針對(duì)儀表自動(dòng)檢測(cè)讀數(shù)時(shí),由于儀表特征不明顯、復(fù)雜背景環(huán)境等因素造成的儀表檢測(cè)提取困難和速度慢的問(wèn)題,筆者提出了基于YOLOv4的指針式儀表自動(dòng)檢測(cè)和讀數(shù)方法,并在復(fù)雜的背景環(huán)境、光照、不同尺度等條件下,對(duì)算法進(jìn)行了實(shí)驗(yàn)驗(yàn)證,并得出了以下結(jié)論: (1)本研究算法消除了背景干擾,能夠快速地從背景中檢測(cè)提取出儀表,儀表檢測(cè)精度達(dá)到了98.6%,平均檢測(cè)速度為80.65 ms/f; (2)實(shí)際讀數(shù)實(shí)驗(yàn)表明,本研究的讀數(shù)方法可以準(zhǔn)確地識(shí)別儀表讀數(shù),平均基本誤差為0.72%。 本研究算法能對(duì)全量程范圍角度為270°的指針式儀表實(shí)現(xiàn)檢測(cè)與讀數(shù)識(shí)別,后續(xù)通過(guò)優(yōu)化讀數(shù)識(shí)別算法提升了算法通用性;該算法在儀表傾斜、拍攝角度變化時(shí)能夠快速、精確地檢測(cè)出儀表,但傾斜和拍攝角度會(huì)影響讀數(shù)精度。 下一步筆者將在圖像校正算法方面進(jìn)行研究,以消除圖像傾斜和拍攝角度對(duì)儀表讀數(shù)精度的影響。5 實(shí) 驗(yàn)
6 結(jié)束語(yǔ)