劉振宇,李中生,2,, 趙 雪,鄒風(fēng)山
LIU Zhen-yu1, LI Zhong-sheng1, 2, 3, ZHAO Xue4, ZOU Feng-shan3
(1.沈陽工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,沈陽 110870;2.空軍駐沈陽地區(qū)軍事代表室,沈陽 110016;3.新松機器人自動化股份有限公司,沈陽 110168;4.沈陽防銹包裝材料有限責(zé)任公司,沈陽 110084)
機器視覺技術(shù)指用攝像機來模擬人眼的視覺功能來對客觀事物進行測量和判斷。視覺技術(shù)在工業(yè)中得到了越來越廣泛的應(yīng)用,對提高生產(chǎn)效率,達到生產(chǎn)智能化的目的起著至關(guān)重要的作用[1]。工件分揀是工業(yè)產(chǎn)品批量生產(chǎn)環(huán)節(jié)重要的組成部分,傳統(tǒng)生產(chǎn)線上,分揀采用人工的方法,對于長時間作業(yè)來說,顯然是滿足不了的。即使采用工業(yè)機器人進行分揀,其一系列運動也都是用示教或離線編程的方法,所有動作和擺放位置都要預(yù)先嚴格的設(shè)定。一旦工作環(huán)境條件有所變化,就會造成抓取錯誤。與傳統(tǒng)的機械分揀作業(yè)相比,將機器視覺技術(shù)應(yīng)用到工業(yè)分揀系統(tǒng)上有著高質(zhì)量,高速率,高智能等無法替代的優(yōu)勢。根據(jù)目前我國的市場需求狀況和相關(guān)技術(shù)研究、將機器視覺與工業(yè)生產(chǎn)的有機結(jié)合不僅提高了產(chǎn)品質(zhì)量和可靠性,更保證了工業(yè)化生產(chǎn)的效率[2],有著十分重要的意義。目前,視覺處理算法發(fā)展取得了較快的發(fā)展。例如,Dagao Duan,Meng Xie,Qian Mo等人提出了一種改進的Hough變換(MHT)和窗口隨機Hough變換(RHT)減輕了存儲負載[3]。Barinova, O., Lempitsky, V., Kholi, P.等人提出了一種Hough變換檢測算法,用于檢測多個目標對象[4]。中國三峽大學(xué)提出了一種新的圓心都由梯度Hough變換分配同心圓檢測方法[5]。Sun Junding, Xu Heli等人研究了鏈碼分布向量(CCDV),鏈碼相對論熵(CCRE),鏈碼空間分布熵(CCSDE),并且提出了一種將鏈碼檢索形狀的算法[6]。
本文把機器視覺技術(shù)應(yīng)用到工業(yè)機器人分揀問題中,搭建立了基于視覺的分揀系統(tǒng)試驗平臺。同時研究了相關(guān)的圖像處理算法,提出了多目標分塊處理算法和Hough變換與鏈碼相結(jié)合的Hough-鏈碼識別算法,兩者結(jié)合可以有效解決規(guī)則幾何工件的分揀問題。
本文以新松六自由度機械臂SRH6工業(yè)機器人為基礎(chǔ),搭建了如圖1所示的基于機器視覺的工業(yè)機器人分揀系統(tǒng)平臺。該工業(yè)機器人分揀系統(tǒng)主要組成部分有:傳送帶、工件放置槽、千兆以太網(wǎng)工業(yè)相機、相機支架和六自由度工業(yè)機器人等。
首先相機對傳送帶上進入到工作區(qū)的工件進行圖像采集,然后對圖像進行處理分析,對工件進行識別定位,接著根據(jù)建立的目標坐標系和機器人坐標系之間的關(guān)系,引導(dǎo)機器人抓取不同種類的工件,把同類的工件放置到放置槽中去。
圖1 基于機器視覺的工業(yè)機器人分揀系統(tǒng)
基于機器視覺的工業(yè)機器人分揀系統(tǒng)的圖像處理流程如圖2所示,通過攝像機把工件放置臺上幾何工件的圖像序列采集到PC機內(nèi),并通過識別算法進行常規(guī)形狀的識別:如矩形、三角形、五邊形和六邊形等規(guī)則幾何工件,計算其相關(guān)的形狀特征。整個分揀流程從視覺算法上分為四個部分:圖像預(yù)處理、目標提取、形狀識別和分揀抓取。1) 圖像預(yù)處理:對采集到的圖像進行圖像平滑去除噪,消除噪聲對圖像的干擾。使用Canny算子進行二值化,其目的是將目標圖像從背景圖像提取出來。2) 目標提?。簩D像按照目標分塊進行處理,可以提高識別速率。使用Hough直線檢測是為了檢測單一目標的幾何工件邊的條數(shù)。3) 形狀識別:首先用圖像幾何矩來對工件進行快速粗略識別,之后利用Hough變換檢測出的目標工件的四周的直線,求取相鄰兩條直線之間的夾角,用夾角作為鏈碼的參數(shù),然后比較數(shù)據(jù)庫中的模板鏈碼和計算出的鏈碼是否相同以精確匹配。4) 分類抓?。簩γ總€單一工件目標求取質(zhì)心坐標點,通過RS232發(fā)送特征信息給機器人控制柜,從而控制機器人的機械手進行分揀抓取操作。
圖2 視覺算法分揀流程圖
機器視覺中CCD攝像頭的作用是采集目標圖像,攝像頭選用DALAS公司生產(chǎn)的GM1400千兆以太網(wǎng)工業(yè)相機。相機內(nèi)參數(shù)為:焦距:4.2864毫米;精度:1.3020mm/像素(長)、精度:0.9765mm/像素(寬);焦距:5毫米;精度:1.116mm/像素。為了方便計算,可以近似認為1像素為1mm。
攝像機標定是視覺系統(tǒng)開發(fā)的關(guān)鍵步驟,它的基本任務(wù)就是通過對從攝像機采集到的圖像進行處理,以獲得三維空間中物體的幾何信息,并由此重建和識別物體[7],是機器視覺在工業(yè)分揀生產(chǎn)線上得以應(yīng)用的一個必要前提。攝像機標定的目的是建立各相關(guān)坐標系,獲得空間點在圖像坐標系和空間坐標系下的對應(yīng)關(guān)系[8]。針孔模型是攝像機模型中最簡單的模型,本分揀系統(tǒng)以小孔成像為標定算法的模型,采用了張正友標定法。只需要拍攝2張相片,并根據(jù)圖像點之間對應(yīng)關(guān)系即可標定出攝像機內(nèi)參數(shù)與外參數(shù)[9]。如圖3所示,為了提高攝像機標定的精度,本文采用7張相片作為標定模板。攝像機標定是分揀系統(tǒng)跟蹤和抓取目標的前提,為后續(xù)抓取工作提供了基礎(chǔ)保證。
圖3 攝像機標定圖
圖4 幾何工件的外圍矩形
圖像的預(yù)處理主要是為了提高圖像數(shù)據(jù)中的信噪比,進行背景噪聲的抑制。目的是減輕后續(xù)圖像處理的壓力。預(yù)處理的好壞直接影響機械工件的邊緣、面積、曲率、角度和物體質(zhì)心等特征的提取。
3.2.1 多目標分塊處理
在圖像處理中,一般的算法都是把一張圖像作為一個整體研究,這樣每次對圖像分析時候都是在掃描整個圖像下進行的。本文采用多目標分塊處理,把一副圖像分割為基于N個目標的不同目標塊Block N(i,j)。這樣可以在處理目標圖像時,只針對目標塊這一小部分,有效的減小算法處理時間。如圖4所示,將多目標幾何工件按照分塊進行處理。每個目標工件都有外圍矩形將每個目標都分開。
3.2.2 邊緣檢測
經(jīng)典的邊緣檢測的算子有Sobel算子、Prewitt、 Canny算子和Laplace算子,而Canny算子具有較好的信噪比、高邊緣定位性能和在噪聲環(huán)境下較好的檢測效果,適用于不同環(huán)境下的邊緣檢測[10]。本文選取Canny邊緣檢測算子求取工件邊緣。該算子首先采用二維高斯函數(shù)的一階導(dǎo)數(shù)對圖像進行平滑處理,再對平滑后的圖像計算其梯度的幅值和方向并進行非極大值抑制,最后檢測和連接邊緣[11],二維高斯函數(shù)和圖像卷積如式(1)所示:
其中:I(x,y)為原始圖像,σ是一個尺度參數(shù),σ越小,則函數(shù)越集中。σ越大,則表示圖像在一個較大的范圍內(nèi)進行平滑去除圖像噪聲。
然后用一階偏導(dǎo)的有限差分來計算梯度的幅值圖像G和梯度方向圖像α。點(i,j)處兩個方向的偏導(dǎo)數(shù)Gx(i,j)和Gy (i,j) 如式(2)所示。
則此時圖像點I (i, j)處的梯度幅值M和梯度方向α分別為:
其中α為平滑梯度方向矢量,即正交邊緣的方向。幅值M越大,其對應(yīng)的圖像梯度值也越大。為了確定邊緣,只保留幅值局部變化較大的點,生成細化邊緣。最后用雙閾值算法檢測并且連接邊緣。
經(jīng)過Canny算子處理后,需要對二值圖像進行膨脹處理,使得邊緣更明顯以便于觀察。膨脹屬于形態(tài)學(xué)的一種處理方法,需要定義一個“結(jié)構(gòu)元素”,在每個像素的位置上它將與二值圖像對應(yīng)的區(qū)域進行特定的邏輯操作。膨脹公式定義為:
首先對S做關(guān)于原點的映像 ,然后將結(jié)構(gòu)元素S平移到(x,y),它與I的交集不為空集,這樣的點(x,y)組成的集合就是S對I膨脹產(chǎn)生的結(jié)果。檢測到的工件邊緣如圖5所示。
圖5 檢測的工件邊緣
工件的識別與定位是機器人分揀工件的前提和基礎(chǔ),其識別和定位的正確與否直接影響到后續(xù)分揀操作結(jié)果的準確性,本文首先利用幾何不變矩對工件圖像進行快速的粗略識別,接著采用Hough變換檢測邊緣直線,并以直線夾角為參數(shù)形成Hough-鏈碼,通過匹配目標與模板的Hough-鏈碼來進一步識別工件。工件的定位采用基于圖像一階矩的算法來計算出工件的質(zhì)心坐標。
圖像的幾何不變矩特征主要體現(xiàn)了圖像區(qū)域的幾何特征,又稱為幾何矩,由于其具有旋轉(zhuǎn)、平移、尺度等特征的不變特征,所以又稱為不變矩。
對于區(qū)域大小為M×N的數(shù)字圖像f(i, j),其(p+q)階矩定義為:
公式(6)中:f(i, j)相當(dāng)于一個像素的質(zhì)量;Mpq為不同p、q值下的圖像的矩。
中心距Mpq反映了區(qū)域中的灰度相對于灰度重心是如何分布的度量。為了得到矩的不變特征,定義歸一化的中心距為:
利用歸一化的中心矩,可以獲得利用式(8)中εpq表示的7個具有平移、比例和旋轉(zhuǎn)不變性的矩不變量(其中φ7只具有比例和平移不變形)。
如表1所示,對五邊形工件進行平移、旋轉(zhuǎn)和縮放后計算出其幾何不變矩。由表1可知,該幾何不變矩方法魯棒性一般,且不能對同類工件的不同大小進行區(qū)分,鑒于該方法能快速檢測出工件大體形狀,故用該方法來實現(xiàn)對工件的快速粗略檢測。
表1 基于五邊形工件的圖像幾何矩
針對相同形狀的大小工件,本文采用基于Hough變換和鏈碼的方法演變來的Hough-鏈碼法來進行精確匹配特征。
Hough變換在圖像處理中識別幾何形狀的基本方法之一。Hough變換算法的主要思想是,先將參數(shù)平面按一定步長離散化為許多小格,然后采用“多對一”映射,計算圖像空間中共線的多個像素點在參數(shù)平面中對應(yīng)的參數(shù)值,若計算結(jié)果落在參數(shù)平面某一小格內(nèi),就使該小格的累加器加1,累積值最大的小格即為圖像空間中直線的參數(shù)[12]。
如圖6所示,x-y坐標和k-b坐標有點----線的對偶性。x-y坐標中的點P1、P2對應(yīng)于k-b坐標中的L1、L2;而k-b坐標中的點P0對應(yīng)于x-y坐標中的線L0,由于x-y坐標中的垂直線的k值為無窮大,給計算帶來不便,故使用點----正弦曲線對偶變換解決這一問題。將直線坐標系轉(zhuǎn)化到極坐標方程表示如下:
圖6 點-線對偶性
上述方程中,θ取(0~1800)為坐標系xoy原點到直線的垂線與x軸正方向的夾角,ρ為坐標系xoy原點到直線的距離。從直角坐標系到極坐標系下就是一條直線上的多個點對應(yīng)多條交于一點的直線。
運用Hough變換來檢測直線有具有較強的魯棒性,可以有效地排除噪聲的干擾和解決圖像經(jīng)過二值化后線條出現(xiàn)的間斷的問題[13]。
近年來,鏈碼因其能用較少的數(shù)據(jù)來存儲較多的信息而被廣泛的應(yīng)用于圖像匹配領(lǐng)域中[14]。鏈碼是圖像處理和目標識別常用的一種基本方法,如圖7所示,根據(jù)鏈碼的斜率不同,可以將鏈碼分為4方向和8方向鏈碼。
圖7 鏈碼值與方向之間的對應(yīng)關(guān)系
使用鏈碼時候,起點是關(guān)鍵因素,不同起點的鏈碼,產(chǎn)生的結(jié)果是不同的,所以一般采用差分鏈碼。這相當(dāng)于把鏈碼進行旋轉(zhuǎn)歸一化。在圖像中的目標發(fā)生旋轉(zhuǎn)時其鏈碼會發(fā)生變化,此時可以在鏈碼的一階差分基礎(chǔ)上構(gòu)造差分鏈碼,且差分鏈碼具有旋轉(zhuǎn)不變特性。差分鏈碼可以用相鄰兩個像素的碼元方向數(shù)相減(后一個碼元方向減去前一個碼元方向),并對結(jié)果做模8運算得到。差分鏈碼是原鏈碼各段之間方向變化后的一個新序列,相當(dāng)于把原鏈碼進行了旋轉(zhuǎn)歸一化操作。
圖8 鏈碼值與方向之間的對應(yīng)關(guān)系
針對離散放置的工件,差分鏈碼具有旋轉(zhuǎn)和平移不變性。差分鏈碼按照順時針或者逆時針兩兩相減得到。
圖9 鏈碼旋轉(zhuǎn)歸一化
Hough-鏈碼識別圖像時有三個基本流程:
1) 首先檢測Hough直線的條數(shù),得到直線的條數(shù)和各直線的直線方程。
2) 依據(jù)直線方程,計算直線間的交點,判斷交點是否在工件圖像內(nèi),若在圖像內(nèi),則該交點為多邊形的頂點,計算這兩條相交直線的夾角,若不在圖像內(nèi),則該交點不是頂點,無需計算夾角。
3) 將計算得到的夾角作為鏈碼的參數(shù),并將得到的鏈碼轉(zhuǎn)化為差分鏈碼形式,從而得到Hough-鏈碼。
4) 將目標工件的Hough-鏈碼與模板鏈碼進行匹配,從而實現(xiàn)工件識別。
在工件的分揀操作中,對工件識別后,需要對工件進行分揀放置,這就需要識別出幾何工件的中心。一般來說對物體的幾何中心計算,都是背景下有單一目標,不能進行多目標的幾何中心計算。本文提出了一種多目標物體的質(zhì)心計算快速方法。首先利用多目標分塊處理的結(jié)果,保存下外接矩形的四個頂點坐標:
然后針對每單一目標的外接矩形的所有角點求取x軸向坐標值的最小坐標值、最大坐標值;y軸向坐標的最小坐標值、最大坐標值。
最后分別對于不同目標進行求取質(zhì)心。求取工件的質(zhì)心過程采用圖像的中心矩來計算。
零階矩M00是區(qū)域密度的總和,可以理解為厚度為1的物體的質(zhì)量。所以一階矩M10和M01分別除以零階矩M00所得到的便是物體的質(zhì)量中心坐標。經(jīng)過試驗證明,該算法簡單有效,檢測效果如圖10所示。
圖10 工件質(zhì)心坐標
本實驗采用新松公司SRH6機器人工業(yè)機器人操作吸盤機械手進行抓取動作。拍攝運動物體的時候,拍攝目標與攝像系統(tǒng)之間存在相對運動極易形成拖影。對于尺寸測量的項目,拖影對測量精度會有嚴重影響,在這種情況下,就會要求拖影長度盡可能短,本實驗要求拖影不超過1/3像素。在硬件固定的情況下,直接影響拖影長度的參數(shù)是物體的運動速度和曝光時間。一般情況下由下式就可以保證:
物體運動速度Vp×曝光時間Ts<允許最長拖影s單位系統(tǒng)精度。
根據(jù)選取的相機曝光時間為22us到1000ms和確定的測量精度為0.9375mm/像素,可以得到物體的運動速度Vp,即傳送帶Vmax為42.613 m/s。結(jié)合實際情況,設(shè)定傳送帶速度0.3m/s。
根據(jù)工件的質(zhì)心坐標,機器人控制吸盤機械手能夠準確的時間在傳送帶上抓取物體,實驗驗證,抓取準確可靠。實驗效果如圖11所示。
圖11 實驗結(jié)果
本文詳細闡述了基于機器視覺的幾何工件的分揀問題中所使用的主要算法,采用目標分塊的方法減少后續(xù)識別算法的大范圍掃描所帶來的識別時間上的浪費。采用圖像幾何不變矩對工件圖像進行快速粗略檢測,大大提高了識別效率,最后運用Hough直線檢測和鏈碼相結(jié)合的算法來區(qū)分同類但是大小不同的幾何工件。運用多目標中心算法來描述目標位置信息,以引導(dǎo)機器人準確的完成分揀工作。同時搭建了硬件實驗平臺,實驗結(jié)果證明在多種幾何工件的目標中,視覺分揀算法有很好的魯棒性,為工業(yè)自動化生產(chǎn)提供了方法。
[1]李婷,柳寧.基于機器視覺的圓定位技術(shù)研究[J].計算機工程與應(yīng)用,2012,(9):153-156.
[2]潘武,張莉彥,徐俊成.基于機器視覺的工件的在線檢測[J].組合機床與自動化加工技術(shù),2012,7(7),75-78.
[3]Dagao Duan,Meng Xie,Qian Mo,et al.An improved Hough transform for line detection[C].Computer Application and System Modeling,2010:354-357.
[4]Barinova,O.,Lempitsky,V.,Kholi,P..On Detection of Multiple Object Instances Using Hough Transforms[J].Pattern Analysis and Machine Intelligence,2012,34(9):1773-1784.
[5]Chen Xing,Lu Ling,Gao Yang.A new concentric circle detection method based on Hough transforms[C].Computer Science & Education,2012:753-758.
[6]Sun Junding,Xu Heli.Contour-Shape Recognition and Retrieval Based on Chain Code[C].Computational Intelligence and Security,2009:349-352.
[7]陳天飛,馬孜,李鵬.一種基于非量測畸變校正的攝像機標定方法[J].控制與決策,2012,27(2),243-251.
[8]Zheng you Zhang.A Flexible New Technique for Camera Calibration[J].IEEE Transactions On Pattern Analysis And Machine Intelligence,2000,22(11):1330-1334.
[9]Elsayed E.Hemayed.A Survey of Camera Self—Calibration[J].Proceedings of the IEEE Conference on Advanced Video and Signal Based Surveillance,2003.
[10]Shriram K.Vasudevan, Dharmendra T,Sivaraman RKarthick S.Automotive Image Processing Technique Using Canny’s Edge Detector[J].International Journal of Engineering Science and Technology,2011,2(7):2632-2643.
[11]薛麗霞,李濤,王佐成.一種自適應(yīng)的 Canny 邊緣檢測算法[J].計 算 機 應(yīng) 用 研 究,2010,(9):3588-3590.
[12]段汝嬌,趙偉,等.一種基于改進Hough變換的直線快速檢測算法[J].儀器儀表學(xué)報,2010,(12):2774-2780.
[13]趙小川,羅慶生,陳少波.改進型圖像中的直線快速檢測[J].光學(xué)精密工程,2010,18(7):1654-1659.
[14]Chan T S,Yip R K K.Line Detection Algorithm[C]//Proceedings of the 13th International Conference on Pattern Recognition,Vienna,1996:126-130.