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