?

基于機器視覺的數碼管顯示單元缺陷檢測系統

2023-02-08 06:06王紅英樊維濤郭俊麗
關鍵詞:測溫儀數碼管字符

崔 穎,王紅英,樊維濤,郭俊麗

(1.西安文理學院 機械與材料工程學院,西安 710065;2.西安市和其光電科技股份有限公司,西安710077)

LED數碼管以LED發光二極管作為發光單元,顏色有紅、黃、藍、綠、白等色彩,由于其具備功耗小,無熱量,耐沖擊,長壽命等優點,被非常普遍地應用于儀表設備的顯示單元,配合各類控制芯片使用,顯示數據信息或者其他狀態信息.現有各型號溫控系統使用熒光光纖溫度傳感器測量溫度,再將測得的溫度實時顯示在數碼管上.激光測溫儀采用8段LED數碼管顯示其測出的溫度數字,并顯示儀器自檢信息字符,顯示的內容包括0~9和其他一些特殊字符.產品在生產完畢后必須進行缺陷測試,一般持續48~72小時,測試的主要內容包括:LED數碼管能否正確顯示儀器發出的數字、LED數碼管在顯示過程中是否有顯示不全的現象.

目前的檢測過程,主要靠人工檢測.檢測人員面對多臺機器,肉眼觀察LED數碼管的顯示是否正確.由此帶來的問題是檢測人員的工作強度大,無法實現長時持續檢測,且當LED數碼管顯示出現故障時,無法有效地檢出偶發的錯誤顯示,無法保證儀器質量可靠,給出廠產品的質量帶來隱患.

本套數碼管顯示單元缺陷檢測系統是基于機器視覺[1]和OCR[2]技術相結合而實現的.主要包含三個模塊:機器視覺模塊主要負責圖像的采集、濾波、圖像處理及字符區域的定位,主要使用的技術包括:特征波長濾波,圖像二值法[3-4]處理、“閉”運算、腐蝕運算[5]處理.OCR識別模塊主要負責字符區域的分割,識別,主要使用的技術包括:特征參數分割字符區域,通過訓練生成識別字符集,字符識別.控制模塊主要負責機器視覺模塊、OCR識別模塊及待檢測的儀器之間的協同工作,并負責通信的可靠,主要使用的技術包括:CRC-16校驗算法[6]保證通信可靠,事件驅動數據總線保證系統的響應速度.

1 LED數碼管顯示單元缺陷檢測系統的設計

本系統設計基于機器視覺技術,通過工業攝像機獲取儀器顯示的數字圖像,采用OCR識別技術將顯示的數字識別出來,并與命令字對照,來確定LED數碼管顯示的數字是否正確.

每臺測溫儀的外形如圖1所示.測溫儀為長320 mm×寬175 mm,在測溫儀表面共有8組溫度顯示的LED數碼管顯示單元.每組有四位數字符號,其中前三位為測試數字的整數位,后一位是測試數據的小數位,第三位的數字后面有小數點顯示.每個數字為高16 mm×寬8 mm,顯示顏色為橙紅色.

圖1 待測儀表的LED數碼管顯示區域

系統設計每次至少能同時完成9臺測溫儀的缺陷測試,測試全程無人值守,系統能夠自動完成測試過程,并記錄測試過程中出現的儀器錯誤.

LED數碼管顯示單元缺陷檢測系統的結構如圖2所示.工業攝像機選擇大恒光電的水星MER-1070-10GC工業相機,相機分辨率為1 000萬像素,通過100 M以太網與PC相連;鏡頭選擇10倍光學鏡頭;缺陷檢測系統的軟件部分采用LabVIEW 2016開發;軟件與測溫儀通過USB轉RS485總線網關相連.

圖2 系統組成示意圖

2 機器視覺識別和OCR技術原理

機器視覺識別系統利用高分辨率工業攝像機獲取檢測圖像并轉化為數字信號,再通過計算機硬件、軟件技術對圖像數據信號進行處理,從而獲取所需要的各種目標圖像特征值,并由此實現產品零件分類識別、缺陷檢測和視覺測量的功能.

OCR,即Optical Character Recognition,光學字符識別.是指通過電子設備(一般工業應用常用數碼攝像機)檢查介質上打印或顯示的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機可識別的文字的過程.在OCR的實現過程中,如何除錯或利用輔助信息提高識別正確率,是OCR最重要的指標.衡量一個OCR系統性能好壞的主要指標有:拒識率、誤識率、識別速度,系統的穩定性等.

3 LED數碼管顯示單元缺陷檢測系統實現技術路線

圖3為LED數碼管顯示單元缺陷檢測系統實現的技術路線.系統主要包含兩部分內容,第一部分是保證數碼管能夠正確響應命令字,能夠根據命令字正確地顯示字符.在實現這個功能的過程中,設定已知的待顯示字符數組,使用CRC校驗算法生成命令字,再通過一根RS485總線,分時將各臺測溫儀的命令字發送給儀器,待所有儀器都接收到命令字后,啟動以太網相機獲取所有儀器的實時顯示圖像,OCR識別后,將識別的字符與已知字符進行逐位比較,從而驗證數碼管能否正確響應命令字.

圖3 數碼管顯示單元缺陷檢測系統實現技術路線圖

在OCR識別過程中,需要使用紅色濾光片消除綠色LED指示燈和儀器狀態燈的干擾,采用二值形態學中的“閉”運算消除LED數碼管在顯示時出現的斷碼現象,通過增加訓練樣本的方法消除小數點的影響,采用尺寸參數和布局參數提高多臺儀器同時檢測時的OCR識別率.

第二部分是完成缺陷檢測過程中檢出數碼管出現的顯示缺陷.該過程主要通過定時循環和錯誤日志來實現.

4 LED數碼管顯示單元缺陷檢測系統實現過程

4.1 基于機器視覺的OCR功能模塊設計

圖4為檢測系統的工作流程圖,具體步驟如下:

圖4 系統工作流程圖

(1)檢測軟件通過網關向測溫儀發送需要顯示的數字,和每臺測溫儀地址一并代入測溫儀的CRC校驗算法獲取每臺測溫儀的特征字,然后與測溫儀地址、功能碼等字段組合成命令字;由于每臺測溫儀的地址不同,因此每臺測溫儀的控制字也不同.

(2)測溫儀根據收到的命令字來顯示數字.

該模塊主要用于檢測測溫儀能否根據命令字的要求,準確地顯示需要顯示的字符.在測試過程中,為了方便檢測,命令字的設計是要求測溫儀循環顯示000.0、111.1~999.9的字符,既方便人工檢測,也簡化檢測過程.

(3)高清攝像機采集測溫儀的實時圖像.

(4)檢測程序從攝像機中獲取采集圖像信息,通過視覺算法OCR模塊識別圖像中的數字.

(5)將通過OCR識別出的數字與發送的命令字中的數字進行逐位比較,用比較的結果判定LED數碼管的工作狀態;若所有數字都匹配,則認為數碼管工作正常.

(6)如果出現不匹配情況,記錄不匹配的數字的位置和圖像信息,方便后續查看.

(7)在完成0~9的一個檢測循環后,檢測程序進入等待定時;定時時間到,檢測程序啟動下一個檢測循環.

按照每次檢測9臺測溫儀測算,完成一次000.0~999.9的循環檢測,時間<30秒.

4.2 CRC校驗算法

為了保證通訊數據的可靠,網關與測溫儀之間采用RS485接口連接,數據通信采用Modbus通信協議,采用CRC-16校驗算法對傳輸數據進行編碼,以保證通信的可靠.

4.2.1 CRC校驗碼的生成

CRC校驗碼是數據通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定.其原理是將任意一個由二進制位串組成的代碼轉化為一個系數僅為“0”和“1”取值的多項式.例如:代碼1010111對應的多項式為x6+x4+x2+x+1,而多項式x5+x3+x2+x+1對應的代碼為101111.

在采用Modbus協議傳輸時,其通訊信息發送形式如表1所示.

表1 命令字結構

CRC校驗是前面幾段數據內容的校驗值,為一個16位數據,發送時,低8位在前,高8位在后.

4.2.2 命令字結構

檢測系統的命令字具體結構如下:

0x01 0x05 0x00 0x01 0x00 0x55 xx xx//顯示55點亮的數碼管顯示

第一字節(01)測溫儀地址;

第二字節(05)設置功能碼;

第三、四字節(00 01)設置字節長度;

第五、六字節(00 ff/00/AA/55)需要顯示的數值;

第七、八字節(XX XX)CRC 16 校驗值,低字節在前,高字節在后.

4.2.3 命令字生成方法

命令字生成采用查表法,生成方法如圖5所示.采用C語言編寫[7],提高運算效率.

圖5 命令字生成方法

CRC校驗算法采用C語言編寫,編譯生成動態鏈接庫CRC.dll文件,然后通過LabVIEW中的調用動態鏈接庫的方法,實現CRC.dll的調用.調用函數為:“Call Library Function”[8].

4.3 軟件與測溫儀之間的通信

軟件與測溫儀之間采用RS485通信,通信協議為Modbus協議.RS485的通信參數為:

通信速率:4 800 bps,數據位:8位,停止位:1位,校驗:無校驗.其工作過程如圖6所示.

圖6 RS485通信流程

測溫儀的核心CPU采用STM32單片機,通信反應有一定的時間限制,所以在每個設備發送完命令字后,需要等待150 ms后才能給下一個設備發送命令字.如果等待時間小于該值,后續的設備無法收到命令字,測溫儀也不能顯示命令字符.

由于系統采用USB轉RS485網關實現協議轉換,在項目實施工程中就會出現一個問題,當該網關分別安裝到設計計算機和生產計算機后,其RS485的端口號是不確定的,而操作人員不具備在系統中尋找端口號的能力.因此在系統中增加了一個尋找通信端口的功能,允許運行人員逐一進行測試,找出正確的端口號.

在LabVIEW中通過“VISA Find Resource Function”函數[9]來尋找系統的端口資源,其返回值為一個端口列表,運行人員可以通過下拉窗口,按照端口號選擇端口進行測試.

4.4 高清攝像機與PC之間的通信

工業攝像機選擇大恒光電的水星MER-1070-10GC工業相機,相機分辨率為1 000萬像素,通過100 M以太網與PC相連.當采用高清攝像機時,以太網的數據流量大,為了保證攝像機的圖像能夠流暢地顯示在顯示器上,PC上的以太網卡需要采用“巨幀模式”[10].在PC的設備管理器中,打開網卡的屬性,在高級界面中,將“Jumbo Packet”的值設置為“9014 bytes”.重新啟動后,PC即可接收到流暢的高清攝像機畫面.

4.5 采用紅色濾光鏡片消除測溫儀指示燈的影響

如圖7(a)所示,為攝像機采集的測溫儀顯示圖片信息,其中除了用于顯示溫度信息的橙紅色LED數碼管外,還有16盞采用綠色LED二極管顯示的通道狀態燈,3盞采用綠色LED二極管顯示的測溫儀狀態燈和1盞采用紅色LED二極管顯示的測溫儀狀態燈.

圖7 采用紅色濾光片去除綠色LED數碼管的影響

視覺OCR識別時,首先要把彩色圖像通過紅色RGB通道顏色閾值轉化為二值圖像,如圖7(b)所示.在圖片中可以清楚地看到,紅色部分的數字被完整且清楚地抽取出來,但是綠色狀態燈色彩中的紅色通道也被抽取出來,給OCR識別帶來了大量干擾信息.尤其當有多臺測溫儀同時進行檢測時,這種干擾信息直接影響系統正常工作.為了消除綠色LED二極管的影響,選擇了紅色濾光鏡頭來實現.

綠色發光二極管的波長為555 nm~570 nm,而紅色LED數碼管的波長在600 nm~700 nm之間,在測溫儀和工業攝像機之間增加一塊625 nm~665 nm的紅光高透濾光鏡,紅色濾光片的帶通參數如圖8所示,這樣即可過濾掉進入攝像機的綠光,實現只采集單純紅光的目標.

圖8 紅色濾光片的帶通參數

經過濾光后,攝像機采集的圖像如圖7(c)所示,此時,只有右下角的紅色LED二極管測溫儀狀態燈出現在圖像中,其他綠色LED二極管的通道狀態燈、儀器狀態燈全部被消除了.

4.6 LED數碼管中斷碼的處理

采用LED數碼管顯示數字時,由于其結構的原因,各個筆畫之間是不相連的.

尤其如圖9中的三個字符,由于沒有中間橫碼的聯接,斷碼現象尤其突出.在進行OCR識別時,會識別為多個字符,造成識別誤差,對此情況采用二值形態學中的“閉”運算來解決.所謂“閉”運算就是對圖像首先進行“膨脹”算法,再進行“腐蝕”算法的過程.

圖9 數碼管中的斷碼

采用“膨脹”算法時,使用49點矩形膨脹的方法,使得字符區域的范圍變大,每個字符都長寬各膨脹7個像素,使得LED數碼管上的所有筆畫相連,形成一個完整的字符,經過“膨脹”算法處理后的字符如圖10所示.

圖10 經過膨脹算法處理后的數字

經過膨脹后,所有的字符都變得厚重且清晰,但是對于“8”這樣的字符,如圖11所示,膨脹后中心的空白區域也變小,當儀器表面與攝像機不完全垂直時,中心的空白區域無法識別,發生識別錯誤的幾率很高,因此還要進行一次“腐蝕”算法操作.

圖11 經過膨脹算法處理后的數字“8”

采用“腐蝕”算法時,使用25點矩形膨脹的方法,使得字符區域的范圍變小,每個字符都長寬各縮小5個像素,使得膨脹后的筆畫變清晰,如圖12所示.與圖9中的字符相比較,每個字符的長寬各擴大了2個像素,整體字符與原大小相差不大,但是已經完全將斷碼處補充完整,具備進行OCR設別的條件.

圖12 經過腐蝕算法處理后的數字

4.7 小數點的處理

在字符的第三位后有一個小數點,用于分割顯示數值的整數部分和小數部分,如圖9所示.在進行斷碼處理時,該小數點已經與第三位數字徹底融合為一個字符,如圖13所示.

圖13 由于小數點引起的識別錯誤

此時,經過“閉”運算處理后的圖像在進行OCR識別時,造成識別錯誤的絕大部分原因是由于第三位字符造成的.

當出現此類識別錯誤后,將該錯誤圖像以樣本的方式提交給OCR訓練樣本集[11].由于被識別的對象是穩定不變的,經過不斷地累積,可以持續提高第三位字符的識別率.

4.8 大場景中字符的識別

當系統同時檢測多臺儀器時,需要增加攝像機的視野,而且由于儀器擺放的角度問題,在攝像機獲取到的畫面中字符的形狀會變形,且字符的顯示會變小.

如圖14(a)所示,此時畫面中的字符數量增加,且每個字符的像素變小,而右下角的儀器狀態指示燈也成為干擾因素,阻礙字符的正確識別,因此需要增加更多的識別參數來保證識別的正確率.在此處,增加字符的尺寸參數和布局參數來提高識別率,降低干擾.增加的尺寸參數有:

圖14 三臺測溫儀在攝像機中的圖像

字符寬度區間:規定每個字符的最小寬度和最大寬度,min 9~max 80 pixs;

字符高度區間:規定每個字符的最小高度和最大高度,min 33~max 100 pixs;

垂直方向二個字符之間的最大距離:5 pixs.

通過尺寸參數的限制,如圖14(b)所示,消除了儀器狀態燈對系統識別的干擾,限制了字符的尺寸范圍,保證了每個字符得以被完整、準確識別.

5 實際使用效果

在實際測試時,布置3臺測溫儀,呈品字形分布,每臺有32個LED數碼管顯示字符.攝像機與測溫儀的距離為2 m,鏡頭與測溫儀的屏幕基本垂直,鏡頭的中心與中間一臺儀器的中心線基本保持水平.所有算法開啟,尺寸參數按照字符寬度區間:min 9~max 80 pixs;字符高度區間:min 33~max 100 pixs;垂直方向二個字符之間的最大距離:5 pixs.系統采用無人值守的方式運行,共連續運行12小時,誤碼率為萬分之2.37.

6 結語

通過基于機器視覺的數碼管顯示單元缺陷檢測系統的應用,極大地降低了測試人員的工作強度,提高了測試的準確性和全面性.系統可以識別所有類型的LED顯示數字,對于LED數碼管在儀器上的排列不敏感,可以同時完成多行多列LED數碼管的檢測與識別,整個檢測過程對被檢設備無附加零配件,檢測過程可以實現無人值守,使得產品的檢驗模式由抽檢改為全檢,保證了產品的質量和運行可靠性,降低了企業的運行成本.

猜你喜歡
測溫儀數碼管字符
微課教學設計之“數碼管動態顯示”
字符代表幾
一種USB接口字符液晶控制器設計
Arduino編程
MC9S08FL16單片機數碼管靜態顯示分析
單片機控制的四位數碼管動態顯示編程
HBM電子稱與西門子S7-200系列PLC自由口通訊
消失的殖民村莊和神秘字符
紅外測溫儀檢定誤差原因剖析及對策
基于SPCE061A單片機的紅外測溫儀設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合