蔣智蓓,崔亞飛,秦 龍
(永州職業(yè)技術(shù)學(xué)院,湖南 永州 425100)
隨著德國工業(yè)4.0 和中國制造2025 等戰(zhàn)略的發(fā)布,網(wǎng)絡(luò)信息技術(shù)與大數(shù)據(jù)和云計(jì)算技術(shù)深度集成。傳統(tǒng)的制造業(yè)正逐漸進(jìn)入智能時(shí)代[1-7]。由于視覺優(yōu)勢,機(jī)器視覺技術(shù)在當(dāng)今占據(jù)了重要地位,它極大地促進(jìn)了工業(yè)發(fā)展的智能過程[8-12]。與人類視覺的原理相似,機(jī)器視覺主要由視覺傳感器組成。首先,它是相機(jī)獲得的圖像。然后,將圖像傳輸?shù)接?jì)算機(jī)上,經(jīng)過處理和分析,有用的信息最終用于實(shí)際的檢測、測量和控制。
在工件分揀生產(chǎn)線上,大多數(shù)公司采用傳統(tǒng)的人工分揀。然而,多年來,國內(nèi)勞動(dòng)力成本卻急劇上升。顯然,手動(dòng)排序沒有任何優(yōu)勢。因此,一些公司開始使用工業(yè)機(jī)器人[13-16]來進(jìn)行分類。操作人員在教學(xué)環(huán)節(jié)的指導(dǎo)下完成教學(xué)內(nèi)容。對于這種機(jī)器人,工作過程是開環(huán)的。一旦工作環(huán)境發(fā)生變化,機(jī)器人可能會(huì)抓取不正確的對象。它在很大程度上降低了生產(chǎn)力。在這種情況下,將機(jī)器視覺技術(shù)應(yīng)用于工業(yè)分選系統(tǒng)具有重要意義。與傳統(tǒng)的分類技術(shù)相比,它具有更高的質(zhì)量、速度和智能性。機(jī)器視覺與工業(yè)生產(chǎn)相結(jié)合,不僅可以降低人力成本,還可以保證工業(yè)生產(chǎn)的效率[17-20]。
本文建立了一個(gè)工件分揀系統(tǒng)來解決分揀問題。同時(shí),我們研究了相關(guān)的識(shí)別算法。通過對實(shí)驗(yàn)數(shù)據(jù)的比較,可以采用基于概率霍夫變換和弗里曼碼的工件形狀匹配算法來提高分揀效率。
如圖1所示,該系統(tǒng)是基于一個(gè)具有6個(gè)自由度機(jī)械臂的工業(yè)機(jī)器人。本研究使用的機(jī)器人是TKB1400 機(jī)器人。TKB1400 工業(yè)機(jī)器人采用輕量化設(shè)計(jì),結(jié)構(gòu)緊湊,動(dòng)作空間大,動(dòng)態(tài)響應(yīng)快,性能穩(wěn)定可靠。該產(chǎn)品安裝方便,占用空間小,滿足柔性化生產(chǎn)的需求,提高生產(chǎn)效率。同時(shí),本系統(tǒng)的主要部件如下:工業(yè)相機(jī)、相機(jī)支架、傳送帶、各種慣性和幾何工件、工件箱、計(jì)算機(jī)、控制柜、工業(yè)機(jī)器人等。工業(yè)攝像機(jī)固定在工作區(qū)中,可以在傳送帶上拍照。通過千兆以太網(wǎng)電纜,將所有圖像傳輸?shù)接?jì)算機(jī)上。計(jì)算機(jī)負(fù)責(zé)根據(jù)特定的算法進(jìn)行處理、識(shí)別和定位。當(dāng)計(jì)算機(jī)計(jì)算出工件的空間坐標(biāo)后,它就會(huì)將位置信息發(fā)送到控制柜。控制柜控制工業(yè)機(jī)器人將工件抓取到相應(yīng)的位置。
圖1 系統(tǒng)組成
攝像機(jī)作為機(jī)器視覺系統(tǒng)的核心部件,負(fù)責(zé)圖像的采集和傳輸。它的重要性不言而喻。經(jīng)過慎重考慮,決定選擇Basler acA640-120gm 相機(jī)。該相機(jī)采用索尼ICX618 CCD 感光性芯片,最多支持120 幀/s。此外,傳輸模式是基于GigE Vision 的,這是一種通過千兆以太網(wǎng)通信協(xié)議實(shí)現(xiàn)的攝像機(jī)接口標(biāo)準(zhǔn)。傳輸速度可達(dá)1 000 Mbit/s,最遠(yuǎn)的距離可達(dá)100 m。因此,該相機(jī)可以完全滿足系統(tǒng)性能的要求。
相機(jī)標(biāo)定是視覺系統(tǒng)中的關(guān)鍵步驟。它的基本任務(wù)是處理從相機(jī)中獲得的圖像。為了獲得三維空間中物體的幾何信息,重建和識(shí)別物體,相機(jī)校準(zhǔn)在機(jī)器視覺中發(fā)揮著必要的作用。通過建立相對坐標(biāo)系,計(jì)算出圖像坐標(biāo)系與空間坐標(biāo)系之間的對應(yīng)關(guān)系。
該分選系統(tǒng)是基于針孔成像模型的。采用經(jīng)典的張正友校準(zhǔn)方法。在實(shí)驗(yàn)之前,已經(jīng)準(zhǔn)備了一個(gè)校準(zhǔn)板。然后從不同的角度在校準(zhǔn)板上拍照。最后將校準(zhǔn)板的圖像和基本數(shù)據(jù)加載到MATLAB 校準(zhǔn)模塊。相機(jī)的固有參數(shù)可以自動(dòng)計(jì)算出來。如圖2 所示,為了提高對相機(jī)進(jìn)行校準(zhǔn)的精度,取了17張照片作為校準(zhǔn)模板。
圖2 相機(jī)標(biāo)定
視覺算法主要分為3 個(gè)主要部分:邊緣提取、形狀識(shí)別、排序和抓取。工件涉及許多不規(guī)則和幾何形狀,如三角形、正方形、圓度等。詳細(xì)實(shí)現(xiàn)過程如圖3所示。(1)邊緣提取:對采集到的圖像,使用Canny 算法進(jìn)行邊緣檢測,該算法能夠盡可能多地標(biāo)識(shí)出圖像中的實(shí)際邊緣,漏檢真實(shí)邊緣的概率和誤檢非邊緣的概率都盡可能小,可以提取出有效的邊緣信息。(2) 形狀識(shí)別:結(jié)合概率霍夫變換和弗里曼鏈碼進(jìn)行形狀識(shí)別。(3)定位和抓取:計(jì)算各工件的中心空間坐標(biāo),通過串口將特征信息發(fā)送到機(jī)器人控制柜,然后機(jī)器人機(jī)械手可以自行完成抓取操作。
圖3 實(shí)現(xiàn)過程
Canny 邊緣檢測算法是邊界點(diǎn)位于高斯函數(shù)平滑后的梯度振幅最大點(diǎn)。利用二維高斯函數(shù)對圖像進(jìn)行平滑濾波分析。其效果是抑制噪聲。高斯函數(shù)和卷積公式如(1)所示。
為了確定邊緣點(diǎn),需要抑制梯度振幅的非最大值。保留每個(gè)像素的最大梯度振幅值,并刪除其他值。這一步的目的是使模糊邊界清晰。圖像仍然有很多噪聲。Canny 算法采用了一種稱為雙閾值的技術(shù),即設(shè)置上閾值和下閾值。如果該像素大于上閾值,則認(rèn)為它是一個(gè)邊點(diǎn)。同樣,小于下閾值,它不能是邊點(diǎn),其他的則需要進(jìn)一步處理。
在Canny 算法中,閾值選擇是圖像邊緣提取的關(guān)鍵。如果閾值設(shè)置過高,可能會(huì)錯(cuò)過重要的信息。相反,閾值過低,會(huì)造成不必要的干擾效應(yīng)。因此,很難給出一個(gè)一般的閾值。經(jīng)過多次實(shí)驗(yàn),最終確定了OpenCV中的閾值參數(shù)。下限為48,上限為190。圖4為Canny邊緣檢測的效果。
圖4 Canny邊緣檢測效果
工件識(shí)別是整個(gè)系統(tǒng)中最重要的組成部分。精度直接影響到排序結(jié)果。在傳統(tǒng)的形狀識(shí)別中,幾何通常使用幾何矩不變量來識(shí)別,如胡矩、澤尼克矩等。它們擁有較高的匹配速度,但區(qū)分精度較低。因此,本文提出了一種新的基于概率霍夫變換和弗里曼鏈碼的匹配算法。
霍夫變換是圖像識(shí)別的基本方法之一。它能有效地降低噪聲干擾?;舴蜃儞Q的主要思想是將參數(shù)平面劃分為許多小的情況。如圖5所示,通過“多對一”的映射,從圖像空間中的共線點(diǎn)計(jì)算出參數(shù)空間中相應(yīng)的參數(shù)。當(dāng)結(jié)果在參數(shù)空間內(nèi)時(shí),將累加器加1。最大的累加器是圖像空間[8]中的線性參數(shù)。
圖5 霍夫變換
在標(biāo)準(zhǔn)參數(shù)化方法下,直線l用圖像空間表示:
式中:ρ為從原始點(diǎn)到直線l 的距離;θ為包括直線l和x軸之間的夾角。根據(jù)式(2),第l 線中的不同點(diǎn)(x,y)轉(zhuǎn)換為一群在點(diǎn)p相交的正弦線。顯然,如果可以確定參數(shù)空間中的p點(diǎn)(累加器的最大值),那么直線檢測就完成了。圓度類似于直線?;舴蜃儞Q對直線的檢測具有較強(qiáng)的魯棒性。它可以有效地排除噪聲中的干擾問題。然而,不利影響也非常明顯,需要處理大量的數(shù)據(jù)。因此,在這里不采用傳統(tǒng)的霍夫變換。
概率霍夫變換的主要思想:如果所選的數(shù)據(jù)點(diǎn)是準(zhǔn)確的,那么確定一條直線只需要兩個(gè)點(diǎn)。這表明在霍夫變換的過程中浪費(fèi)了大量的數(shù)據(jù)。這導(dǎo)致了上述數(shù)據(jù)大量的問題。所以應(yīng)該選擇部分的點(diǎn)來進(jìn)行變換。概率霍夫變換不影響最終的檢測結(jié)果,同時(shí)也大大縮短了測試時(shí)間和計(jì)算量。實(shí)現(xiàn)這個(gè)算法的困難在于如何選擇分?jǐn)?shù)的那部分。由于圖像的數(shù)據(jù)冗余性,霍夫變換結(jié)果中的幾個(gè)點(diǎn)可以表示圖像的所有點(diǎn)。只要累加器達(dá)到一定的值,就會(huì)檢測到一條直線。在這種情況下,就不需要考慮要選擇多少百分比了。檢測算法分為4 個(gè)步驟。(1)在數(shù)據(jù)收集中隨機(jī)選擇(xk,yk)點(diǎn)。如果未測試該點(diǎn),則請對該點(diǎn)進(jìn)行霍夫變換。(2)有一個(gè)累加器A(ρk,θk)。如果其值大于設(shè)定閾值參數(shù)和空累加器A的值,輸出對應(yīng)(ρk,θk)。(3)根據(jù)檢測到的線性參數(shù),將所有線性點(diǎn)標(biāo)記為檢測點(diǎn)。(4)檢查未處理點(diǎn)的數(shù)量。如果該數(shù)字小于某個(gè)閾值,退出算法,或繼續(xù)步驟(1)。
在形狀識(shí)別中匹配對象的邊界時(shí),必須在一種方法中存儲(chǔ)邊界信息。弗里曼代碼(鏈碼)是描述邊界信息最常用的方法。中心像素的方向表示4 個(gè)連接鄰域或八個(gè)連接鄰域中鏈碼的值。一旦鏈碼值加上1,方向就會(huì)逆時(shí)針旋轉(zhuǎn)45°或90°。如圖6 所示,根據(jù)鏈碼的不同斜率,鏈碼可以分為4向和8向。
圖6 4向和8向鏈碼
在鏈碼中,起點(diǎn)是關(guān)鍵因素。起點(diǎn)不同,鏈碼值也不同。當(dāng)鏈碼發(fā)生改變時(shí),目標(biāo)鏈碼的值將會(huì)有所不同。因此,基于第一個(gè)差分來構(gòu)造差分鏈編碼。差分鏈碼可以通過后一個(gè)代碼方向減去前一個(gè)代碼方向并進(jìn)行模8操作得到。差分鏈碼是一個(gè)新的序列。它相當(dāng)于對原始鏈碼進(jìn)行旋轉(zhuǎn)規(guī)范化。
該算法綜合了概率霍夫變換和弗里曼碼的優(yōu)點(diǎn)。識(shí)別圖像的具體過程如下。(1)首先使用概率霍夫變換來檢測直線??梢缘玫街本€的數(shù)目和線性方程。(2)根據(jù)直線的方程,計(jì)算出兩條直線之間的交點(diǎn)。確定交點(diǎn)是否在有效區(qū)域內(nèi)。如果是,則計(jì)算兩條相交線之間的角度。如果不是,它就不是沒有計(jì)算的頂點(diǎn)。(3)將角度定義為鏈碼的參數(shù),并轉(zhuǎn)換為差分鏈碼,得到一個(gè)霍夫-弗里曼碼。(4)將該代碼與模板相匹配。(5)如果剩余的點(diǎn)數(shù)大于某個(gè)閾值,則使用Hough變換來確定是否存在圓度。
為了驗(yàn)證該算法的可行性,進(jìn)行了工件識(shí)別實(shí)驗(yàn)。在實(shí)驗(yàn)中,將不同尺寸的工件(三角形、正方形、五邊形、圓形)放置在傳送帶上。實(shí)驗(yàn)結(jié)果如表1所示。相對于胡矩和澤尼克矩,霍夫-弗里曼碼算法具有較高的識(shí)別精度。關(guān)于識(shí)別時(shí)間,胡力矩最短,其次是霍夫-弗里曼代碼。澤尼克矩出現(xiàn)的時(shí)間最長。因此,霍夫-弗里曼碼的識(shí)別效果優(yōu)于基于幾何矩不變量的識(shí)別方法。
表1 3種算法的識(shí)別精度
在抓取之前,必須確定工件的位置。根據(jù)邊緣信息,可以計(jì)算出426 個(gè)工件的重心坐標(biāo)。接下來,通過矩陣變換將圖像坐標(biāo)轉(zhuǎn)換為空間坐標(biāo)。最后將特征信息發(fā)送到控制柜,使機(jī)械手自動(dòng)完成分揀操作。
本文闡述了基于機(jī)器視覺、實(shí)現(xiàn)過程和主要算法的幾何工件分類系統(tǒng)。其中,采用背景差法減少后續(xù)識(shí)別的時(shí)間浪費(fèi)。精明的算法可以幫助獲取工件的準(zhǔn)確的邊緣信息。該算法能很好地完成了工件識(shí)別。建立了硬件實(shí)驗(yàn)平臺(tái)來測試算法。實(shí)驗(yàn)結(jié)果表明,該識(shí)別算法具有較好的精度和魯棒性。