顏承壯, 皇攀凌, 周軍, 葉豐, 林樂彬
(山東大學(xué)機(jī)械工程學(xué)院, 濟(jì)南 250012)
在裝修作業(yè)過程中,為了避免線管、水管因裸露在外部而被后續(xù)的其他施工損壞,要對墻體進(jìn)行水電開槽。傳統(tǒng)的開槽作業(yè)主要由人工完成,但是人工開槽作業(yè)存在著一些問題,如開槽效率低,具有安全隱患,切割出來的墻槽深度、寬度大小不一,割槽時會產(chǎn)生大量的粉塵,導(dǎo)致影響操作人員健康和污染環(huán)境等問題。因此,急需開展機(jī)器人代替人工操作方面的研究。
隨著機(jī)器視覺的不斷發(fā)展,其應(yīng)用場景已經(jīng)從工業(yè)生產(chǎn)線擴(kuò)張到建筑行業(yè)的施工作業(yè)中[1]。劉付渝杰等[2]設(shè)計一種基于機(jī)器視覺的砌墻磚自動檢測系統(tǒng),能快速準(zhǔn)確地對砌墻磚完成外觀質(zhì)量和幾何尺寸的檢測。李伯犀等[3]以圖像為輸入,在大數(shù)據(jù)、云計算和人工智能等技術(shù)的支持下,完成施工圖紙的語義解析,實(shí)現(xiàn)了圖紙元素的自動識別。鄭龍海等[4]針對現(xiàn)有建筑垃圾分類不清,且自動化程度不高的情況,提出了一種基于機(jī)器視覺與稱重技術(shù)相結(jié)合的分類方法,能夠有效地將建筑垃圾中常見的木頭和磚石進(jìn)行自動分類并回收利用。成佳明等[5]基于線結(jié)構(gòu)光視覺傳感技術(shù)建立了一種適用于施工現(xiàn)場鋼結(jié)構(gòu)焊縫坡口識別方法,識別精度較高,為后續(xù)焊接機(jī)器人的應(yīng)用提供了關(guān)鍵技術(shù)支持。許文稼等[6]針對當(dāng)前建筑垃圾分選中存在的分選效率不高、自動化程度較低等問題,提出了一種基于機(jī)器視覺和深度學(xué)習(xí)的建筑垃圾智能分選系統(tǒng),實(shí)現(xiàn)建筑垃圾的智能化分選。劉同[7]基于機(jī)器視覺技術(shù)設(shè)計了建筑結(jié)構(gòu)施工中房屋裂縫智能檢測方法,具有較高的檢測精度。
綜上所述,機(jī)器視覺技術(shù)在建筑機(jī)器人領(lǐng)域有著廣泛的應(yīng)用前景,合理地運(yùn)用該技術(shù)可大大促進(jìn)墻體開槽作業(yè)的自動化和智能化。將機(jī)器視覺技術(shù)運(yùn)用到開槽作業(yè)中時面臨的一大挑戰(zhàn)是復(fù)雜惡劣的作業(yè)環(huán)境,光線條件差、粉塵污染等問題會較大影響圖像的成像效果。鑒于此,為了改善圖像在低照度區(qū)域和高照度區(qū)域的顏色呈現(xiàn)效果,解決在復(fù)雜多變的光照條件下特征提取失敗、錯誤提取等問題,提出一種改進(jìn)的多尺度Retinex用于圖像預(yù)處理。在將原始多尺度Retinex應(yīng)用到圖像亮度分量得到每個像素位置亮度的變化量的基礎(chǔ)上,使用衰減函數(shù)抑制高亮區(qū)域的亮度值增量,然后將亮度通道變化量轉(zhuǎn)化為RGB三通道的變化量?;诖?結(jié)合常用的圖像處理算法和點(diǎn)激光測距獲取外參的方法,最終實(shí)現(xiàn)墻體開槽機(jī)器人的目標(biāo)檢測與空間位置精確定位。通過試驗驗證機(jī)器人基于改進(jìn)的預(yù)處理算法的目標(biāo)檢測效果與定位精度。研究成果為機(jī)器視覺技術(shù)在智能建造行業(yè)中的應(yīng)用,以及智能墻體開槽機(jī)器人的開發(fā)奠定試驗基礎(chǔ)。
建筑墻體管線開槽打孔的目標(biāo)檢測是將工人用粉筆在墻上做好的標(biāo)記檢測出來,其中開槽標(biāo)記為直線,打孔標(biāo)記為圓。目標(biāo)檢測流程如圖1所示。
圖1 目標(biāo)檢測流程Fig.1 Target detection process
步驟1預(yù)處理。首先,使用改進(jìn)的多尺度Retinex對原始圖像進(jìn)行預(yù)處理,包括對原圖中的亮度分量使用原始多尺度Retinex(multi-scale Retinex,MSR),并抑制高亮區(qū)域的MSR結(jié)果,再將MSR結(jié)果分別作用在原圖的RGB(red-green-blue)通道。
步驟2轉(zhuǎn)HSV(hue-saturation-value)。將預(yù)處理后的圖像轉(zhuǎn)換到HSV色彩空間,使用預(yù)先調(diào)試好的閾值提取顏色特征。
步驟3形態(tài)學(xué)處理。使用形態(tài)學(xué)方法進(jìn)行特征膨脹是特征更明顯。
步驟4獲取像素坐標(biāo)。使用霍夫圓檢測確定圓孔槽的像素坐標(biāo),使用輪廓檢測、最小矩形框等方法獲取線槽的兩端點(diǎn)像素坐標(biāo)。
步驟5坐標(biāo)轉(zhuǎn)換。預(yù)先標(biāo)定相機(jī)內(nèi)參,使用點(diǎn)激光來測量攝像頭到墻面的外參,將目標(biāo)的像素坐標(biāo)轉(zhuǎn)換到機(jī)器人坐標(biāo)系。
人眼能夠在不同環(huán)境下識別出同一種顏色,但顯示設(shè)備做不到,低光照度[8]和陰影[9]條件都會使圖像的色彩發(fā)生變化?;陬伾愠P缘腞etinex理論認(rèn)為物體的顏色是其自身對光的反射特性決定的[10],并不會隨光照條件而改變。通過 Retinex 算法可以實(shí)現(xiàn)對圖像自身光照估計,并消除光照不均勻[11]。一幅圖像Ic(x,y)可表示為照度分量和反射分量的乘積[12],即
Ic(x,y)=Rc(x,y)Lc(x,y)
(1)
式(1)中:Rc(x,y)為反射分量;Lc(x,y)為照度分量。
根據(jù)Retinex理論提出的多尺度Retinex增強(qiáng)算法將原圖像Ic(x,y)進(jìn)行高斯模糊作為Lc(x,y)的估計值,采用多尺度高斯卷積模板對Ic(x,y)進(jìn)行模糊,并進(jìn)行加權(quán)平均,可表示為[13]
Rc(x,y)=lgIc(x,y)-lgFk?Ic(x,y)
(2)
(3)
(4)
原始的MSR算法應(yīng)用在圖像中的RGB分量,會出現(xiàn)圖像灰化的現(xiàn)象[15],將MSR算法用于亮度分量I(x,y)得到增強(qiáng)后的IMSR(x,y),然后得到每個像素點(diǎn)處的處理后的值與原始亮度的比值k(x,y),可表示為
(5)
為防止高亮區(qū)域的顏色失真,使用式(6)中構(gòu)造的衰減系數(shù)Fδ(x,y)對高亮區(qū)域亮度的變化量進(jìn)行抑制,見式(7),最后用比值與原圖RGB通道相乘,見式(8)。
(6)
k′(x,y)=Fδ(x,y)[k(x,y)-1]+1
(7)
(8)
式中:Fδ(x,y)為衰減系數(shù);I(x,y) 為亮度分量;k′(x,y)為k(x,y)衰減后的值;R(x,y)、G(x,y)、B(x,y)分別為原圖中每個像素位置3個通道的值;R′(x,y)、G′(x,y)、B′(x,y)分別為處理后每個像素位置3個通道的值。
HSV三維空間坐標(biāo)系中各坐標(biāo)之間均有獨(dú)立的色彩的信息,能較好地反映人對顏色的感知和鑒別能力,非常適合對色彩的圖像進(jìn)行顏色比較[16]。將預(yù)處理圖像從RGB色彩空間轉(zhuǎn)換到HSV色彩空間,再在HSV色彩圖像中通過設(shè)置閾值提取顏色特征,得到表示顏色特征的二值圖像。
圖像經(jīng)過閾值分割后得到特征的二值圖像,在二值圖像中可能存在一些點(diǎn)狀的噪聲,也有的特征因為墻體存在裂縫而斷開。借助形態(tài)學(xué)的腐蝕運(yùn)算可以幫助消除白色點(diǎn)狀噪聲,利用膨脹算法補(bǔ)償因腐蝕而損失的特征區(qū)域。采用合適的形態(tài)學(xué)處理策略可以在不明顯改變特征面積的情況下減少負(fù)面影響[17]。
處理好二值特征圖后,進(jìn)行打孔與開槽的目標(biāo)檢測。檢測過程分為圓檢測與線檢測。首先對圓進(jìn)行檢測,即檢測打孔目標(biāo)。采用的檢測方法為:對提取出的顏色特征圖像進(jìn)行霍夫圓檢測[17]。設(shè)定標(biāo)記圓的半徑大小范圍,剔除重疊的圓。然后對開槽標(biāo)記(直線)進(jìn)行檢測。首先提取顏色特征的輪廓,對輪廓創(chuàng)建最小外接矩形。在實(shí)驗中輪廓長度小于200像素的輪廓被過濾,不創(chuàng)建最小外接矩形。接下來判斷得到的最小外接矩形是否滿足直線特征。先對外接矩形的長寬進(jìn)行比較,得到長邊與短邊,對長邊與短邊的長度進(jìn)行限制,并限制舉行的長寬比不得小于8,然后將滿足上訴條件的矩形擬合為一條線段,得到線段的兩端坐標(biāo)值。
得到開槽目標(biāo)在圖像中的位置后,需要將其轉(zhuǎn)換為機(jī)器人坐標(biāo)系中的空間位置。轉(zhuǎn)換過程分為兩步:將像素坐標(biāo)轉(zhuǎn)換為相機(jī)坐標(biāo);相機(jī)坐標(biāo)轉(zhuǎn)換為機(jī)器人坐標(biāo)。
應(yīng)用相機(jī)標(biāo)定方法得到相機(jī)的內(nèi)參矩陣K,利用單點(diǎn)激光測距儀獲取距離信息,再采用坐標(biāo)映射的方法實(shí)現(xiàn)彩色圖像與深度圖像的匹配,進(jìn)而得到目標(biāo)點(diǎn)的空間三維坐標(biāo)。
使用的張正友平面模板算法[18]是目前使用最廣的一種標(biāo)定算法[19]。算法借助一個標(biāo)準(zhǔn)的棋盤格,首先使用相機(jī)從各個角度拍攝這幅棋盤格對象,然后提取圖像中棋盤格的角點(diǎn),最后通過圖像中角點(diǎn)的坐標(biāo)以及世界坐標(biāo)系下角點(diǎn)坐標(biāo)的映射關(guān)系,從而計算出相機(jī)的內(nèi)參。平面模板算法默認(rèn)在Z=0的平面,算法中的相機(jī)投影模型可表示為
(9)
得到相機(jī)參數(shù)后,由式(10)可以計算出目標(biāo)在相機(jī)坐標(biāo)系中的坐標(biāo)值,計算公式為
Pcamera(3×1)=K(3×3)Ppixel(3×1)depth
(10)
式(10)中:K為相機(jī)內(nèi)參矩陣;Ppixel為像素坐標(biāo)系中的齊次坐標(biāo);depth為檢測目標(biāo)點(diǎn)在相機(jī)坐標(biāo)系中的深度。
圖2為機(jī)器人各關(guān)鍵部件位置關(guān)系示意圖,圖3、圖4分別為機(jī)器人俯視圖和左視圖。世界坐標(biāo)系設(shè)定為位于相機(jī)視野中心的墻面上,機(jī)器人在工作過程中相機(jī)鏡頭正對著墻面。如圖3所示,理想情況下機(jī)器人平行于墻面(θ=0°),目標(biāo)點(diǎn)在相機(jī)坐標(biāo)系中的深度depth為相機(jī)光心到墻面的距離t3,然而,由于機(jī)器人在行進(jìn)過程中與墻面的平行存在誤差,導(dǎo)致depth不等于相機(jī)光心到墻面的距離,這就導(dǎo)致實(shí)際坐標(biāo)點(diǎn)與計算出來的坐標(biāo)點(diǎn)存在誤差。
Ow-Xw-Yw-Zw為世界坐標(biāo)系;Oc-Xc-Yc-Zc為相機(jī)坐標(biāo)系;Or-Xr-Yr-Zr為機(jī)器人坐標(biāo)系圖2 機(jī)器人各關(guān)鍵部件位置關(guān)系示意圖Fig.2 Schematic diagram of position relationship of key components of robot
Θ為機(jī)器人與墻面間的角度;θ為機(jī)器人與墻面之間的角度;d1、d2分別為左右點(diǎn)激光測距值;lx、l′x分別為p、p′相對于相機(jī)在Xc方向的偏移;w1、w3分別為相機(jī)與左右點(diǎn)激光間的橫向距離;w2為相機(jī)與機(jī)械臂間的橫向距離圖3 機(jī)器人俯視圖Fig.3 Top view of robot
t3為相機(jī)光心到墻面距離;h為相機(jī)安裝高度;d3為點(diǎn)激光測距儀與相機(jī)在Zc方向的偏差;ly、l′y分別為P、P′相對于相機(jī)在Yc方向的偏移圖4 機(jī)器人左視圖Fig.4 Robot left view
H_min、H_max分別為圖像色度的最小、最大閾值;s_min、s_max分別為圖像飽和度的最小、最大閾值;v_min、v_max分別圖像亮度的最小、最大閾值;rvec為相機(jī)調(diào)試旋轉(zhuǎn)向量;tvec為相機(jī)調(diào)試平移向量圖5 模擬實(shí)驗平臺Fig.5 Simulation experiment platform
(11)
(12)
式(11)中:d1、d2分別為左右激光測距得到的距離值;w1為兩激光測距儀間的距離;θ為機(jī)器人與墻面間的角度,即實(shí)際墻面與理想墻面之間的角度差;d3為激光測距儀在相機(jī)坐標(biāo)系中的深度;w3為左側(cè)激光測距儀相對于相機(jī)在Xc方向的偏移。
兩直線聯(lián)立解得
(13)
(14)
由式(13)、式(14)可得目標(biāo)點(diǎn)的真實(shí)depth,其中,lx為目標(biāo)點(diǎn)p相對于相機(jī)在Xc方向的偏移,l′x為目標(biāo)點(diǎn)p′相對于相機(jī)在Xc方向的偏移。
再次將depth代入式(10)即可得到檢測目標(biāo)在相機(jī)坐標(biāo)系中的實(shí)際坐標(biāo)點(diǎn)p′。
為使機(jī)器人能準(zhǔn)確找到目標(biāo)點(diǎn)的位置,需要將相機(jī)坐標(biāo)系下的坐標(biāo)轉(zhuǎn)換到機(jī)器人坐標(biāo)系中。如圖2所示,機(jī)器人坐標(biāo)系固定在機(jī)械臂的始端,相機(jī)固定在支架上,下面結(jié)合實(shí)際應(yīng)用場景進(jìn)行手眼標(biāo)定。
機(jī)器人實(shí)際作業(yè)時,將檢測到的圓心坐標(biāo)作為打孔的位置,將直線兩端點(diǎn)作為開槽的位置。為保證標(biāo)定時獲取坐標(biāo)的準(zhǔn)確性,使用打印的標(biāo)準(zhǔn)圓進(jìn)行標(biāo)定。標(biāo)定步驟如下。
步驟1將機(jī)器人放置在工作狀態(tài)下的位置,盡量與墻面平行。將標(biāo)記貼在墻面上一個位置,使用測試軟件獲取到相機(jī)坐標(biāo)系下的位置并記錄。
步驟2調(diào)整機(jī)械臂末端執(zhí)行機(jī)構(gòu)的位置,使之對準(zhǔn)墻面上的標(biāo)記,獲取此時末端執(zhí)行機(jī)構(gòu)的位置。
步驟3重復(fù)步驟1、步驟2多次。
步驟4由圖2中的各坐標(biāo)系之間的關(guān)系,設(shè)相機(jī)坐標(biāo)系與機(jī)器人坐標(biāo)系間的轉(zhuǎn)換關(guān)系見式(15)。
(15)
式(15)中:(xr,yr,zr)為機(jī)器人坐標(biāo)系中的坐標(biāo)值;(xc,yc,zc)為相機(jī)坐標(biāo)系中的坐標(biāo)值;a、b、c為待定系數(shù),取多組對應(yīng)點(diǎn)對求出待定系數(shù)的平均值。
如圖5所示,為了測試本文目標(biāo)檢測算法的有效性及定位精度,搭建了模擬實(shí)驗平臺。采用的相機(jī)分辨率為720×960,將相機(jī)置于距離墻面約1.5 m處粉筆標(biāo)記進(jìn)行拍攝。
如圖6所示,第一行為測試圖像在正常光線、光線較強(qiáng)和較暗環(huán)境下的原始圖像,第二行對原始圖像直接轉(zhuǎn)換到HSV空間提取的顏色特征。圖7第一行為使用直方圖均值化對3種不同光照條件下的圖像進(jìn)行處理,第二行為提取顏色特征的結(jié)果。圖8第一行為使用原始MSR算法進(jìn)行預(yù)處理,第二行為提取顏色特征的結(jié)果。圖9為使用改進(jìn)的MSR算法進(jìn)行預(yù)處理并提取顏色特征得到的結(jié)果。圖10第一行為對本文算法提取的特征使用形態(tài)學(xué)處理,第二行為檢測結(jié)果在圖像中的位置。
圓表示檢測到圓形標(biāo)記;直線表示檢測到直線標(biāo)記;圖像像素:720×960圖6 不同光線條件下原始圖像中提取顏色特征Fig.6 Extract color features from original image between different light bars
圓表示檢測到圓形標(biāo)記;直線表示檢測到直線標(biāo)記;圖像像素:720×960圖7 使用HE預(yù)處理并提取顏色特征Fig.7 Extract color features using HE pretreatment
圓表示檢測到圓形標(biāo)記;直線表示檢測到直線標(biāo)記;圖像像素:720×960圖8 使用MSR預(yù)處理并提取顏色特征Fig.8 Extract color features using MSR pretreatment
圓表示檢測到圓形標(biāo)記;直線表示檢測到直線標(biāo)記;圖像像素:720×960圖9 使用改進(jìn)的MSR預(yù)處理并提取顏色特征Fig.9 Preprocessing with improved MSR, Extract color features
圓表示檢測到圓形標(biāo)記;直線表示檢測到直線標(biāo)記;圖像像素:720×960圖10 對圖9的顏色特征進(jìn)行形態(tài)學(xué)處理在圖像中定位Fig.10 Morphological processing of color features in Fig.9 for image localization
從圖7~圖9可以看出,使用HE處理得到的圖像一致性較高,但出現(xiàn)了嚴(yán)重的色偏,使用MSR處理的圖像在光線較暗時出現(xiàn)紅色色偏,另外兩張出現(xiàn)灰化現(xiàn)象,使用改進(jìn)的MSR算法得到了較一致的圖像且抑制了色偏現(xiàn)象。在提取顏色特征階段,設(shè)置的HSV三通道閾值都為正常光照條件下的圖像經(jīng)不同算法預(yù)處理后可以檢測到目標(biāo)的閾值。對比不同算法預(yù)處理后的圖像提取顏色特征的效果,在不使用預(yù)處理算法時,只能在單一的光照條件下提取到完整的目標(biāo)特征,在使用3種預(yù)處理算法后均能在3種不同的光照條件下提取到完整的顏色特征,其中在經(jīng)HE和改進(jìn)的MSR預(yù)處理過的圖像中提取特征的效果明顯優(yōu)于使用原MSR的特征提取效果??紤]到HE處理的圖像存在嚴(yán)重色偏,所以改進(jìn)的MSR算法的使用效果優(yōu)于HE。
得到目標(biāo)在機(jī)器人坐標(biāo)系中的坐標(biāo)值p1(x1,y1,z1)后,控制機(jī)器人的機(jī)械臂末端執(zhí)行機(jī)構(gòu)的位置對準(zhǔn)標(biāo)記目標(biāo),得到末端執(zhí)行機(jī)構(gòu)的坐標(biāo)值作為標(biāo)記的實(shí)際坐標(biāo)p2(x2,y2,z2)。將兩坐標(biāo)值之間的距離ε作為定位誤差。多次檢測不同位置的開槽目標(biāo)并通過機(jī)械臂獲取實(shí)際目標(biāo)坐標(biāo),得到的多組誤差如表1所示,其表達(dá)式為
(16)
表1 計算得到的坐標(biāo)值和實(shí)際坐標(biāo)值Table 1 Calculated coordinate value and actual coordinate value
試驗表明,本文目標(biāo)檢測方法中通過改進(jìn)的MSR進(jìn)行預(yù)處理能夠?qū)崿F(xiàn)圖像不同光照條件下的色彩恒常性,并抑制原始MSR算法中的色偏和灰化現(xiàn)象,保證了后續(xù)特征提取的穩(wěn)定性。通過對提取的顏色特征進(jìn)行形狀判斷和定位,驗證了本文目標(biāo)檢測方法的有效性。然后將方法檢測到的機(jī)器人坐標(biāo)系中的坐標(biāo)與實(shí)際目標(biāo)的坐標(biāo)進(jìn)行對比,得到兩種坐標(biāo)值的誤差在4 mm以內(nèi),該精度已滿足建筑墻體開槽的作業(yè)要求。
針對現(xiàn)有開槽目標(biāo)檢測算法在復(fù)雜多變的光照條件下特征提取失敗、錯誤提取的問題,提出了一種改進(jìn)的多尺度Retinex算法。對于機(jī)器人不平行于墻面時導(dǎo)致的坐標(biāo)點(diǎn)誤差,提出了點(diǎn)激光測距技術(shù)獲取相機(jī)外參的方法。將機(jī)器視覺技術(shù)運(yùn)用到開槽作業(yè)中,彌補(bǔ)了開槽目標(biāo)檢測與定位算法的空缺。得到如下結(jié)論。
(1)提出的圖像預(yù)處理算法有效改善了在復(fù)雜照明環(huán)境下圖像顏色呈現(xiàn)效果,實(shí)現(xiàn)了圖像在不同亮度下的色彩恒常性,為后續(xù)提取準(zhǔn)確的特征并進(jìn)行目標(biāo)檢測奠定了基礎(chǔ)。
(2)提出的點(diǎn)激光測距技術(shù)獲取相機(jī)外參的方法有效減少了圖像坐標(biāo)點(diǎn)轉(zhuǎn)換為相機(jī)坐標(biāo)點(diǎn)的誤差,實(shí)現(xiàn)了開槽目標(biāo)在三維空間中的精準(zhǔn)定位。
(3)試驗結(jié)果表明,使用基于所提預(yù)處理算法的墻體開槽機(jī)器人目標(biāo)檢測與定位算法使得機(jī)器人在復(fù)雜多變的光照條件下依然能夠?qū)崿F(xiàn)準(zhǔn)確的目標(biāo)檢測與精準(zhǔn)定位,坐標(biāo)定位誤差在4 mm以內(nèi),該精度已滿足建筑墻體開槽的作業(yè)要求。