創新者:陳觀應 李瑜煜 方 浩
干電池是生活中重要的日用消費品,隨著需求增長和機械自動化技術的發展,干電池生產設備日益朝著高速化發展,然而傳統的人工視覺檢測已難以滿足高速生產線的檢測要求。在工業檢測方面,基于虛擬儀器LabVIEW 平臺設計的視覺檢測系統具有重要意義。與Visual Basic、Visual Studio 開發工具相比,LabVIEW 的圖形編程語言可以直觀地實現多線程編程,降低了并行程序開發的復雜度。
基于虛擬儀器的干電池視覺檢測系統結構如圖1 所示,系統由兩大部分組成:硬件部分和軟件部分。硬件部分由環形光源、4 個USB 攝像機和光電開關組成,軟件部分采用模塊化設計,包括圖像處理與識別模塊、數據存儲模塊及輸出顯示。系統工作原理:當干電池遮蔽光電開關時,觸發攝像機拍照并將數字圖像傳送到計算機,經過圖像處理模塊完成干電池缺陷的識別并存儲輸出。
生產者/消費者模式是由生產者循環和消費者循環組成,生產者和消費者循環的隊列存儲開辟了一個緩存區,依據先進先出(First Input First Output,FIFO)的原則進行,生產者循環生產的數據存入緩存區,消費者循環從緩存區取出數據處理。兩循環中的任務執行是并行的,相互之間不受影響。任務執行的并行性和基于隊列的數據傳輸,使程序具有更高的運行效率和設計靈活性,并且可以防止出現數據丟失。
為了充分利用計算機硬件資源和提升程序設計的靈活性,采集系統使用單生產者多消費者設計模式,并結合狀態機編程,設計模式示意圖如圖2 所示。多通道圖像采集系統具體實現步驟:(1)在循環中加入事件結構用于響應前面板控件,事件結構中開辟一個隊列,并向隊列中傳輸與控件對應的狀態枚舉,通過隊列狀態傳輸到生產者循環。(2)在生產者循環中開辟四個隊列,通過捆綁狀態枚舉和IMAQdx Grab 函數采集到的圖像,向生產者隊列傳輸數據。四個隊列中捆綁的數據將傳輸到對應的四個消費者循環,解除數據捆綁實現狀態控制和數據傳輸。
此設計模式對經典狀態機做了改進,隊列緩存狀態枚舉,可以在隊列任意添加新狀態,從而方便控制采集程序運行狀態。程序中使用多個循環實現數據傳輸,由于LabVIEW 平臺是自動多線程編程,采用多消費者設計模式的采集系統具有更高效的處理機制和更強的結構擴展性。

圖1 干電池視覺檢測系統結構

圖2 結合狀態機的多消費者模式

圖3 鋅筒圖像分割程序和效果

圖4 鋅筒輪廓識別程序
圖像預處理可以消除圖像無關信息,改善圖像質量,提高后續圖像分割與圖像識別的可靠性。系統預處理采用IMAQ Lowpass 函數對圖像低通濾波,采用IMAQ Mathlookup 函數的square 運算符對圖像增強。
為了分析圖像的特征,往往需要通過圖像分割將對象從圖像中分離出來。采用邊緣檢測和閾值分割可以有效劃分背景區域和目標特征區域。模塊采用IMAQ EdgeDetection 函數的Robert 算子來完成邊緣檢測,用IMAQ AutoBThreshold 函數聚類法來實現自動閾值分割。鋅筒圖像分割如圖3 所示。
特征提取是圖像識別的重要環節,系統的干電池鋅筒識別采用圓度特征,碳棒識別采用灰度特征,識別效果如圖6 所示。經過圖像分割的鋅筒圖像具有明顯的形狀特征,使用IMAQ Extract Contour 函數提取鋅筒輪廓,通過IMAQ Compute Contour Distances 計算提取輪廓與擬合輪廓的最大距離,與設定閾值比較,實現鋅筒缺陷識別,鋅筒識別程序如圖4 所示。
模板匹配是一種有效的模式識別技術,它能利用圖像信息和識別模式的先驗知識,更直接反映圖像間的相似度。常見的碳棒缺陷有偏心、折斷和缺失,通過模板匹配可以快速實現碳棒定位。匹配輸出的Matchs 包含匹配鋅筒的坐標、轉角等信息,通過計算匹配碳棒坐標與鋅筒圓心的偏心率實現碳棒偏心缺陷識別,若無匹配信息則為碳棒折斷或缺失,碳棒識別程序如圖5 所示。

圖5 碳棒模板匹配程序

圖6 鋅筒和碳棒識別效果
干電池圖像處理完后需對相應輸出參數進行存儲,以便日后調出分析或打印報表,本文使用TDMS 文件進行數據存儲和查詢。對比基于SQL 數據庫的數據存儲,TDMS 文件最大的特點就存取速度快,非常適合用于存儲海量數據,在實時系統中廣泛應用。高速的干電池生產線要求整個系統在采集圖像后,需對圖像快速處理及存儲數據,消費者循環中加入的TDMS 存儲模塊可以滿足干電池檢測數據的快速及海量存儲要求。
基于虛擬儀器LabVIEW 的干電池檢測系統實現了多通道圖像采集,多循環并行圖像處理和識別以及數據存儲。采集與處理任務分開執行提高了程序的運行效率,保證其干電池檢測的實時性和連續性。本文針對實際干電池生產線展開研究,同時也給工業檢測領域提供一定的參考。