

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










