

昆山市拓恒機電有限公司
馮先生 137-7635-6532
E-mail: kstuoheng@126.com
江蘇省昆山市經(jīng)濟技術(shù)開發(fā)區(qū)
金沙江南路16號3號廠房
1 引言
目前,電子臺秤的檢測主要依賴人工搬運砝碼,存在安全隱患大及工作效率低等問題,考慮這些問題研制了電子臺秤自動檢測裝置。
在此自動檢測裝置中電子臺秤的數(shù)顯儀表讀數(shù)的實時讀取是該裝置至關(guān)重要的環(huán)節(jié)。數(shù)顯儀表實時正確讀取保證控制系統(tǒng)能夠?qū)崟r的接收到電子臺案秤的檢測數(shù)據(jù)。在自動檢測的過程中快速實時的處理電子臺秤數(shù)顯儀表讀數(shù),提高生產(chǎn)效率和減少人為因素造成的誤判,利用攝像技術(shù)、圖像處理技術(shù)、圖像識別技術(shù)以及通信技術(shù),來實現(xiàn)儀器儀表讀數(shù)的實時自動識別。
目前我國仍沒有專門針對電子臺秤數(shù)顯儀表示數(shù)識別,尤其針對運動狀態(tài)的電子臺秤數(shù)顯儀表示數(shù)識別。
2 硬件平臺搭建
電子臺秤自動檢測裝置如圖1所示,總控制系統(tǒng)控制驅(qū)動電機驅(qū)動大理石平臺載著平臺秤和相機鏡頭組成一起沿著軌道運動,配合砝碼做電子臺秤自動檢測工作。鑒于做偏載時砝碼會遮擋鏡頭,故本研究采用兩個相機鏡頭裝在平臺兩側(cè),對電子臺秤數(shù)顯儀表讀數(shù)進行采集。
圖1 電子臺秤自動檢測裝置 下載原圖
3 圖像處理算法設(shè)計
兩個CCD采集的圖像,圖像中含有紅、綠、藍三通道顏色,通過數(shù)據(jù)線傳輸至圖像處理平臺,圖像處理平臺首先進行灰度化處理,將彩色圖像轉(zhuǎn)換為256級的灰度圖像,然后,對該灰度圖像進行濾波去噪、圖像增強,經(jīng)過二值化處理后,圖像邊緣形態(tài)顯現(xiàn),然后通過形態(tài)學(xué)膨脹處理,讓數(shù)字斷裂處連續(xù),提高可讀性,通過邊框檢測檢測出字符邊框,然后通過幾何變換和圖像校正,圖像經(jīng)過拉伸校正后,進行圖像分割將數(shù)碼管顯示字符摳出來,最后,利用訓(xùn)練過的深度學(xué)習(xí)框架對字符進行識別。專家評判系統(tǒng)根據(jù)摳出的字符完整度來評判選取哪個相機圖像處理結(jié)果,如圖2所示。
圖2 圖像處理流程圖 下載原圖
4 軟件平臺搭建
本研究采用OpenCV+MFC進行軟件設(shè)計。OpenCV是一個基于BSD許可(開源)發(fā)行的跨平臺計算機視覺庫,可以根據(jù)自己需要對庫文件進行修改,可以運行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它由一系列C函數(shù)和少量C++類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,可以實現(xiàn)圖像處理和計算機視覺方面的很多通用算法。
人機界面采用MFC微軟基礎(chǔ)類庫是微軟公司提供的一個類庫(class libraries),以C++類的形式封裝了Windows API,并且包含一個應(yīng)用程序框架,在保證程序運行的情況下較大的減少了應(yīng)用程序開發(fā)人員的工作量。
OpenCV和MFC均是在visual studio環(huán)境下,使用C和C++語言編寫的,在用于工業(yè)工作中,穩(wěn)定性和效率均有較好的表現(xiàn)。
5 項目實例
平臺通過USB接口向集成在Logitech攝像頭內(nèi)部的控制模塊發(fā)送圖像采集指令,鏡頭輸出的PAL制或NTSC制模擬視頻信號通過內(nèi)部集成的A/D轉(zhuǎn)換芯片轉(zhuǎn)換成數(shù)字視頻信號,把數(shù)字視頻信號存儲到靜態(tài)存儲器(SRAM)中,每完成一幀圖像的采集便實時通過以太網(wǎng)將圖像信號傳輸給PC機。
圖3 數(shù)顯儀表 下載原圖
圖4 二值化處理 下載原圖
首先對目標(biāo)圖像進行二值化處理然后再細化,在保持原圖形的結(jié)構(gòu)性信息的提前下,將圖形細化為一個象素寬度,這樣即可保證Hough變換所求得傾角的精確性,同時減少了Hough變換所需要處理的象素點,減少Hough變換計算量,從而減少了計算時間。
利用Hough變換精確定位出圖3中每個LED數(shù)碼管中心位置處的坐標(biāo)。由于圖像采集過程中攝像機與被采集目標(biāo)存在對位偏差,采集到的圖像有一小的傾角,在精確定位之前,我們需要通過Hough變換計算出此傾角,然后對圖4旋轉(zhuǎn)矯正,得到我們所需要的、無傾斜的圖像,然后通過字符分割,精確定位出每個LED數(shù)碼管中心位置處的坐標(biāo),對這些坐標(biāo)做一變換,則可得到原圖4中每個LED數(shù)碼管中心位置處的坐標(biāo)。
5.1 利用霍夫變換來確定傾角
Hough變換是一種對噪聲干擾不敏感,能夠在圖像中檢測出形狀曲線的技術(shù),因此廣泛應(yīng)用于目標(biāo)檢測領(lǐng)域。對于直線上的一個點(xi,yi)來說,它在變換空間(u,v)中應(yīng)該滿足方程式:
對于任意方向和任意位置直線的檢測,為了避免垂直直線的斜率無限大,往往采用極坐標(biāo)作為變換空間,其極坐標(biāo)方程可以寫成:
在這里我們對圖3進Hough變換,尋找出其中一條最長的白色直線,進而求得傾斜角度。具體的算法如下:構(gòu)造一個二維數(shù)組作為計數(shù)器,第一維是角度,第二維是距離。先計算出可能出現(xiàn)的最大距離為squar(width×width+height×height),用來確定數(shù)組第二維的大?。ㄆ渲衱idth為圖片的寬度,height為圖片的高度)。對于每一個白色點(象素為1的點),角度θ的變化范圍從-90°到+90°,按上方程求出對應(yīng)的距離S,相應(yīng)的數(shù)組元素[S][θ]加1所有元素都算完后,找到數(shù)組元素中最大的一個,就是要找的最長的那條直線,該直線的對應(yīng)的θ即是我們所要求的傾角。
5.2 圖像旋轉(zhuǎn)
通過Hough變換檢測到目標(biāo)偏斜后,需要根據(jù)檢測到的偏斜角度對圖像進行校正,即對圖像進行旋轉(zhuǎn)操作。如圖5所示,點(x0,y0)經(jīng)過旋轉(zhuǎn)θ角后變?yōu)椋▁1,y1)。
圖5 校正后圖像 下載原圖
5.3 字符分割
考慮到本文中待分割的對象相對簡單,每兩字符之間均有明顯的間距,本文選用直接的分割法,即把投影分割法。投影法分割的基本思想是把二維圖像的像素分布簡化為X軸和Y軸的兩個一維函數(shù),通過對兩個函數(shù)的分析,找到我們想要的結(jié)果。在二值圖像,我們用“1”來表示目標(biāo)字符,用“0”來表示背景,那么如果某一行中或者某一列都是背景,則該行或者該列的投影為O。在理想的情況下,這個波谷的值應(yīng)該為零,并且每個字符之間都應(yīng)該有相應(yīng)的波谷,根據(jù)這個重要特征,我們可以輕松的找到字符間隙,把圖像中的字符塊分離出來。
分別對其進行了圖像灰度化、圖像增強、二值化以及字符分割及定位處理。
5.4 字符識別
本文采用深度學(xué)習(xí)TensorFlow框架在分割好的字符集上進行訓(xùn)練。在訓(xùn)練網(wǎng)絡(luò)前首先要準(zhǔn)備好數(shù)據(jù)訓(xùn)練集,將分割好的大小為28×28大小的字符“0-9”以及“.”分成11類別作為網(wǎng)絡(luò)的數(shù)據(jù)訓(xùn)練集對深度學(xué)習(xí)框架進行訓(xùn)練,另外,取部分分割好的大小為28*28大小的字符“0-9”以及“.”數(shù)據(jù)集對訓(xùn)練好的模型進行測試、驗證。
6 總結(jié)
本文方法通過對相機采集的儀表圖像做細化處理,得到僅有一個象素寬度的邊框線,利用Hough變換檢測出邊框的傾斜角,對傾斜的待識別目標(biāo)區(qū)域做了旋轉(zhuǎn)校正。緊接著,通過投影法分割出了每個字符,對各字符的LED數(shù)碼管中心位置進行定位計算坐標(biāo)值。最后通過訓(xùn)練好的深度學(xué)習(xí)模型檢測得出圖像中所顯示的數(shù)值。