楊萬(wàn)鵬,胡 偉
(河南理工大學(xué)電氣與自動(dòng)化學(xué)院,河南焦作 454002)
隨著工業(yè)自動(dòng)化程度的不斷提升,機(jī)器視覺(jué)的應(yīng)用也越來(lái)越廣泛。因此,靈活運(yùn)用機(jī)器視覺(jué)是提高自動(dòng)化水平的重要手段。在工業(yè)自動(dòng)化領(lǐng)域,有很多圓形零件組裝的場(chǎng)景,主要通過(guò)檢測(cè)零件和對(duì)應(yīng)軸孔的位姿參數(shù),得到它們之間的空間位姿關(guān)系,為自動(dòng)化裝配提供準(zhǔn)確的導(dǎo)航。隨著機(jī)器視覺(jué)檢測(cè)技術(shù)發(fā)展迅速,因其具有高效率、非接觸、高精度等特點(diǎn),被廣泛地應(yīng)用于圓形零件裝配過(guò)程中圓形零件和對(duì)應(yīng)軸孔位姿的檢測(cè)。隨著對(duì)制造設(shè)備的精度、使用壽命和穩(wěn)定性要求越來(lái)越高,對(duì)設(shè)備的組裝精度要求也隨之提高,這就需要高精度定位算法來(lái)達(dá)到要求。要實(shí)現(xiàn)高精度定位,良好的區(qū)域邊緣特征和穩(wěn)定準(zhǔn)確的定位算法是關(guān)鍵。傳統(tǒng)的提高圖像質(zhì)量的方法是提升硬件性能,但是受檢測(cè)環(huán)境的多變性和高成本的限制,催生了在算法領(lǐng)域提高圖像的質(zhì)量。邵偉國(guó)、朱嘉等[1-2]提出了基于圓心約束的最小二乘圓擬合方法,該類方法通過(guò)固定圓心值的方式,有效提高擬合精度。李澤峰等[3]采用了曲線擬合及優(yōu)化擬合算法進(jìn)行擬合圓,該方法運(yùn)算速度快。
以上方法均是在理論方面進(jìn)行分析,在實(shí)際運(yùn)用中,其普適性和穩(wěn)定性欠缺。本文根據(jù)實(shí)際項(xiàng)目,結(jié)合機(jī)器視覺(jué)方面的應(yīng)用,用濾波去掉干擾,閾值分割獲取感興趣區(qū)域,引入同態(tài)增晰算法提高圖像質(zhì)量,用最小二乘法Huber圓擬合算法求得圓,梯度下降方法求出圓心。最后,針對(duì)整個(gè)定位系統(tǒng)進(jìn)行分析,經(jīng)現(xiàn)場(chǎng)驗(yàn)證其精準(zhǔn)度、普適性和穩(wěn)定性。
該系統(tǒng)主要包括圖像采集、圖像處理、相機(jī)標(biāo)定、定位、Scoket通信等。實(shí)物如圖1所示。
圖1 系統(tǒng)實(shí)物
系統(tǒng)的動(dòng)作流程:吸嘴去上料位吸取磁鐵,下相機(jī)拍磁鐵定位,上相機(jī)拍治具軸孔定位,計(jì)算坐標(biāo)偏移量,最后將磁鐵準(zhǔn)確放入軸孔位置,結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)
視覺(jué)檢測(cè)流程如圖3所示。
圖3 視覺(jué)檢測(cè)流程
本系統(tǒng)上位機(jī)軟件中的人機(jī)界面用Visual Studio 2017開(kāi)發(fā)環(huán)境下的Windows窗體設(shè)計(jì),用C#語(yǔ)言完成后臺(tái)邏輯編寫(xiě),用HALCON算法庫(kù)完成圖像處理。圖4所示為軟件系統(tǒng)架構(gòu)示意圖。定位系統(tǒng)的核心技術(shù)是圖像處理算法,它直接影響到定位的精度和速度。
圖4 軟件系統(tǒng)架構(gòu)
由于本視覺(jué)系統(tǒng)工作在有不明照明干擾、溫度高、噪聲大的工廠流水線環(huán)境中,在這種惡劣的環(huán)境中易有高斯噪聲及椒鹽噪聲[4]產(chǎn)生,需要對(duì)采集的圖像濾波去噪聲。常見(jiàn)的濾波有均值濾波、高斯濾波、中值濾波等。中值濾波采用非線性的濾波方式,在去除噪聲的同時(shí)還能保護(hù)圖像尖銳的邊緣,同時(shí)具有平滑作用[5],經(jīng)驗(yàn)證,適合本項(xiàng)目情況,所以采用中值濾波的方法進(jìn)行濾除。中值濾波處理效果如圖5所示。
圖5 中值濾波處理效果
圖像閾值分割結(jié)果的優(yōu)劣、目標(biāo)區(qū)域邊界線定位的精準(zhǔn)度都直接影響后續(xù)分析和處理。根據(jù)閾值選取的方法不同,圖像分割的主要算法分為直方圖閾值法,迭代法和大津法[6]。根據(jù)處理速度和運(yùn)算簡(jiǎn)便性的原則,本系統(tǒng)采用直方圖方法進(jìn)行閾值分割?;叶戎狈綀D如圖6所示。
圖6 灰度直方圖
圖像分割的閾值選取由下式所決定:
或:
圖像分割后圖像如圖7(a)所示。本視覺(jué)系統(tǒng)圖像處理算法中加入了形態(tài)學(xué)處理算法[7],目的是將圓孔區(qū)域全部提取出來(lái),提高擬合的精度。處理結(jié)果如圖7(b)、(c)所示。
圖7 形態(tài)學(xué)處理
為提高圖像質(zhì)量,在消除圖像光照不均勻的影響的同時(shí)又不損失亮區(qū)的圖像細(xì)節(jié),高精度地完成擬合,本文引進(jìn)同態(tài)增晰的算法,對(duì)提取出的區(qū)域進(jìn)行同態(tài)增晰后,在頻域中將圖像亮度范圍進(jìn)行壓縮和將圖像對(duì)比度進(jìn)行增強(qiáng)[8]。一幅圖像f(x,y)可以由低頻區(qū)照射分量i(x,y)和高頻區(qū)反射分量r(x,y)的乘積表示,數(shù)學(xué)表達(dá)式如下:
其流程如圖8所示。
圖8 同態(tài)增晰算法流程
H(u,v)表示濾波函數(shù),經(jīng)驗(yàn)證分析,這里采用Butterworth高通濾波器:D0為截止頻率,表示點(diǎn)(u,v)到原點(diǎn)的歐式距離,n為濾波器的階數(shù)。
同態(tài)增晰的具體步驟如下。
(1)首先對(duì)圖像函數(shù)f(x,y)進(jìn)行對(duì)數(shù)變換:
其作用是將頻譜區(qū)分。
(2)對(duì)上式做傅里葉變換,得:
(3)將對(duì)數(shù)圖像頻譜式,即將上式乘以同態(tài)濾波函數(shù)H(u,v),得:
其特性如圖9所示,這是二維濾波函數(shù)的剖面。
圖9 同態(tài)增晰濾波函數(shù)
可以看出H(u,v)的作用是壓縮頻譜的低頻段,擴(kuò)展頻譜的高頻段。
經(jīng)過(guò)傅里葉反變換,得:
(4)進(jìn)行指數(shù)變換,得到經(jīng)同態(tài)濾波處理的圖像:
這樣就達(dá)到了增強(qiáng)對(duì)比度、降低選用不同的動(dòng)態(tài)范圍的目的。而且可以根據(jù)不同圖像的特性和需求,選用不同的H(u,v),可以達(dá)到滿意的效果。
原圖和同態(tài)增晰后的圖像分別如圖10和圖11所示,同態(tài)增晰后的圖像為下一步地?cái)M合提供了良好的邊緣信息。
圖10 處理前圖像
圖11 同態(tài)增晰后圖像
軸孔和磁鐵中心的精度直接影響對(duì)位的精度,這就需要用精確擬合圓的方法求得圓心坐標(biāo)。曲線擬合的方法有平均值法、加權(quán)平均法、最小二乘法等[9]。為確保擬合圓的精度,同時(shí)保證保障算法的速度,這里采用最小二乘法Huber圓擬合算法,用梯度下降方法求出擬合圓的圓心。
假設(shè)圓的方程式如下:
以(xi,yi)表示輪廓所有像素點(diǎn)i的像素坐標(biāo),根據(jù)Kasa算法[10]求出初始圓的坐標(biāo)為(a0,b0),半徑R0。根據(jù)文獻(xiàn)[7],Huber函數(shù)表達(dá)式為:
令單個(gè)邊緣點(diǎn)到目標(biāo)圓的距離Zi=可以為正值,也可以為負(fù)值。檢測(cè)到邊緣點(diǎn)關(guān)于初始圓半徑的均方根誤差σ0為:
式(10)中的k一般取(0.5σ0,σ0)。令?=(a,b,R)T,把Zi代入式(11)可得目標(biāo)函數(shù)如下:
通過(guò)Zi的物理意義是邊緣點(diǎn)到目標(biāo)圓的距離,參數(shù)是非線的,所以本系統(tǒng)采用梯度下降法求解。
在最優(yōu)化問(wèn)題的求解方法中,最常用的方法為梯度下降法,此方法相對(duì)簡(jiǎn)單,易理解。目標(biāo)函數(shù)在?0處通過(guò)泰勒展開(kāi)式如下:
式中:o(?-?0)為無(wú)窮小項(xiàng),可忽略不計(jì);α(α>0)為步長(zhǎng)調(diào)節(jié)參數(shù)。
當(dāng)▽G(?0)(?-?0)<0時(shí),G(?)<G(?0),函數(shù)值下降。根據(jù)柯西-施瓦茲不等式得:
當(dāng)▽G(?0)=(?-?0)時(shí),式(14)相等;當(dāng)▽G(?0)(?-?0)≥0時(shí),式(14)取最大值;當(dāng)▽G(?0)=-(?-?0),▽G(?0)(?-?0)≤0,此時(shí)函數(shù)下降最快。
考慮到步長(zhǎng)參數(shù)的調(diào)節(jié)作用,自變量沿負(fù)梯度迭代變化時(shí),函數(shù)下降最快。所以在式(12)中,如果令ri-R,則可得:
上式中ρ′(si)是ρ(si)的導(dǎo)數(shù)。Huber函數(shù)的導(dǎo)數(shù)為所以梯度▽G(?)如下所示:
計(jì)算步長(zhǎng)參數(shù)α:Δ?=?k-?k-1,gk=▽G(?k),Δg=gk-gk-1。每次調(diào)整迭代步長(zhǎng)參數(shù),則算法收斂條件為:
函數(shù)存在最小值的必要條件如下:
根據(jù)(17)、(18)得:
式中:〈Δ?,Δg〉為向量Δ?與向量Δg的內(nèi)積;Δ?=?k-?k-1=-ak-1gk-1。梯度下降法比較穩(wěn)定,程序簡(jiǎn)單,計(jì)算量小,但是收斂較慢。最小二乘法Huber擬合圓算法的流程如圖12所示。
圖12 最小二乘法Huber圓擬合算法流程
原圖的擬合效果和同態(tài)增晰后用最小二乘法Huber圓擬合算法對(duì)比如圖13所示。
圖13 處理效果對(duì)比
為了驗(yàn)證該算法的精度和穩(wěn)定性,對(duì)視覺(jué)系統(tǒng)進(jìn)行大量重復(fù)拍照測(cè)試,并記錄每次輸出坐標(biāo)偏移量的數(shù)據(jù),計(jì)算其重復(fù)精度。對(duì)本系統(tǒng)的上下相機(jī),分別重復(fù)拍照51次,取第一次拍照結(jié)果的坐標(biāo)為基準(zhǔn)坐標(biāo),剩下的50次拍照結(jié)果均與基準(zhǔn)坐標(biāo)求差值,收集50次差值的數(shù)據(jù),驗(yàn)證并分析其重復(fù)精度。采用嚴(yán)葉青等[11]的算法,上相機(jī)50次重復(fù)拍照偏移量曲線如圖14所示,下相機(jī)50次重復(fù)拍照偏移量曲線如圖15所示。
圖14 上相機(jī)偏移量曲線
圖15 下相機(jī)偏移量曲線
上相機(jī)的重復(fù)精度為0.01~0.04 mm,下相機(jī)的重復(fù)精度為0.011~0.035 mm。項(xiàng)目要求的視覺(jué)系統(tǒng)的重復(fù)精度為0.05 mm,上下相機(jī)的測(cè)試取50次拍照偏移量的重復(fù)精度均小于0.04 mm。因此,本文提出的軸孔自動(dòng)組裝系統(tǒng)中定位精度滿足項(xiàng)目要求的0.05 mm,精度控制在0.04 mm以內(nèi)。
本文對(duì)采集到的圖片閾值分割、中值濾波等進(jìn)行預(yù)處理,去除干擾,對(duì)感興趣區(qū)域用同態(tài)增晰算法提高邊緣質(zhì)量,最后用最小二乘法Huber算法擬合圓,用梯度下降方法求得圓心,實(shí)現(xiàn)了圓形物體的高精度定位。目前該系統(tǒng)已成功應(yīng)用于實(shí)際生產(chǎn),據(jù)客戶現(xiàn)場(chǎng)使用反饋,精度高,效果良好。該方法普適性高、運(yùn)行穩(wěn)定。為類似的圓形零件定位組裝系統(tǒng)提供參考。