周硯文,龐悅,尹航,任斌
基于圖像處理的內(nèi)阻儀液晶數(shù)字識別系統(tǒng)設計
周硯文,龐悅,尹航,任斌
(陜西重型汽車有限公司,陜西 西安 710200)
為了實現(xiàn)對內(nèi)阻儀表液晶數(shù)字的自動識別,使用攝像頭和計算機搭建了圖像采集的硬件系統(tǒng)?;赑ython和OpenCV設計圖像識別軟件,采用的模板匹配的算法對圖像中的液晶字符進行了識別。試驗結(jié)果表明,該系統(tǒng)識別液晶數(shù)字能達到98%以上,滿足設計要求。
圖像處理;Python;OpenCV
某試驗中需要使用液晶數(shù)字內(nèi)阻儀以一定的采樣頻率,連續(xù)24小時對樣品的內(nèi)阻進行測量并記錄結(jié)果。由于該內(nèi)阻儀無數(shù)采記錄功能,因此只能采用人工讀數(shù)和手工記錄結(jié)果,如果在該條件下開展連續(xù)24小時不間斷測量,其實施可行性較低。因此實現(xiàn)內(nèi)阻儀數(shù)字的自動讀取和記錄是很有必要的。
對該內(nèi)阻儀的測量過程分析后,開發(fā)了圖像數(shù)字采集和識別系統(tǒng)。使用攝像頭和計算機搭建了圖像數(shù)據(jù)采集的硬件系統(tǒng),對內(nèi)阻儀顯示的測量結(jié)果進行圖像采集;基于Python和OpenCV開發(fā)了圖像采集控制和液晶數(shù)字識別軟件,實現(xiàn)圖像采集和數(shù)字識別。系統(tǒng)工作時,控制攝像頭定時對內(nèi)阻儀顯示數(shù)字結(jié)果采集,再將圖像中的液晶數(shù)字識別和記錄,從而實現(xiàn)自動測量的效果。其系統(tǒng)流程圖如圖1所示。
圖1 系統(tǒng)流程圖
系統(tǒng)硬件部分示意圖如圖2所示。硬件系統(tǒng)主要由500萬像素攝像頭、計算機、支架和內(nèi)阻儀組成。首先將攝像頭安裝于支架并將其固定在桌面上,隨后將內(nèi)阻儀放置在桌面上并使內(nèi)阻儀面板始終處于攝像頭視場范圍內(nèi),接著調(diào)節(jié)攝像頭位置和焦距,保證攝像頭在采集過程中能完全采集到內(nèi)阻儀面板的圖像,最后計算機可通過軟件控制攝像頭實現(xiàn)定時圖像采集以及開展后續(xù)相關圖像處理工作。
圖2 系統(tǒng)硬件部分示意圖
圖像采集過程中要注意以下幾點:
(1)光照均勻,防止外部光線干擾后期圖像處理;
(2)攝像頭與內(nèi)阻儀相對位置保持固定,每張圖像中液晶數(shù)字字段出現(xiàn)的區(qū)域位置相同;
(3)對內(nèi)阻儀自檢時的液晶字符全點亮狀態(tài)進行采集,將其存為模板圖像,用于后期數(shù)字識別中的模板匹配。
采用Python和OpenCV對所采集圖像進行處理,實現(xiàn)數(shù)字識別和記錄。程序通過模板圖像裁剪、圖像濾波和二值化、特征點確認、模板匹配、圖像分析等步驟,實現(xiàn)數(shù)字識別的效果[1-2]。
在內(nèi)阻儀啟動和自檢過程中,其面板的液晶數(shù)字會被全部點亮,此時通過軟件控制攝像頭將面板當前圖像進行采集,作為模板圖像供后期處理,如圖3所示。
圖3 內(nèi)阻儀啟動自檢圖像及特征區(qū)域勾選
模板圖像采集完成后需進一步處理,將其特征點提取出來。通過Python編程打開模板圖像后,使用OpenCV中鼠標選擇功能,勾選將要識別數(shù)字的區(qū)域,如圖3所示。區(qū)域選擇確定后,程序?qū)^(qū)域坐標保存并將當前區(qū)域裁剪出來,用于后期實際測量圖像的裁剪處理[2]。
3.3.1中值濾波
選擇數(shù)字識別區(qū)域后,使用OpenCV中相關命令對其進行圖像濾波和二值化處理[2]。圖像采集中的噪聲一般由攝像頭傳感器引入,因此使用中值濾波效果較好[3]。其原始圖像和處理后圖像對比效果如圖4所示。
圖4 原圖(下圖左)和中值濾波(下圖右)對比
3.3.2圖像二值化
濾波后對其灰度圖進行分析。由圖5的灰度分析可見,圖中有兩個明顯的峰值,適用于用大津法二值化處理[3]。二值化處理后的模板圖像效果圖6所示。
圖5 灰度圖
圖6 二值化效果
模板圖像二值化后,液晶點亮字段的灰度為0,未點亮字段灰度為255。使用OpenCV中的鼠標點擊功能,將數(shù)字由高位到低位進行特征點點擊,通過點擊將各點坐標保存。每個數(shù)字內(nèi)部的點擊順序按數(shù)碼管字段定義格式順序進行,即各段a、b、c、d、e、f、g和小數(shù)點位dp。點擊位置一般選取字段中間特征明顯處,如圖7所示。
圖7 數(shù)碼管點擊順序示意圖
數(shù)碼管中各字段亮暗的狀態(tài)組合后能表示實際顯示的數(shù)字。比如數(shù)字0顯示時,除了g和dp未點亮(灰度為255)外,其他字段均點亮(灰度為0),因此基于以上原理可將實際數(shù)字與字段亮暗狀態(tài)對應關系列在表1中,即0表示該處灰度為0(該段已點亮),255表示該處灰度為255(該段未點亮),這樣即可建立字段亮暗狀態(tài)與實際顯示數(shù)字的關聯(lián)列表模板,用于后期查表編程。
表1 數(shù)碼管字段表格
實際數(shù)字數(shù)碼管字段狀態(tài) abcdefgdp 0000000255255 125500255255255255255 200255002550255 300002552550255 42550025525500255 502550025500255 6025500000255 7000255255255255255 80000000255 9000025500255 dp2552552552552552552550
在完成模板圖像采樣、裁剪及分析后,程序通過循環(huán)對后續(xù)采集的實際內(nèi)阻圖像進行識別。
(1)對內(nèi)阻儀實際測量結(jié)果進行圖像采集。采集后按模板圖像中的選擇區(qū)域坐標進行裁剪、中值濾波和二值化;
(2)對處理后的圖像進行數(shù)字識別。以圖6中板圖像的液晶數(shù)字中各字段的位置坐標為基礎,對裁剪后圖像進行模板匹配。通過各液晶字段特征點坐標,對實際內(nèi)阻圖像中每一位數(shù)字的字段進行分析,其中灰度為0判定為該液晶字段為點亮狀態(tài),灰度為255判定該液晶字段未點亮。得到各字段的亮暗狀態(tài)后根據(jù)表1進行查表匹配,完成一位數(shù)字及小數(shù)點的識別;
(3)圖像中的數(shù)字識別完成后,使用Python中相關文件操作命令將結(jié)果保存于計算機[4];
(4)重復(1),進行下一次內(nèi)阻儀測量的圖像采集;
(5)全部采集工作完成后,程序結(jié)束退出。
按以上方法搭建圖像處理系統(tǒng)并開展了內(nèi)阻測量結(jié)果的圖像采集識別。如下圖所示,某次內(nèi)阻儀測量完成后,其面板圖像采集及裁剪效果如圖8所示,中值濾波和二值化處理結(jié)果如圖9所示。在圖像完成處理后,通過模板匹配識別其數(shù)字為“604.1”后將結(jié)果保存??傮w識別結(jié)果顯示,內(nèi)阻儀的數(shù)字及小數(shù)點位識別率能達到98%以上,圖11展示了部分圖像識別的結(jié)果。
圖8 某次內(nèi)阻儀測量結(jié)果
圖9 中值濾波圖像
圖10 二值化處理圖像
圖11 部分圖像的識別結(jié)果
在硬件設計方面,該系統(tǒng)能夠通過計算機控制攝像頭以一定的采樣頻率對內(nèi)阻儀測量結(jié)果開展連續(xù)圖像采集;在軟件設計方面,該系統(tǒng)能夠通過模板匹配算法對采集圖像進行數(shù)字識別,識別率在98%以上。試驗結(jié)果表明,該系統(tǒng)使用效果良好且提高了工作效率,能夠滿足設計要求。
[1] Magnus Lie Hetland,司維,曾軍崴. Python基礎教程[M].北京:人民郵電出版社,2014.
[2] 布拉德斯基,克勒,于仕琪,等.學習OpenCV:中文版[M].北京:清華大學出版社,2009.
[3] RafaelC.Gonzalez, RichardE.Woods, StevenL.Eddins.數(shù)字圖像處理(MATLAB版)[M].北京:電子工業(yè)出版社,2005.
[4] Ivan Idris. Python數(shù)據(jù)分析基礎教程[M].北京:人民郵電出版社, 2014.
LCD Digits of Resistance Meter Recognition System Design Using Image Processing
ZHOU Yanwen, PANG Yue, YIN Hang, REN Bin
( Shaanxi Heavy Duty Automobile Co., Ltd., Shaanxi Xi'an 710200 )
In order to implement automatic recognition on LCD digits of resistance meter, image acquisition system was built with camera and computer. Recognition software is developed using Python and OpenCV and LCD digits are identified based on template match algorithm. Result shows that at least 98% of digits can be read by this system and design requirement is achieved.
Image processing;Python;OpenCV
A
1671-7988(2021)24-81-03
U462.1
A
1671-7988(2021)24-81-03
CLC NO.:U462.1
周硯文,就職于陜西重型汽車有限公司。
10.16638/j.cnki.1671-7988.2021.022.021