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