單曉杭 范 超
(浙江工業(yè)大學(xué)機(jī)械工程學(xué)院 浙江 杭州 310014)
一種基于圖像處理的水平尺氣泡偏移量檢測系統(tǒng)
單曉杭 范 超
(浙江工業(yè)大學(xué)機(jī)械工程學(xué)院 浙江 杭州 310014)
為了提高水準(zhǔn)泡水平尺的關(guān)鍵部件在裝配過程中的位置精度,同時(shí)也從一定程度上提高這一過程的自動(dòng)化程度,設(shè)計(jì)一種基于機(jī)器視覺的水準(zhǔn)泡中的氣泡偏移量檢測系統(tǒng)。首先通過圖像水平方向的像素統(tǒng)計(jì)大致確定氣泡的垂直位置。然后采用改進(jìn)的梯度方法識(shí)別氣泡以及刻度的水平位置。最后通過公式計(jì)算出氣泡在水平方向上的偏移程度。實(shí)驗(yàn)結(jié)果驗(yàn)證了該方案在氣泡位置檢測中的有效性,相比較機(jī)器視覺系統(tǒng)檢測,該方案成本較低,利于在工業(yè)生產(chǎn)環(huán)節(jié)推廣使用。
機(jī)器視覺 像素統(tǒng)計(jì) 邊緣檢測
水平尺是一種主要用于測量平面水平、垂直程度的儀器[1]。除了完成一般的檢測任務(wù)以外,有些水平尺還能夠測量平面與水平面或者鉛垂面之間的夾角是否在合理的誤差范圍內(nèi),在各行各業(yè)有著較為廣泛的應(yīng)用。水平尺有很多種類,其中氣泡式水平尺具有很多優(yōu)點(diǎn),應(yīng)用較為廣泛。水平尺作為一種儀器因而其裝配過程具有一定的精度要求,部分水平尺的裝配過程要求有較高的精度。然而,在水平尺的實(shí)際裝配過程中,一般需要憑借工人的肉眼觀察來保證水準(zhǔn)泡與水平尺殼體之間的定位關(guān)系。這一操作過程較易產(chǎn)生裝配誤差,在有些時(shí)候很難達(dá)到水平尺的裝配精度要求。
隨著制造業(yè)對(duì)于生產(chǎn)環(huán)節(jié)的自動(dòng)化水平的要求越來越高,基于圖像處理的機(jī)器視覺系統(tǒng)近些年來應(yīng)用越來越廣泛。顧名思義,機(jī)器視覺是一種模擬人類的視覺在一定程度上使機(jī)器具有模擬人眼進(jìn)行生產(chǎn)過程檢測的系統(tǒng),其較高的精確性、一定程度的可重復(fù)性、較快的速度、較強(qiáng)的針對(duì)性[2]、較優(yōu)的客觀性以及成本的逐漸降低等特點(diǎn)使得其在工業(yè)自動(dòng)化生產(chǎn)領(lǐng)域有著越來越廣泛的應(yīng)用,越來越受到更多自動(dòng)化人士的青睞。
圖像處理技術(shù)在水平尺的制造與裝配過程中已經(jīng)得到了一定程度的應(yīng)用,有學(xué)者研究并實(shí)現(xiàn)了水平尺標(biāo)定過程的視覺算法[3],但要實(shí)現(xiàn)工業(yè)應(yīng)用仍需提高其在制造過程中的柔性。也有工程人員利用視覺系統(tǒng)實(shí)現(xiàn)了水平尺的裝配生產(chǎn),但生產(chǎn)柔性較低這一問題仍就存在,而且極其昂貴的機(jī)器視覺設(shè)備對(duì)于多數(shù)中小企業(yè)來說仍是一筆不小的投入。相比較而言,本文提出的圖像處理方法可以較快適應(yīng)多種型號(hào)水平尺的裝配生產(chǎn)任務(wù),而且其檢測速率較快,測量精度也能滿足要求,相對(duì)而言實(shí)現(xiàn)成本也較易接受。
在水準(zhǔn)泡氣泡偏移程度的檢測中,對(duì)于氣泡邊緣的識(shí)別至關(guān)重要,獲取氣泡特定邊緣的坐標(biāo)值是計(jì)算氣泡偏移量的前提,因此,邊緣檢測也就順理成章的成為了氣泡偏移量測量的中心任務(wù)。圖像分割的邊緣檢測算法種類繁多[4],常用的邊緣識(shí)別方法既包括Canny算子、Sobel算子[5]、Robinson算子[6],以及分水嶺分割算法[7]等經(jīng)典方法,也包括活動(dòng)輪廓算法[8],以及水平集方法[9]等較為現(xiàn)代的方法。本文改進(jìn)了傳統(tǒng)的基于梯度的圖像邊緣識(shí)別算法,該方法受到圖像噪聲的影響較小。
1.1 獲取裝置
本文設(shè)計(jì)的機(jī)器視覺系統(tǒng)(以下稱視覺系統(tǒng))由固定支架、智能相機(jī)、鏡頭、可調(diào)光源、工業(yè)PC,以及測試臺(tái)組成(見圖1)。固定支架用于固定工業(yè)相機(jī)以保持一定的拍攝距離和角度,可調(diào)光源有助于尋找較為合適的實(shí)驗(yàn)光照條件,測試臺(tái)用于實(shí)現(xiàn)水準(zhǔn)泡在裝配過程中水平尺外殼工作面的水平。

圖1 圖像獲取裝置
借助于水平尺(已經(jīng)裝入水準(zhǔn)泡)搬運(yùn)機(jī)構(gòu),當(dāng)水平尺到達(dá)裝配測試臺(tái)后,氣閥工作驅(qū)動(dòng)壓緊裝置使水平尺保持相對(duì)穩(wěn)定。專用的伺服電機(jī)驅(qū)動(dòng)螺絲刀旋轉(zhuǎn)機(jī)構(gòu)調(diào)整水準(zhǔn)泡在水平尺中的傾斜程度, 從而實(shí)現(xiàn)水平尺這一裝配過程。
1.2 裝配的實(shí)現(xiàn)
機(jī)器視覺系統(tǒng)與裝配調(diào)整系統(tǒng)(以下稱調(diào)整系統(tǒng))采用工業(yè)以太網(wǎng)通信,機(jī)器視覺系統(tǒng)讀出氣泡的偏移程度之后,驅(qū)動(dòng)伺服電機(jī)以一定的步距調(diào)整水準(zhǔn)泡兩側(cè)的調(diào)節(jié)螺絲。此時(shí)視覺系統(tǒng)更新氣泡的偏移程度,伺服電機(jī)再做出相應(yīng)調(diào)整,直至氣泡的偏移程度控制在一定誤差范圍之內(nèi),從而實(shí)現(xiàn)這一裝配過程。
調(diào)整系統(tǒng)的軟件控制界面會(huì)給出傳送帶電機(jī)的工作狀態(tài)、每個(gè)伺服電機(jī)的運(yùn)行位移,以及氣閥的其他控制組件的狀態(tài)。
1.3 光源與照明
區(qū)別于對(duì)不同景物照射的需要,光源的選取需要參考物面的反射率、粗糙程度、起伏狀況、測量主體特征等多種情況。由于氣泡一般是處于半透明的液體(一般是乙醇)中,所以測試采用背光照明的方式。這樣有助于產(chǎn)生黑白分明的被測物圖像[10],有利于氣泡偏移程度的測量。考慮到需要降低在相機(jī)上所生成的圖像的亮度,我們選擇與被測物(內(nèi)有偏綠色的液體)色系差距較大的紅色背光,這樣有利于后期的圖像分析與處理。而且,可見光中紅光波長較短,因而穿透能力相對(duì)較強(qiáng),有利于液體中氣泡的檢測。
2.1 濾 波
我們采用的是黑白工業(yè)相機(jī),所獲得的是256位的灰度圖像(見圖2),該圖像由M×N個(gè)像素點(diǎn)組成。考慮到水準(zhǔn)泡的液體可能會(huì)有一定的不均勻性,而且水準(zhǔn)泡外殼可能會(huì)有裝配過程中產(chǎn)生的輕微劃痕出現(xiàn),這些都會(huì)影響所獲取的圖像的灰度分布,對(duì)于個(gè)別非邊緣的區(qū)域也可能出現(xiàn)灰度值較大的變化,從而在邊緣提取的時(shí)候產(chǎn)生干擾測量結(jié)果的邊緣信息。因此我們采用3×3的模板進(jìn)行中值濾波(見圖3),這樣既能夠降低不可避免的噪聲,又能夠在一定程度上避免模糊的圖像,防止重要的邊緣信息被淹沒。

圖2 拍攝到的原圖像

圖3 中值濾波后的圖像
2.2 ROI 窗格的選取
選擇先確定ROI區(qū)域,該ROI區(qū)域由M1×N1個(gè)像素點(diǎn)組成。我們這樣做有兩個(gè)原因:一方面由于所采用的工業(yè)相機(jī)感光元器件形狀的限制,在取景的過程中不可避免地會(huì)拍攝到水準(zhǔn)泡的某些氣泡與刻度線以外的實(shí)體,這樣就有可能提取到不需要的邊緣信息,因而直接對(duì)被測氣泡進(jìn)行邊緣提取的效果未必理想。另外考慮到調(diào)整裝置與視覺系統(tǒng)之間的協(xié)調(diào)性,視覺系統(tǒng)作為控制過程的重要信息源,其信息處理速度尤為關(guān)鍵,因此先劃分ROI區(qū)域是必要的。
我們選擇劃分出四個(gè)ROI窗格,分別涉及氣泡的左右邊緣的位置信息,以及左右兩根刻度線的位置信息。
由于氣泡的大致形狀在裝配過程中是基本不變的,我們?cè)讷@取一幀灰度圖像之后,以圖像的垂直像素的索引為坐標(biāo),對(duì)每一個(gè)坐標(biāo)相同的水平像素灰度值進(jìn)行累加,得到與垂直方向索引(坐標(biāo))之間的關(guān)系。可以表示為:
(1)
求出SV(i)的所有極值點(diǎn),這些極值點(diǎn)的索引構(gòu)成的集合為:
S={i1,i2,…,ip}
集合S中的元素按照一定順序排列得到集合S′:
S′={in1,in2,…,ink}in1 我們所要求的極值點(diǎn)需要符合條件: (1) 極小值點(diǎn)與極大值點(diǎn)的排列順序 我們以DV(ini)來描述極值點(diǎn)(ink,SV(ink))的方向,即: (2) 那么要求滿足: DV(ink)=DV(ink+1)=-1,DV(ink+2)=1,1≤k≤p-3,k∈Z+。 (2) 兩側(cè)極值點(diǎn)連線的方向角在一定范圍之內(nèi) (3) KSmin與KSmax是事先選取的參數(shù)。 (3) 后面兩個(gè)極值點(diǎn)之間的曲線變化趨勢(shì)在一定范圍之內(nèi) (4) KL是事先選取的參數(shù)。 最終我們搜索到的一組極值點(diǎn)(inP,SV(inP)),(inP+1,SV(inP+1)),(inP+2,SV(inP+2)),它們位于黑色方框內(nèi)(見圖4)。則用于檢測氣泡位置的ROI窗格(見圖5)的索引(坐標(biāo))可以表示為以下4個(gè)集合: {(i,j)|SV(inP)≤i≤SV(inP+2),1≤j≤L} {(i,j)|SV(inp)≤i≤SV(inp+2),N-L≤j≤N} {(i,j)|SV(inp)+BV≤i≤SV(inp+2)+BV,1≤j≤L} {(i,j)|SV(inp)+BV≤i≤SV(inP+2)+BV,N-L≤j≤N} 圖4 經(jīng)過求和后垂直方向灰度值的分布圖 圖5 ROI窗格的選取結(jié)果(4個(gè)矩形框內(nèi)) 3.1 閾值計(jì)算 對(duì)于已經(jīng)選取好的ROI窗格,我們先要確定邊緣提取所需的閾值。由于ROI窗格里的氣泡邊緣部分在垂直維度具有連續(xù)性,易知當(dāng)中的任一由水平維度相同的像素所組成的集合均含有邊緣成分。 我們?nèi)稳OI窗格里的一行像素,對(duì)該行像素的每一個(gè)點(diǎn)與相鄰的點(diǎn)作有向差分,算出該行像素水平索引(坐標(biāo))為i的點(diǎn)對(duì)應(yīng)的像素梯度值: I(i,j)-I(i+1,j)=di (5) 假設(shè)我們得到的di所屬的集合是: D={di|1≤i≤N1-1} 設(shè)第r次出現(xiàn)了個(gè)數(shù)為q的符合條件的di(這里指di≤0) 時(shí),我們得到集合: D(r)={dnr,dnr+1,…,dnr+1-1}s≥q D(r)與D(r-1)的關(guān)系可用下式說明: D(r-1)={dnr-1,dnr-1+1,…,dnr-1}nr-nr-1≥q 統(tǒng)計(jì)D(r)中非正值的占比kq: (6) 當(dāng)kq≥Kq時(shí),D(r)t=?;否則D(r)t=D(r)。 得到該行像素所有的差分值之后,由這些值組成一個(gè)集合: (7) 取出符合條件的s個(gè)數(shù)組成一個(gè)新的集合: D″={dq1,dq2,…,dqs} (q1 對(duì)于dqq,dq2,…,dqNr,當(dāng)中最小的Nr個(gè)元素,求和乘以一個(gè)事先選取的閾值參數(shù)KT之后得到閾值: (8) 3.2 邊緣像素提取 我們首先提出兩點(diǎn)假設(shè): 1) 圖像在非邊緣區(qū)域的像素值在小范圍內(nèi)變化; 2) 圖像非邊緣區(qū)域像素值變化量(以任一點(diǎn)的像素值為參照)的均值較大時(shí),只要適當(dāng)放大間隔d,則像素變化值的均值接近于零。 計(jì)算所有距離為d的像素點(diǎn)間的灰度值之差: (9) 圖6 氣泡左側(cè)ROI窗格提取的邊緣像素 圖7 氣泡右側(cè)ROI窗格提取的邊緣像素 圖8 左側(cè)刻度線ROI窗格提取的邊緣像素 圖9 右側(cè)刻度線ROI窗格提取的邊緣像素 3.3 目標(biāo)邊緣點(diǎn)的選擇 圖10 氣泡左側(cè)ROI窗格的SH(j)直方圖 圖11 氣泡右側(cè)ROI窗格的SH(j)直方圖 圖12 左側(cè)刻度線ROI窗格的SH(j)直方圖 圖13 右側(cè)刻度線ROI窗格的SH(j)直方圖 (10) 我們引進(jìn)記號(hào)E(P)表示關(guān)系式中所有滿足條件P的自變量的值構(gòu)成的集合,我們記: (11) 其中: dist(Vk)=max(Vk)-min(Vk) (12) 我們對(duì)于所有滿足條件: (13) 的Vkl按下式計(jì)算得到vkl: (14) 其中:VDmin、VDmax、VHmin、VHmax、Vdist都是事先選定的參數(shù)。 我們最終得到這樣一組由數(shù)值vkl組成的集合V,根據(jù)V中元素的索引(坐標(biāo))選取合適的v=vK,則vK即為我們所要求的邊緣位置坐標(biāo)值。 圖14簡要地描述了算法整體實(shí)現(xiàn)的大致過程。判定框以后的右側(cè)分支屬于之前所述的算法,設(shè)置左側(cè)分支的目的是為了避免由于讀取了錯(cuò)誤的圖像,以及其他異常工況下的誤操作,有利于提高整個(gè)系統(tǒng)的安全性和可靠性。 圖14 算法的整體流程圖 4.1 氣泡偏移程度的計(jì)算 我們采用下面的公式計(jì)算氣泡的水平偏移程度: (15) 實(shí)驗(yàn)證明,該公式能較好地反映氣泡在水準(zhǔn)泡內(nèi)的偏移程度。 4.2 實(shí)驗(yàn)結(jié)果 我們選取了幾幀圖像,在這些圖像中氣泡偏向不同的水平位置,我們得到了氣泡偏移值,見圖15-圖17。 圖15 氣泡在水準(zhǔn)泡內(nèi)偏左側(cè)圖像 圖16 氣泡在水準(zhǔn)泡內(nèi)基本居中圖像 圖17 氣泡在水準(zhǔn)泡內(nèi)偏右側(cè)圖像 我們以vBL、vBR、vLL、vLR分別表示氣泡左側(cè)邊緣至圖像左側(cè)邊緣的距離、氣泡右側(cè)邊緣至對(duì)應(yīng)ROI窗格在水平方向起始位置的距離、左側(cè)刻度線的左側(cè)邊緣至圖像左側(cè)邊緣距離、右側(cè)刻度線的右側(cè)邊緣至對(duì)應(yīng)ROI窗格在水平方向起始位置的距離。 實(shí)驗(yàn)過程中氣泡在水準(zhǔn)泡內(nèi)的偏移狀態(tài)、測得的數(shù)據(jù)以及計(jì)算得到的用于評(píng)價(jià)偏移程度的值L見表1。 表1 實(shí)驗(yàn)結(jié)果 現(xiàn)在已有工業(yè)專用的機(jī)器視覺系統(tǒng)可以完成本文所論述的氣泡偏移量的檢測,但由于其價(jià)格昂貴,在一定程度上限制了該技術(shù)的推廣。本文在沒有采用遠(yuǎn)心鏡頭情形下,盡管拍攝得到的圖像中兩側(cè)的刻度出現(xiàn)了一定的視差和畸變,但是通過該算法依舊能夠較好地實(shí)現(xiàn)檢測的目標(biāo),而且事先能夠自動(dòng)實(shí)現(xiàn)ROI窗格,提高了對(duì)于目標(biāo)的檢測速率。但是,該算法仍有幾點(diǎn)不足,期待在今后的研究中改進(jìn):一是算法中有一部分參數(shù)需要人工給定,這樣就使得目標(biāo)邊緣的識(shí)別帶有一定的主觀性;二是算法中缺乏對(duì)于由普通鏡頭采集的照片視差的誤差分析,從而可能會(huì)出現(xiàn)得到的偏移量得不到所需的較為苛刻的精度的情形。 [1] 魏煜.圖像處理和模式識(shí)別在水平尺標(biāo)定系統(tǒng)中的應(yīng)用[D].杭州:浙江大學(xué),2004. [2] 劉閣.圖像測量活學(xué)活用——原理、算法模型及DSP實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2015. [3] 魏煜,朱善安.圖像處理在水平尺標(biāo)定系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2004(21)12:168-169,172. [4] 章毓晉.圖像工程[M].北京:清華大學(xué)出版社,2013. [5] Gonzalez R C,Woods R E,Eddins S L.Digital Image Processing Using MATLABZ[M].阮秋琦,譯.北京:電子工業(yè)出版社,2014. [6] 趙安科,魏雨,劉天時(shí),等.基于直方圖均衡化的Robinson圖像邊緣檢測算法[J].計(jì)算機(jī)測量與控制,2016,24(6):230-232,236. [7] 凌財(cái)進(jìn),增婷,張超,等.一種改進(jìn)的基于分水嶺的圖像分割算法[J].計(jì)算機(jī)測量與控制,2016,24(6):214-217. [8] 陳波,賴劍煌.用于圖像分割的活動(dòng)輪廓模型綜述[J].中國圖象圖形學(xué)報(bào),2007,12(1):11-20. [9] 錢蕓,張英杰.水平集的圖像分割方法綜述[J].中國圖象圖形學(xué)報(bào),2008,13(1):12-18. [10] 余文勇,石繪.機(jī)器視覺自動(dòng)檢測技術(shù)[J].中國科技信息,2013(24):184-184. ADETECTIONSYSTEMOFBUBBLEOFFSETINLEVELBARBASEDONIMAGEPROCESSING Shan Xiaohang Fan Chao (CollegeofMechanicalEngineering,ZhejiangUniversityofScienceandTechnology,Hangzhou310014,Zhejiang,China) In the assembling of the level bars, the accuracy of the position between the level bubble and the level bar is definitely important. The automation of this working also needs to be developed, so we have developed a system for achieving automatic detection. First, we found the vertical direction of the bubbles generally by counting the pixels in horizontal direction. Second, the offsets of the bubbles and the horizontal positions of the mark lines were detected by an optimized gradient method. Lastly, the relative offsets of the bubbles were calculated by the formation we designed. The effectiveness of this system was verified by analyzing the experimental results. Compared with machine vision system inspection, our scheme has lower cost and is beneficial to be popularized in industrial production. Machine vision Pixels counting Edge detection 2016-11-25。單曉杭,高工,主研領(lǐng)域:機(jī)電控制,航天類軍工項(xiàng)目的研發(fā)。范超,碩士生。 TP3 A 10.3969/j.issn.1000-386x.2017.11.021


3 圖像處理













4 實(shí)驗(yàn)結(jié)果與分析





5 結(jié) 語