文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.017
中文引用格式: 苑瑋琦,魏智鵬,李德健,等. 高速視覺在線檢測系統的軟件抗干擾方法[J].電子技術應用,2016,42(9):65-68.
英文引用格式: Yuan Weiqi,Wei Zhipeng,Li Dejian,et al. The software anti-interference method of high-speed visual online detection system[J].Application of Electronic Technique,2016,42(9):65-68.
0 引言
隨著工業4.0的到來,自動化技術開始越來越多地在制造業市場中使用,而機器視覺在自動化技術領域中具有舉足輕重的地位。作為近年來制造業中的關鍵技術,機器視覺在線檢測技術的發展已經被推上了風口浪尖。然而,基于機器視覺的高速在線檢測技術成為了制約制造業發展的瓶頸。學者周文舉發表的文獻[1]對機器視覺的在線高速檢測系統作了比較前沿的描述。
近年來,國內的生產企業大量引進機器視覺在線檢測技術,試圖用機器取代工人來節約生產成本。機器視覺在線檢測系統一般都是安裝在生產線作業流程當中,故其檢測速度必須大于等于高速生產線現有的運行速度。現有的高速拍照技術也已經很成熟,但在線檢測技術卻面臨著如下問題:(1)速度達不到要求;(2)高速視覺檢測軟件運行不穩定;(3)漏檢誤檢率高。
本文針對現有的機器視覺在線檢測系統所遇到的問題,巧妙利用計算機的數據緩存機制[2]解決由計算機操作系統本身、負載差異和用戶操作所帶來的干擾問題。本設計以高速雪糕棒質量在線檢測[3]應用為案例講述詳細的設計方法。此設計方法不局限于雪糕棒質量在線檢測系統,還可以擴展到其他領域產品的高速在線檢測系統中。
1 高速在線檢測系統架構及工作原理
1.1 總體架構
本文使用高速雪糕棒質量在線檢測系統作為一般的高速視覺在線檢測系統模型,系統結構圖如圖1所示。其中A、B、C、D分別為檢測雪糕棒的正面、左側、右側和反面攝像機。本系統以多攝像機在線檢測為例,同樣適用于單攝像機。
1.2 工作原理
系統運行時,機器生產出來的雪糕棒直接落入到圖1所示的儲箱中。儲箱下方是帶等間距凹槽的鏈條,儲箱中的雪糕棒自動落入到凹槽中,電機帶動鏈條運動,將堆積的雪糕棒轉成流水線上等間距排列的雪糕棒,多余的雪糕棒由掃棒器掃回到儲箱中。光電傳感器正對著鏈條上凹槽的凹陷處,一個凹槽對應一根雪糕棒,故每經過一根雪糕棒,光電傳感器就會產生一個脈沖。4個攝像機的外觸發線并聯后連接到光電傳感器的信號輸出端,由一個脈沖同時觸發4個攝像機拍照。固定4個攝像機的位置,使得觸發時刻流水線上雪糕棒正好落入到攝像機的視場中心。攝像機采集圖像完成后通過USB3.0數據線把數據傳輸到計算機。計算機接收到數據后開啟多線程并行處理4攝像機的圖像,并將處理結果存儲在結果緩存器中等待輸出。當雪糕棒運動到第一個氣泵時,從結果緩存器中取出當前雪糕棒4個面的檢測結果,合并后輸出。輸出端由4個電磁閥分別彈出U(次優)、B(良)、C(中)和D(差)4個等級的雪糕棒,沒有缺陷的雪糕棒跟隨流水線落入到最末端的J(最優)級容器中。
2 干擾源分析
計算機運行高速在線檢測軟件時,計算機硬件和軟件等環境因素有時會掩蓋算法本身的優劣。所使用的操作系統、編譯器、運行框架等軟件的不同,可以影響它們的結果。即使是同一臺電腦、同一種操作系統,CPU使用率和內存占用情況不一樣,也會造成細微的差異。在高速視覺在線檢測系統中,這些微小的差異直接影響程序的穩定性。本文總結出3種影響程序穩定性的干擾源。
2.1 系統本身的干擾
Windows操作系統的多線程一直被認為存在著很多問題,例如多線程的不確定性和沒有保障性,各個線程的運行完全是以不可預料的方式和速度推進。有時同一個程序運行了N次,其結果也存在著一定的差異。用同一個算法進行1 000次運算所得到的時間曲線圖如圖2所示。從圖中可以看出系統本身的干擾導致檢測時間的波動達到±5.5 ms。
2.2 負載干擾
當負載差異[4]較大時,檢測時間也會有一定的差異。在高速在線檢測系統中,目標的檢測時間存在一般估計量,但是程序運行過程中難以保證每次的檢測時間都不會超過一般估計量。隨機抽取1 000根雪糕棒進行檢測,并對檢測時間進行統計,得到系統本身干擾和負載干擾疊加的檢測時間曲線如圖3所示。從圖中可以看出系統干擾和負載干擾導致檢測時間波動達到±22 ms。
2.3 其他進程干擾
當檢測軟件正在運行時,系統突然打開一個進程,新的進程會搶占CPU和內存資源,使得當前檢測時間突變。在雪糕棒在線檢測過程中,打開另一個進程所帶來時間突變的曲線如圖4所示。從圖中可以看出其他進程的開啟導致檢測時間整體升高了。
在高速視覺在線檢測系統[5]中,不管是由系統本身、負載差異還是用戶操作所帶來的干擾都是不可忽略的。這就決定了在高速視覺在線檢測系統中必需要有一種軟件抗干擾方法[6,7]可以緩解這些干擾,為高速視覺在線檢測系統的實現提供保障。
3 抗干擾方法的設計
通常的軟件抗干擾方法[8]有擴頻技術、剔除異常數[9]、延時技術[10]等,擴頻技術主要解決通信上的干擾問題,剔除異常數要耗費大量CPU資源排除異常,延時技術會耗費大量的時間。常用的軟件抗干擾方法無法滿足現在的高速視覺在線檢測系統。為此本文設計了基于計算機緩存機制的高速視覺在線檢測系統的軟件抗干擾方法。數據緩存機制可以有效地減少多線程運算的擁塞,減輕計算機的負載,加快整個系統的運行速度。通過部署結果緩存器,可以進一步提高高速視覺在線檢測系統的性能。
本設計中光電傳感產生的脈沖同時觸發4個攝像機采集圖像,圖像采集完成后送入到計算機內存中,4個攝像機對應4個線程分別對各自的圖像進行運算。運算的結果存儲在由拍照幀數作為地址偏移量的存儲器中。對于同一根雪糕棒,跟隨流水線先后分別經過A、B、C和D 4個攝像機。當經過最末端的D攝像機并且D攝像機所對應的線程運算完畢時,一根雪糕棒4個面的檢測結果均已存儲在結果緩存器中。從圖1中可以看出,最末端攝像機與最前端電磁閥之間存在著一定的距離,雪糕棒檢測完成后還需要在鏈條上運動這段距離才到達輸出端。本設計就是利用這一段的物理距離和計算機的緩存機制實現的抗干擾方法。顯然在這里檢測末端與輸出前端的距離與緩沖時間是成正比的,該距離可以在機械設計時改變。在此用雪糕棒的數量來衡量這段距離。檢測末端與輸出前端之間的雪糕棒數量n只需滿足如下數學關系即可:
式中,i表示雪糕棒序號,ti表示第i根雪糕棒的檢測時間,T表示一根雪糕棒的平均檢測時間。由式(1)可知,當n=1時,有t1<T,緩沖時間為(T-ta);當n=2時,有t1+t2<2T,緩沖時間為2(T-ta);當n=3時,有t1+t2+t3<3T,緩沖時間為3(T-ta)。由此可知n越大緩沖時間越大,但是n增大的代價是計算機存儲空間和流水線長度的浪費。由大量的雪糕棒樣本統計得到結果,每根雪糕棒的平均檢測時間ta=51.43 ms,產生干擾脈沖幅值大于2ta的概率為0.6%。雪糕棒生產廠商要求檢測的速度為15根/s,算得檢測時限T=66.66 ms。平均一根雪糕棒有Td=T-ta=15.23 ms的緩沖時間。計算機緩存的作用相當于是把每次的緩沖時間都收集起來,供給干擾脈沖消耗。同時,雪糕棒的檢測時間參差不齊,緩存機制使得各次的檢測時間可以互補,處理時間短的線程把CPU騰讓出來供給處理時間長的線程使用。程序設計中,使用計數器對攝像機采集的幀數進行計數,每次開啟線程時把計得的幀數傳遞到線程處理函數中,線程處理完成后把結果存儲到以傳入的幀數為地址偏移量的循環隊列中。如此一來,檢測時間短的結果數據先入隊,檢測時間長的結果數據后插隊。未使用緩存和使用緩存的檢測時間對比如圖5所示。未使用緩存時,對單次的最長檢測時間M感興趣,使用緩存后,只對多次檢測的平均檢測時間N感興趣。緩存的使用實現了各次耗時不等檢測的時間互補,合理利用了各次檢測的時間余量。經過緩沖時間后,最終輸出的是與單次檢測時間長短無關的結果序列,從而使得系統具備了抗干擾能力。
4 實驗結果與性能分析
抗干擾方法測試:從工業現場隨機抽出一部分雪糕棒,分別運行未使用緩存和使用緩存的程序做了測試。測試過程中雪糕棒運行速度從1根/s逐步提升到19根/s,通過多次測試并對結果觀察統計得到的實驗數據如表1所示。
從實驗結果看出,當雪糕棒的運行速度在10根/s以內時,平均檢測時間小于規定檢測時間,未使用緩存和使用緩存的程序運行結果都不存在漏檢現象;當速度超過10根/s后未使用緩存的測試結果開始出現漏檢,而使用緩存的程序還是正常運行;當檢測速度提升至15根/s時,未使用緩存的程序出現了嚴重的漏檢現象;當檢測速度在17根/s以內,使用緩存的程序均不會出現漏檢現象;當速度提升至18根/s時,使用緩存的程序檢測結果也開始出現了漏檢現象。該實驗證明,緩存機制在高速視覺在線檢測系統中的應用對程序運行的穩定性有很大的改善。
5 結論
本文所設計的基于計算機緩存機制的軟件抗干擾方法充分利用了空間換取時間思想,最終使得雪糕棒在線檢測系統的檢測速度從原來的10根/s提高到了17根/s,檢測速度提高了70%。由此可知,本文所設計的軟件抗干擾方法對系統本身、負載差異以及用戶操作所帶來的干擾具有一定的抵抗力,為一般的高速視覺在線檢測系統的高速、穩定運行提供了保障。
參考文獻
[1] 周文舉.基于機器視覺的在線高速檢測與精確控制研究及應用[D].上海:上海大學,2013.
[2] 吳繼棟.淺論計算機緩存的工作機制[J].計算機與信息技術,2007,33(13):411-422.
[3] 苑瑋琦,李德健.雪糕棒輪廓質量視覺在線檢測方法[J].計算機應用研究,2015,11(33):1022-1030.
[4] 張金柱,洪佩琳,薛開平.負載自適應的CoMP調度策略[J].中國科學院研究生院學報,2012,5(29):644-651.
[5] 李曉飛.高速在線機器視覺檢測方法的研究[D].天津:天津理工大學,2008.
[6] 史勇,謝曉霞.測控系統中的軟件抗干擾技術[J].現代電子技術,2006,5(19):99-101.
[7] 孫亞楠.軟件抗干擾技術[J].電子質量,2010,8(8):84-85.
[8] 王建新,楊世鳳,史永江,等.系統測試中的軟件抗干擾技術[J].國外電子測量技術,2005(10):18-20.
[9] 張慧娟.異常數據檢驗的幾種方法[D].秦皇島:燕山大學,2012.
[10] 刁一峰,楊培剛,劉麗萍,等.軟件延時程序的分析與精確延時程序設計[J].沈陽工程學院學報(自然科學版),2014,10(4):356-358,369.