單曉杭 范 超
(浙江工業(yè)大學機械工程學院 浙江 杭州 310014)
一種基于圖像處理的水平尺氣泡偏移量檢測系統(tǒng)
單曉杭 范 超
(浙江工業(yè)大學機械工程學院 浙江 杭州 310014)
為了提高水準泡水平尺的關(guān)鍵部件在裝配過程中的位置精度,同時也從一定程度上提高這一過程的自動化程度,設(shè)計一種基于機器視覺的水準泡中的氣泡偏移量檢測系統(tǒng)。首先通過圖像水平方向的像素統(tǒng)計大致確定氣泡的垂直位置。然后采用改進的梯度方法識別氣泡以及刻度的水平位置。最后通過公式計算出氣泡在水平方向上的偏移程度。實驗結(jié)果驗證了該方案在氣泡位置檢測中的有效性,相比較機器視覺系統(tǒng)檢測,該方案成本較低,利于在工業(yè)生產(chǎn)環(huán)節(jié)推廣使用。
機器視覺 像素統(tǒng)計 邊緣檢測
水平尺是一種主要用于測量平面水平、垂直程度的儀器[1]。除了完成一般的檢測任務(wù)以外,有些水平尺還能夠測量平面與水平面或者鉛垂面之間的夾角是否在合理的誤差范圍內(nèi),在各行各業(yè)有著較為廣泛的應(yīng)用。水平尺有很多種類,其中氣泡式水平尺具有很多優(yōu)點,應(yīng)用較為廣泛。水平尺作為一種儀器因而其裝配過程具有一定的精度要求,部分水平尺的裝配過程要求有較高的精度。然而,在水平尺的實際裝配過程中,一般需要憑借工人的肉眼觀察來保證水準泡與水平尺殼體之間的定位關(guān)系。這一操作過程較易產(chǎn)生裝配誤差,在有些時候很難達到水平尺的裝配精度要求。
隨著制造業(yè)對于生產(chǎn)環(huán)節(jié)的自動化水平的要求越來越高,基于圖像處理的機器視覺系統(tǒng)近些年來應(yīng)用越來越廣泛。顧名思義,機器視覺是一種模擬人類的視覺在一定程度上使機器具有模擬人眼進行生產(chǎn)過程檢測的系統(tǒng),其較高的精確性、一定程度的可重復(fù)性、較快的速度、較強的針對性[2]、較優(yōu)的客觀性以及成本的逐漸降低等特點使得其在工業(yè)自動化生產(chǎn)領(lǐng)域有著越來越廣泛的應(yīng)用,越來越受到更多自動化人士的青睞。
圖像處理技術(shù)在水平尺的制造與裝配過程中已經(jīng)得到了一定程度的應(yīng)用,有學者研究并實現(xiàn)了水平尺標定過程的視覺算法[3],但要實現(xiàn)工業(yè)應(yīng)用仍需提高其在制造過程中的柔性。也有工程人員利用視覺系統(tǒng)實現(xiàn)了水平尺的裝配生產(chǎn),但生產(chǎn)柔性較低這一問題仍就存在,而且極其昂貴的機器視覺設(shè)備對于多數(shù)中小企業(yè)來說仍是一筆不小的投入。相比較而言,本文提出的圖像處理方法可以較快適應(yīng)多種型號水平尺的裝配生產(chǎn)任務(wù),而且其檢測速率較快,測量精度也能滿足要求,相對而言實現(xiàn)成本也較易接受。
在水準泡氣泡偏移程度的檢測中,對于氣泡邊緣的識別至關(guān)重要,獲取氣泡特定邊緣的坐標值是計算氣泡偏移量的前提,因此,邊緣檢測也就順理成章的成為了氣泡偏移量測量的中心任務(wù)。圖像分割的邊緣檢測算法種類繁多[4],常用的邊緣識別方法既包括Canny算子、Sobel算子[5]、Robinson算子[6],以及分水嶺分割算法[7]等經(jīng)典方法,也包括活動輪廓算法[8],以及水平集方法[9]等較為現(xiàn)代的方法。本文改進了傳統(tǒng)的基于梯度的圖像邊緣識別算法,該方法受到圖像噪聲的影響較小。
1.1 獲取裝置
本文設(shè)計的機器視覺系統(tǒng)(以下稱視覺系統(tǒng))由固定支架、智能相機、鏡頭、可調(diào)光源、工業(yè)PC,以及測試臺組成(見圖1)。固定支架用于固定工業(yè)相機以保持一定的拍攝距離和角度,可調(diào)光源有助于尋找較為合適的實驗光照條件,測試臺用于實現(xiàn)水準泡在裝配過程中水平尺外殼工作面的水平。
圖1 圖像獲取裝置
借助于水平尺(已經(jīng)裝入水準泡)搬運機構(gòu),當水平尺到達裝配測試臺后,氣閥工作驅(qū)動壓緊裝置使水平尺保持相對穩(wěn)定。專用的伺服電機驅(qū)動螺絲刀旋轉(zhuǎn)機構(gòu)調(diào)整水準泡在水平尺中的傾斜程度, 從而實現(xiàn)水平尺這一裝配過程。
1.2 裝配的實現(xiàn)
機器視覺系統(tǒng)與裝配調(diào)整系統(tǒng)(以下稱調(diào)整系統(tǒng))采用工業(yè)以太網(wǎng)通信,機器視覺系統(tǒng)讀出氣泡的偏移程度之后,驅(qū)動伺服電機以一定的步距調(diào)整水準泡兩側(cè)的調(diào)節(jié)螺絲。此時視覺系統(tǒng)更新氣泡的偏移程度,伺服電機再做出相應(yīng)調(diào)整,直至氣泡的偏移程度控制在一定誤差范圍之內(nèi),從而實現(xiàn)這一裝配過程。
調(diào)整系統(tǒng)的軟件控制界面會給出傳送帶電機的工作狀態(tài)、每個伺服電機的運行位移,以及氣閥的其他控制組件的狀態(tài)。
1.3 光源與照明
區(qū)別于對不同景物照射的需要,光源的選取需要參考物面的反射率、粗糙程度、起伏狀況、測量主體特征等多種情況。由于氣泡一般是處于半透明的液體(一般是乙醇)中,所以測試采用背光照明的方式。這樣有助于產(chǎn)生黑白分明的被測物圖像[10],有利于氣泡偏移程度的測量??紤]到需要降低在相機上所生成的圖像的亮度,我們選擇與被測物(內(nèi)有偏綠色的液體)色系差距較大的紅色背光,這樣有利于后期的圖像分析與處理。而且,可見光中紅光波長較短,因而穿透能力相對較強,有利于液體中氣泡的檢測。
2.1 濾 波
我們采用的是黑白工業(yè)相機,所獲得的是256位的灰度圖像(見圖2),該圖像由M×N個像素點組成。考慮到水準泡的液體可能會有一定的不均勻性,而且水準泡外殼可能會有裝配過程中產(chǎn)生的輕微劃痕出現(xiàn),這些都會影響所獲取的圖像的灰度分布,對于個別非邊緣的區(qū)域也可能出現(xiàn)灰度值較大的變化,從而在邊緣提取的時候產(chǎn)生干擾測量結(jié)果的邊緣信息。因此我們采用3×3的模板進行中值濾波(見圖3),這樣既能夠降低不可避免的噪聲,又能夠在一定程度上避免模糊的圖像,防止重要的邊緣信息被淹沒。
圖2 拍攝到的原圖像
圖3 中值濾波后的圖像
2.2 ROI 窗格的選取
選擇先確定ROI區(qū)域,該ROI區(qū)域由M1×N1個像素點組成。我們這樣做有兩個原因:一方面由于所采用的工業(yè)相機感光元器件形狀的限制,在取景的過程中不可避免地會拍攝到水準泡的某些氣泡與刻度線以外的實體,這樣就有可能提取到不需要的邊緣信息,因而直接對被測氣泡進行邊緣提取的效果未必理想。另外考慮到調(diào)整裝置與視覺系統(tǒng)之間的協(xié)調(diào)性,視覺系統(tǒng)作為控制過程的重要信息源,其信息處理速度尤為關(guān)鍵,因此先劃分ROI區(qū)域是必要的。
我們選擇劃分出四個ROI窗格,分別涉及氣泡的左右邊緣的位置信息,以及左右兩根刻度線的位置信息。
由于氣泡的大致形狀在裝配過程中是基本不變的,我們在獲取一幀灰度圖像之后,以圖像的垂直像素的索引為坐標,對每一個坐標相同的水平像素灰度值進行累加,得到與垂直方向索引(坐標)之間的關(guān)系??梢员硎緸椋?/p>
(1)
求出SV(i)的所有極值點,這些極值點的索引構(gòu)成的集合為:
S={i1,i2,…,ip}
集合S中的元素按照一定順序排列得到集合S′:
S′={in1,in2,…,ink}in1 我們所要求的極值點需要符合條件: (1) 極小值點與極大值點的排列順序 我們以DV(ini)來描述極值點(ink,SV(ink))的方向,即: (2) 那么要求滿足: DV(ink)=DV(ink+1)=-1,DV(ink+2)=1,1≤k≤p-3,k∈Z+。 (2) 兩側(cè)極值點連線的方向角在一定范圍之內(nèi) (3) KSmin與KSmax是事先選取的參數(shù)。 (3) 后面兩個極值點之間的曲線變化趨勢在一定范圍之內(nèi) (4) KL是事先選取的參數(shù)。 最終我們搜索到的一組極值點(inP,SV(inP)),(inP+1,SV(inP+1)),(inP+2,SV(inP+2)),它們位于黑色方框內(nèi)(見圖4)。則用于檢測氣泡位置的ROI窗格(見圖5)的索引(坐標)可以表示為以下4個集合: {(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個矩形框內(nèi)) 3.1 閾值計算 對于已經(jīng)選取好的ROI窗格,我們先要確定邊緣提取所需的閾值。由于ROI窗格里的氣泡邊緣部分在垂直維度具有連續(xù)性,易知當中的任一由水平維度相同的像素所組成的集合均含有邊緣成分。 我們?nèi)稳OI窗格里的一行像素,對該行像素的每一個點與相鄰的點作有向差分,算出該行像素水平索引(坐標)為i的點對應(yīng)的像素梯度值: I(i,j)-I(i+1,j)=di (5) 假設(shè)我們得到的di所屬的集合是: D={di|1≤i≤N1-1} 設(shè)第r次出現(xiàn)了個數(shù)為q的符合條件的di(這里指di≤0) 時,我們得到集合: 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)計D(r)中非正值的占比kq: (6) 當kq≥Kq時,D(r)t=?;否則D(r)t=D(r)。 得到該行像素所有的差分值之后,由這些值組成一個集合: (7) 取出符合條件的s個數(shù)組成一個新的集合: D″={dq1,dq2,…,dqs} (q1 對于dqq,dq2,…,dqNr,當中最小的Nr個元素,求和乘以一個事先選取的閾值參數(shù)KT之后得到閾值: (8) 3.2 邊緣像素提取 我們首先提出兩點假設(shè): 1) 圖像在非邊緣區(qū)域的像素值在小范圍內(nèi)變化; 2) 圖像非邊緣區(qū)域像素值變化量(以任一點的像素值為參照)的均值較大時,只要適當放大間隔d,則像素變化值的均值接近于零。 計算所有距離為d的像素點間的灰度值之差: (9) 圖6 氣泡左側(cè)ROI窗格提取的邊緣像素 圖7 氣泡右側(cè)ROI窗格提取的邊緣像素 圖8 左側(cè)刻度線ROI窗格提取的邊緣像素 圖9 右側(cè)刻度線ROI窗格提取的邊緣像素 3.3 目標邊緣點的選擇 圖10 氣泡左側(cè)ROI窗格的SH(j)直方圖 圖11 氣泡右側(cè)ROI窗格的SH(j)直方圖 圖12 左側(cè)刻度線ROI窗格的SH(j)直方圖 圖13 右側(cè)刻度線ROI窗格的SH(j)直方圖 (10) 我們引進記號E(P)表示關(guān)系式中所有滿足條件P的自變量的值構(gòu)成的集合,我們記: (11) 其中: dist(Vk)=max(Vk)-min(Vk) (12) 我們對于所有滿足條件: (13) 的Vkl按下式計算得到vkl: (14) 其中:VDmin、VDmax、VHmin、VHmax、Vdist都是事先選定的參數(shù)。 我們最終得到這樣一組由數(shù)值vkl組成的集合V,根據(jù)V中元素的索引(坐標)選取合適的v=vK,則vK即為我們所要求的邊緣位置坐標值。 圖14簡要地描述了算法整體實現(xiàn)的大致過程。判定框以后的右側(cè)分支屬于之前所述的算法,設(shè)置左側(cè)分支的目的是為了避免由于讀取了錯誤的圖像,以及其他異常工況下的誤操作,有利于提高整個系統(tǒng)的安全性和可靠性。 圖14 算法的整體流程圖 4.1 氣泡偏移程度的計算 我們采用下面的公式計算氣泡的水平偏移程度: (15) 實驗證明,該公式能較好地反映氣泡在水準泡內(nèi)的偏移程度。 4.2 實驗結(jié)果 我們選取了幾幀圖像,在這些圖像中氣泡偏向不同的水平位置,我們得到了氣泡偏移值,見圖15-圖17。 圖15 氣泡在水準泡內(nèi)偏左側(cè)圖像 圖16 氣泡在水準泡內(nèi)基本居中圖像 圖17 氣泡在水準泡內(nèi)偏右側(cè)圖像 我們以vBL、vBR、vLL、vLR分別表示氣泡左側(cè)邊緣至圖像左側(cè)邊緣的距離、氣泡右側(cè)邊緣至對應(yīng)ROI窗格在水平方向起始位置的距離、左側(cè)刻度線的左側(cè)邊緣至圖像左側(cè)邊緣距離、右側(cè)刻度線的右側(cè)邊緣至對應(yīng)ROI窗格在水平方向起始位置的距離。 實驗過程中氣泡在水準泡內(nèi)的偏移狀態(tài)、測得的數(shù)據(jù)以及計算得到的用于評價偏移程度的值L見表1。 表1 實驗結(jié)果 現(xiàn)在已有工業(yè)專用的機器視覺系統(tǒng)可以完成本文所論述的氣泡偏移量的檢測,但由于其價格昂貴,在一定程度上限制了該技術(shù)的推廣。本文在沒有采用遠心鏡頭情形下,盡管拍攝得到的圖像中兩側(cè)的刻度出現(xiàn)了一定的視差和畸變,但是通過該算法依舊能夠較好地實現(xiàn)檢測的目標,而且事先能夠自動實現(xiàn)ROI窗格,提高了對于目標的檢測速率。但是,該算法仍有幾點不足,期待在今后的研究中改進:一是算法中有一部分參數(shù)需要人工給定,這樣就使得目標邊緣的識別帶有一定的主觀性;二是算法中缺乏對于由普通鏡頭采集的照片視差的誤差分析,從而可能會出現(xiàn)得到的偏移量得不到所需的較為苛刻的精度的情形。 [1] 魏煜.圖像處理和模式識別在水平尺標定系統(tǒng)中的應(yīng)用[D].杭州:浙江大學,2004. [2] 劉閣.圖像測量活學活用——原理、算法模型及DSP實現(xiàn)[M].北京:清華大學出版社,2015. [3] 魏煜,朱善安.圖像處理在水平尺標定系統(tǒng)中的應(yīng)用[J].計算機應(yīng)用研究,2004(21)12:168-169,172. [4] 章毓晉.圖像工程[M].北京:清華大學出版社,2013. [5] Gonzalez R C,Woods R E,Eddins S L.Digital Image Processing Using MATLABZ[M].阮秋琦,譯.北京:電子工業(yè)出版社,2014. [6] 趙安科,魏雨,劉天時,等.基于直方圖均衡化的Robinson圖像邊緣檢測算法[J].計算機測量與控制,2016,24(6):230-232,236. [7] 凌財進,增婷,張超,等.一種改進的基于分水嶺的圖像分割算法[J].計算機測量與控制,2016,24(6):214-217. [8] 陳波,賴劍煌.用于圖像分割的活動輪廓模型綜述[J].中國圖象圖形學報,2007,12(1):11-20. [9] 錢蕓,張英杰.水平集的圖像分割方法綜述[J].中國圖象圖形學報,2008,13(1):12-18. [10] 余文勇,石繪.機器視覺自動檢測技術(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)域:機電控制,航天類軍工項目的研發(fā)。范超,碩士生。 TP3 A 10.3969/j.issn.1000-386x.2017.11.0213 圖像處理
4 實驗結(jié)果與分析
5 結(jié) 語