王國祝+趙浪濤
摘 要:傳統(tǒng)的液氣表采用分戶計(jì)量,分布在不同的地點(diǎn),表難以改造以實(shí)現(xiàn)集抄。為了實(shí)現(xiàn)快速地計(jì)量,展開基于嵌入式機(jī)器視覺來實(shí)現(xiàn)液氣表盤的圖像采集,自動(dòng)識(shí)別網(wǎng)絡(luò)自動(dòng)傳輸數(shù)據(jù),針對數(shù)字式儀表和機(jī)械式儀表盤的特色,采用了靈活的算法,實(shí)現(xiàn)了液氣表盤數(shù)字的識(shí)別和集抄,從而提高效率。
關(guān)鍵詞:嵌入式 機(jī)器視覺 液氣表盤 數(shù)字識(shí)別
由于我們國家對于早期的建筑中水表和天然氣表等實(shí)施的是分戶計(jì)量,水表氣表分布于各個(gè)家庭內(nèi)部,而不能像電力表那樣集中一個(gè)表箱實(shí)施網(wǎng)絡(luò)化集抄,這樣帶來了諸多的不便,加之有些家庭的水表氣表家裝后在櫥柜內(nèi)部,有時(shí)人難以進(jìn)入而實(shí)現(xiàn)視覺的判讀,因此,研發(fā)基于嵌入式計(jì)算機(jī)視覺技術(shù)的液氣表盤數(shù)字識(shí)別的手持設(shè)備,便于從業(yè)人員快速抄表,經(jīng)過手持設(shè)備圖像采集,自動(dòng)識(shí)別后,將識(shí)別的數(shù)字值直接通過移動(dòng)網(wǎng)絡(luò)傳輸至數(shù)據(jù)中心,這樣大大提高了計(jì)量和集抄的效率。
1 關(guān)鍵技術(shù)
之所以以嵌入式機(jī)器視覺來實(shí)現(xiàn)表盤數(shù)字的識(shí)別,就是要借助于嵌入式系統(tǒng)靈巧、低功耗、易部署等特點(diǎn)。實(shí)現(xiàn)嵌入式機(jī)器視覺可以選擇基于達(dá)芬奇DSP芯片的DM6446系統(tǒng)來實(shí)現(xiàn),也可以選擇基于ARM或Android的OpenCV的方式,或基于高性能的TI的Panda Board+Halcon Embeded來實(shí)現(xiàn)。
1.1 硬件實(shí)現(xiàn)
基于TI DSP DM6446:DM6446是TI公司推出的一款高性能的具有ARM內(nèi)核的DSP芯片,其帶有編程應(yīng)用的API程序接口,很適合作為機(jī)器視覺的硬件平臺(tái)來使用,而且其運(yùn)算速度快,在一些高速的視覺處理里面得到了大量的推廣和使用,但是其硬件成本高,而且其編程環(huán)境復(fù)雜,應(yīng)用編程具有一定的難度和深度,不易實(shí)現(xiàn)視覺處理的實(shí)現(xiàn)。基于ARM+OpenCV:在普通ARM嵌入開發(fā)板中預(yù)裝Linux內(nèi)核,然后預(yù)裝基于Linux內(nèi)核的OpenCV平臺(tái)軟件。OpenCV是一個(gè)開源的視覺處理軟件,無需購買,對于我們的表盤識(shí)別無需識(shí)別速度要求的情況下,是一個(gè)非常經(jīng)濟(jì)的選擇,但是OpenCV正因?yàn)槠溟_源的特性,對人臉識(shí)別的應(yīng)用的實(shí)現(xiàn)比較有特色,而對其他視覺應(yīng)用雖然能夠?qū)崿F(xiàn),但是編程工作量大,而且實(shí)現(xiàn)需要一定的周期,具有一定的難度?;诟咝阅蹵RM+Halcon:我們在實(shí)踐工作過程中選擇了基于TI 的Panda Board開發(fā)板的基礎(chǔ)上,預(yù)裝Halcon的Linux的嵌入式版本,來實(shí)現(xiàn)嵌入式機(jī)器視覺的開發(fā)。Panda Board基于OMAP4664的雙核ARM,其運(yùn)行速度快、效率高。Halcon是德國MVtec公司的視覺軟件平臺(tái),其提供了大量的視覺處理的算子,在PC平臺(tái)上編程實(shí)現(xiàn)后可以生成C/C#等多語言平臺(tái)的程序,因此我們借助于其強(qiáng)大的視覺處理功能,在PC上實(shí)現(xiàn)我們所需要的Halcon程序,然后在生成Linux平臺(tái)上C++應(yīng)用程序,然后移植后,將視覺處理的OCR識(shí)別應(yīng)用部署到硬件平臺(tái)上,實(shí)現(xiàn)其對儀器表盤的數(shù)字識(shí)別[1]。
我們正是以高性能的TI的OMAP4660為基礎(chǔ)的嵌入式開發(fā)板,配備基于OV7670攝像頭,其板載運(yùn)行Ubutu操作系統(tǒng),加裝各種驅(qū)動(dòng)后構(gòu)成我們的硬件環(huán)境。網(wǎng)絡(luò)通過其串行口掛接SIM900的GPRS Modem來實(shí)現(xiàn)數(shù)據(jù)的傳輸。
1.2 軟件實(shí)現(xiàn)
欲對燃?xì)夂退淼谋肀P實(shí)現(xiàn)數(shù)字圖像識(shí)別如圖1的燃?xì)獗肀P圖像中的表盤數(shù)字進(jìn)行識(shí)別,我們采用德國MVtec的Halcon軟件來實(shí)現(xiàn),Halcon是當(dāng)前世界上最為優(yōu)秀的機(jī)器視覺處理軟件,其內(nèi)置了諸多的視覺處理算子,能夠很好地與硬件接口相適配,處理過程可以采取實(shí)驗(yàn)的方法,一步步用各種視覺處理算子處理后,生成所需要的結(jié)果后,我們可以借助Halcon強(qiáng)大的代碼生成功能生成Linux下的C或C++程序。
Halcon對圖像中數(shù)字的識(shí)別比較簡單,其內(nèi)置了諸多的OCR特征庫,如Document_0-9.omc(文檔數(shù)字)、DotPrint_0-9A-Z.omc(點(diǎn)陣打印數(shù)字字符)、HandWritten_0-9.omc(手寫數(shù)字)、Industrial_0-9A-Z.omc(工業(yè)數(shù)字字符)等特征庫,我們分幀后取得圖像,然后對圖像經(jīng)過下列處理后與特征庫相比對,以識(shí)別圖像中的表盤數(shù)字。
采用Halcon處理儀表數(shù)字識(shí)別,首先讀入圖像;由于Halcon提供了視頻或圖像讀取函數(shù),因此,直接讀入視頻,鏡像分幀獲取圖像即可。下一步,通過運(yùn)算獲取和設(shè)定感興趣區(qū)域ROI。依式(1),使得=0和,按照閾值g 將圖像R 選定后輸出至S即得到閾值處理后的ROI。
≤≤ (1)
然后從圖像域中獲取ROI區(qū)域,再將圖像分解為3個(gè)通道,然后轉(zhuǎn)換RGB為H、S、V顏色空間。Halcon提供了HSV算子,傳輸圖像區(qū)域即可實(shí)現(xiàn)圖像顏色空間變換。
連通選定像素互聯(lián)通區(qū)域,然后依據(jù)特征區(qū)域計(jì)算區(qū)域交叉點(diǎn),并依式(2)實(shí)施高斯卷積去噪。
g× (2)
去噪后讀取特征庫,與數(shù)字匹配以實(shí)現(xiàn)數(shù)字的識(shí)別。
經(jīng)Halcon處理后,在Halcon菜單中選擇導(dǎo)出程序,Halcon可以生成VB、C# C/C++等源程序,我們選擇基于Linux內(nèi)核的C++程序,生成的C++程序,需部署到OMAP4660嵌入開發(fā)板中去運(yùn)行。我們下載Halcon的嵌入版本的文件halcon-10.0.2-omap4-runtime.tar.gz,然后將其解壓縮,部署于Linux下,該文件中提供了Halcon運(yùn)行的庫文件Halcon.so等文件。然后我們將創(chuàng)建的CPP文件中使其頭上包含HalconCPP.h的頭文件,然后包含下列路徑后編譯我們的應(yīng)用并連接,即可生成嵌入平臺(tái)的運(yùn)行程序。
2 系統(tǒng)優(yōu)缺點(diǎn)及改進(jìn)
采用halcon機(jī)器視覺軟件處理數(shù)字或字符的識(shí)別異常簡單,我們的儀表表盤上僅有數(shù)字而沒有字符,其識(shí)別應(yīng)該更為簡單,但是我們在軟件實(shí)現(xiàn)過程中體會(huì)到,越是簡單,其難度越大。其困難的程度遠(yuǎn)超過了視覺中對車輛牌照的識(shí)別,數(shù)字儀表盤中,如圖1中有“2.5”儀表型號(hào),還有“MC批文號(hào)粵制0000175”,及底下的儀表量程等干擾區(qū)域,給我們的識(shí)別帶來了異常困難。
利用Halcon對數(shù)字字符的識(shí)別,我們只應(yīng)用了特征庫匹配的方法,除此,系統(tǒng)還提供了基于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和學(xué)習(xí)等算子,我們將對其實(shí)施改造,進(jìn)一步提高其識(shí)別效率,以改進(jìn)產(chǎn)品的環(huán)境適應(yīng)能力,進(jìn)一步提高準(zhǔn)確度。
參考文獻(xiàn)
[1]張明新,李向偉,趙浪濤,等.基于嵌入式機(jī)器視覺的路基沉降監(jiān)測系統(tǒng)研究[J].自動(dòng)化與儀器儀表,2013(4):28-29.
[2]張廣軍.視覺測量[M].中國科學(xué)出版社,2008.