武文杰,石紅瑞
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海201620)
機(jī)器人作為應(yīng)用范圍廣、技術(shù)附加值高的數(shù)字控制裝備,在現(xiàn)代先進(jìn)生產(chǎn)制造業(yè)中發(fā)揮的作用日趨重要,搬運(yùn)機(jī)器人作為最早應(yīng)用于生產(chǎn)的兩種工業(yè)機(jī)器人之一,在工業(yè)生產(chǎn)自動(dòng)化中一直扮演著非常重要的角色。目前生產(chǎn)線上應(yīng)用的搬運(yùn)工業(yè)機(jī)器人大多是通過示教再現(xiàn)或預(yù)編程來實(shí)現(xiàn)機(jī)器人的操作,物體的初始位姿和終止位姿都是嚴(yán)格限定的,機(jī)器人只是完成點(diǎn)到點(diǎn)的任務(wù)動(dòng)作,對(duì)于外部參數(shù)變化的物體搬運(yùn)操作則顯得無能為力[1]。在這種情況下,為保證機(jī)器人順利高效地完成工作任務(wù)和減少生產(chǎn)準(zhǔn)備時(shí)間,引入機(jī)器視覺技術(shù)來實(shí)現(xiàn)對(duì)工作目標(biāo)物體的識(shí)別和定位就顯得尤為重要[2]。
在現(xiàn)代自動(dòng)化生產(chǎn)過程中,計(jì)算機(jī)視覺技術(shù)正成為一種保證產(chǎn)品質(zhì)量和提高生產(chǎn)效率的關(guān)鍵技術(shù)手段,如實(shí)現(xiàn)智能機(jī)器人的控制、對(duì)機(jī)械零件的自動(dòng)加工和檢測及柔性生產(chǎn)線的自動(dòng)監(jiān)控等[3]。本文針對(duì)生產(chǎn)線上的工業(yè)機(jī)器人控制系統(tǒng)進(jìn)行開發(fā)設(shè)計(jì),將計(jì)算機(jī)視覺技術(shù)應(yīng)用于搬運(yùn)工業(yè)機(jī)器人的工作領(lǐng)域,利用機(jī)器視覺技術(shù)獲取工件及其周圍環(huán)境的信息,從中識(shí)別出目標(biāo)物體,并做出決策來引導(dǎo)工業(yè)機(jī)器人完成對(duì)目標(biāo)物體的抓取、放置等操作。該實(shí)驗(yàn)使用的設(shè)備為Tripod機(jī)器人,即通常所說的Delta機(jī)器人,在包裝機(jī)械等拾取動(dòng)作方面有很大應(yīng)用。該機(jī)器人的整體機(jī)械部分和控制系統(tǒng)、運(yùn)動(dòng)控制系統(tǒng)及軟件平臺(tái)均由B&R提供,如圖1所示。
采集圖像時(shí),需要安裝攝像頭對(duì)工作平臺(tái)進(jìn)行拍照。本文所研究的”Pick&Place”平臺(tái)主要由三部分組成:內(nèi)圓、外環(huán)和三種幾何體(三角、圓形、星形各3個(gè))。選取合適的角度對(duì)當(dāng)前操作平臺(tái)的擺放狀態(tài)進(jìn)行拍攝,獲取工作平臺(tái)的側(cè)拍圖。
側(cè)拍得到的圖片由于圖像畸變,因而需要變換操作,方便后續(xù)處理,在此,筆者采用透視變換技術(shù)[4]。透視變換是將圖片投影到一個(gè)新的視平面,也稱作投影映射。通過在平臺(tái)合適位置標(biāo)定正方形的4個(gè)點(diǎn),構(gòu)造相應(yīng)的變換矩陣,實(shí)現(xiàn)四邊形到正方形的變換,進(jìn)而完成畸變圖形的矯正[5],原理如圖2所示,實(shí)驗(yàn)結(jié)果如圖3所示。
圖2 投影變換原理示意
圖3 圖像采集
若要提取目標(biāo)圖像輪廓,就必須將采集到的彩色圖片進(jìn)行預(yù)處理,通過灰度化、高斯濾波、二值化,去除圖像中的噪聲、光照影響,處理結(jié)果如圖4所示。灰度圖像的描述同樣反映了圖像整體和局部的色度及亮度等級(jí)的分布和特征。高斯濾波是一種線性平滑濾波,適用于消除高斯噪聲,廣泛應(yīng)用于圖像處理的減噪過程,高斯濾波在濾去噪聲的同時(shí)能更好地保護(hù)圖像邊緣信息[6]。對(duì)圖像進(jìn)行二值化處理,是為了在盡量保留原圖特征的前提下去掉冗余信息。一方面可以減少存儲(chǔ)空間、提高處理速度;另一方面可以更容易獲得平臺(tái)圖像的位置和大小等幾何特征信息。
邊緣的一個(gè)特性是在目標(biāo)圖像輪廓交界處像素變化較為平滑,而在垂直于邊緣點(diǎn)切線的方向上像素變化梯度較大。Canny邊緣檢測先求x和y方向上的一階導(dǎo)數(shù),進(jìn)而組合成4個(gè)方向的導(dǎo)數(shù),由局部最大值確定邊緣候選點(diǎn),再通過閾值法得到物體邊緣的最優(yōu)檢測,所得的邊緣較為平滑且定位精度高[7]。
圖4 預(yù)處理及邊緣輪廓的提取
Hough圓檢測的核心思想:垂直于圓邊界點(diǎn)的垂線最終會(huì)通過圓心。因此,如果沿圓的邊緣畫出每個(gè)邊界點(diǎn)的垂線,就會(huì)在圓心上得到一個(gè)“亮點(diǎn)”,即眾多垂線重疊最嚴(yán)重的地方。在坐標(biāo)平面上確定一個(gè)圓需要3個(gè)參數(shù)——圓的半徑、圓心的x軸坐標(biāo)和y軸坐標(biāo),因而圓的Hough變換是一個(gè)以圓的半徑和圓心坐標(biāo)為參數(shù)的三維空間。
本文采用快速Hough圓檢測方法。首先,采用基于(a,b)空間累加的圓心檢測算法,完成圓心的定位;然后,采用基于r空間累加的半徑計(jì)算方法,計(jì)算圓的半徑[8]。
利用OpenCV中Hough變換檢測圓的函數(shù)cvHoughCircles,采用快速Hough圓檢測以及設(shè)置函數(shù)中圓的半徑參數(shù),就可以對(duì)圖像中的小圓進(jìn)行檢測。
利用Hough函數(shù)檢測圓形幾何體的結(jié)果如圖5所示??梢钥吹剑琀ough變換檢測得到的圓心并不準(zhǔn)確,存在一定的偏差。
圖5 Hough變換檢測圓的結(jié)果
根據(jù)粗定位得到的6個(gè)圓心坐標(biāo),依次從原圖中截取ROI,ROI是一個(gè)長寬為檢測圓直徑2倍的正方形,如圖6所示。利用上一節(jié)所提到的方法進(jìn)行精定位,最終可以得到精確定位后的平臺(tái)中心點(diǎn)坐標(biāo)。
圖6 根據(jù)粗定位坐標(biāo)點(diǎn)提取的ROI區(qū)域
圖6中,平臺(tái)內(nèi)環(huán)的3個(gè)圓孔是外環(huán)圓形幾何體放置的地方。Hough變換檢測圓,并不能區(qū)分是外環(huán)圓形幾何體還是內(nèi)圓圓形的孔位。所以,需要通過計(jì)算圓心與平臺(tái)中心點(diǎn)的距離將兩者區(qū)分開來。得到距離數(shù)組后,用函數(shù)sort()對(duì)距離進(jìn)行從小到大排序,數(shù)組中的前3個(gè)即是內(nèi)環(huán)的圓形孔位,后3個(gè)即是外環(huán)的圓形幾何體。
得到內(nèi)環(huán)圓形孔位和外環(huán)圓形幾何體的中心點(diǎn)坐標(biāo)后,由于其他孔位也是均勻分布在圓形平臺(tái)上,可以通過坐標(biāo)旋轉(zhuǎn)的方法,初步得到三角形和星形孔位及幾何體的中心點(diǎn)坐標(biāo)。
ROI范圍的確定:以粗定位的中心坐標(biāo)為原點(diǎn),向上下左右四個(gè)方向延伸0.6倍的外接圓直徑距離。若觸碰到圖像邊界,則選取圖像邊界為ROI的邊界[9]。
對(duì)中心點(diǎn)的像素值RGB進(jìn)行采樣,以該點(diǎn)的顏色向量作為前景顏色的參考標(biāo)準(zhǔn)。設(shè)定分割的閾值為50,采用距離分類器,距離采用歐式距離。對(duì)距離小于50的像素點(diǎn)認(rèn)為是前景,設(shè)定為白色;反之則設(shè)定為黑色。
目標(biāo)物邊緣的提取采用Canny算子,進(jìn)行邊緣檢測,結(jié)果如圖7所示。
因?yàn)閹缀误w都是中心對(duì)稱的,所以可以采用求物體邊緣像素點(diǎn)平均的方法,來對(duì)幾何體進(jìn)行精確定位。
圖7 根據(jù)粗定位坐標(biāo)點(diǎn)提取的ROI區(qū)域邊緣檢測結(jié)果
采用OpenCV中cvHoughLines2函數(shù)來檢測線段[10]。設(shè)置param1為外接圓的半徑(R=檢測圓直徑/2.0),即最短線段的長度。根據(jù)這個(gè)閾值,可以用來區(qū)分三角形和五角星。如圖8所示,三角形的邊長大于R,星形的邊長小于R。
圖8 三角形和星形的外接圓示意
筆者認(rèn)為檢測到兩條及以上長度大于R的線段,則認(rèn)為該幾何體為三角形,否則認(rèn)為它為星形。根據(jù)該判斷準(zhǔn)則,可以將兩者進(jìn)行區(qū)分。
提取幾何體的精定位中心點(diǎn)相應(yīng)的RGB分量值,判斷每個(gè)點(diǎn)三分量數(shù)值,運(yùn)用OpenCV中cvMat函數(shù)確定其顏色。RGB三分量值構(gòu)成三維數(shù)組,橙色R分量值較高,藍(lán)色B分量值較高,黃色R和G分量值較高,由此便實(shí)現(xiàn)了幾何體顏色的劃分。
三種形狀的幾何體中,圓形是不需要調(diào)整角度的。對(duì)于三角形和星形,選取其最高點(diǎn),過最高點(diǎn)和中心點(diǎn)做一條線段,該線段與坐標(biāo)系中y軸的夾角即為旋轉(zhuǎn)角度值。如圖9所示,夾角t即為所需旋轉(zhuǎn)的角度值。
根據(jù)上述原理,首先確定各幾何體的ROI范圍,然后進(jìn)行圖像分割和邊緣檢測,得出圖形輪廓后計(jì)算旋轉(zhuǎn)角度,若順時(shí)針旋轉(zhuǎn)為正值,逆時(shí)針旋轉(zhuǎn)則為負(fù)值。
圖9 三角形和星形的旋轉(zhuǎn)角度選取原理
通過實(shí)驗(yàn)研究表明,筆者針對(duì)Tripod機(jī)器人設(shè)計(jì)的圖像處理技術(shù)能夠有效地實(shí)現(xiàn)物體形狀與顏色的識(shí)別,位置與角度的定位,這不但提高了產(chǎn)品的質(zhì)量和生產(chǎn)效率,同時(shí)對(duì)增強(qiáng)工業(yè)機(jī)器人對(duì)環(huán)境的適應(yīng)能力以及拓展機(jī)器人應(yīng)用范圍都具有十分重要的意義。
[1]畢勝.國內(nèi)外工業(yè)機(jī)器人的發(fā)展現(xiàn)狀[J].機(jī)械工程師,2008(07):5-7.
[2]謝中壵.未來兩年全球工業(yè)機(jī)器人產(chǎn)業(yè)發(fā)展預(yù)測研究[C]//先進(jìn)制造與數(shù)據(jù)共享國際研討會(huì)論文集.北京,2007.
[3]黃文清,汪亞明,周志宇.計(jì)算機(jī)視覺技術(shù)在工業(yè)領(lǐng)域中的應(yīng)用[J].浙江工程學(xué)院學(xué)報(bào),2002,19(02):92-96.
[4]CHAUMETTE F,MALIS E.2D1/2Visual Servoing:A Possible Solution to Improve Image-based and Position-based Visual Servoings [C]//IEEE International Conference on Robotics and Automation.San Francisco,2000:630-635.
[5]HARTLEY R,ZISSERMAN A.Multiple View Geometry in Computer Vision [M].Cambridge: Cambridge University Press,2004.
[6]李惠芬,蔣向前,李柱.高斯濾波穩(wěn)健性能的研究與改進(jìn)[J].儀器儀表學(xué)報(bào),2004,25(05):633-637.
[7]陳若珠,薛彪.基于Matlab的改進(jìn)Canny算子的圖像邊緣檢測研究[J].工業(yè)儀表與自動(dòng)化裝置,2014(04):113-116.
[8]BRADSKI G,KAEHLER A.學(xué)習(xí)OpenCV [M].于仕琪,劉瑞禎,譯.北京:清華大學(xué)出版社,2009.
[9]張錚,王艷萍,薛桂香.數(shù)字圖像處理與機(jī)器視覺[M].北京:人民郵電出版社,2010.
[10]LAGANIERE R.OpenCV2計(jì)算機(jī)視覺編程手冊[M].張靜,譯.北京:科學(xué)出版社,2013.