胡宇鵬,蔣年德
(東華理工大學(xué)信息工程學(xué)院,江西南昌 330013)
隨著我國(guó)制造強(qiáng)國(guó)戰(zhàn)略逐步深化,人工智能制造[1]成為“中國(guó)制造2025”明確主攻方向,越來(lái)越多的工廠開(kāi)始使用工業(yè)機(jī)器人和機(jī)器視覺(jué)實(shí)現(xiàn)自動(dòng)化生產(chǎn),使機(jī)器人能夠適應(yīng)更復(fù)雜的生產(chǎn)環(huán)境,提高生產(chǎn)效率。作為實(shí)現(xiàn)人工智能制造和智慧城市基礎(chǔ)[2]的手眼標(biāo)定,是機(jī)器人和機(jī)器視覺(jué)進(jìn)行協(xié)調(diào)工作的必要內(nèi)容,通過(guò)重構(gòu)三維場(chǎng)景獲取相機(jī)坐標(biāo)系和機(jī)器人坐標(biāo)系之間的位姿關(guān)系,因此提升其精確度、標(biāo)定范圍和穩(wěn)定性非常重要。
目前,標(biāo)定的主要方法有主動(dòng)視覺(jué)標(biāo)定法、相機(jī)自標(biāo)定法和傳統(tǒng)相機(jī)標(biāo)定法[3]。主動(dòng)視覺(jué)標(biāo)定法優(yōu)點(diǎn)在于不用借助標(biāo)定物、穩(wěn)定性強(qiáng)及算法簡(jiǎn)單,但成本高、設(shè)備昂貴;相機(jī)自標(biāo)定法[4]靈活性強(qiáng)但精度低、魯棒性差;傳統(tǒng)相機(jī)標(biāo)定法需要標(biāo)定物輔助標(biāo)定,但是算法足夠成熟,魯棒性強(qiáng)且操作簡(jiǎn)單[5-9]。對(duì)于精度要求高和成本需要控制的場(chǎng)景,傳統(tǒng)相機(jī)標(biāo)定法能夠滿足要求。其中常用的方法有直線標(biāo)定法、Tsai 兩步法和張氏標(biāo)定法,這也是當(dāng)前比較常用的幾種方法。
文獻(xiàn)[10]提出的DLT(Direct Linear Transformation,直線線性變換)方法是根據(jù)小孔成像提出的一種理想標(biāo)定方法,因?yàn)闆](méi)有考慮到相機(jī)鏡頭畸變的影響,標(biāo)定結(jié)果精確度低。文獻(xiàn)[11-12]采用兩步法先線性求得相機(jī)參數(shù),再考慮畸變因素得到初始的參數(shù)值,通過(guò)非線性?xún)?yōu)化方法得到最終的相機(jī)參數(shù),Tsai 兩步法速度較快,但僅考慮徑向畸變,精確度較低。文獻(xiàn)[13]提出了平面棋盤(pán)格靶標(biāo)標(biāo)定方法,該方法更加靈活,通過(guò)單應(yīng)矩陣計(jì)算出相機(jī)內(nèi)外參數(shù)。張氏標(biāo)定法不用較多的測(cè)試設(shè)備,操作簡(jiǎn)單、精確度較高。
九點(diǎn)標(biāo)定法是目前常用的手眼標(biāo)定方法,基于張氏標(biāo)定法進(jìn)行標(biāo)定,通過(guò)檢測(cè)標(biāo)定圓的圓心像素坐標(biāo)和世界坐標(biāo)計(jì)算變換矩陣。由于九點(diǎn)標(biāo)定法無(wú)法適應(yīng)相機(jī)鏡頭的非線性畸變,導(dǎo)致標(biāo)定結(jié)果精確度低,工業(yè)機(jī)器人無(wú)法實(shí)現(xiàn)高精度作業(yè),所以本文對(duì)該方法存在的不足進(jìn)行改進(jìn)和提升[14]。
理想情況下,相機(jī)小孔成像不會(huì)產(chǎn)生畸變,像素坐標(biāo)系與機(jī)器人世界坐標(biāo)系之間呈線性變換關(guān)系。但受到鏡頭畸變和機(jī)器誤差影響,像素坐標(biāo)系與世界坐標(biāo)系之間存在非線性變換,并且鏡頭下每個(gè)區(qū)域的畸變程度不同,距離鏡頭中心越遠(yuǎn)畸變程度越大。所以讓變換矩陣[15]適應(yīng)不同區(qū)域的畸變就顯得尤為重要。受到卷積原理的啟發(fā),本文提出基于卷積的工業(yè)機(jī)器人非線性手眼標(biāo)定方法。將標(biāo)定物分為多個(gè)卷積區(qū)域,提取每個(gè)區(qū)域畸變特征,生成最適合該區(qū)域的矩陣參數(shù),減小鏡頭畸變對(duì)相機(jī)標(biāo)定的影響。該方法通過(guò)增加標(biāo)定點(diǎn)個(gè)數(shù),提高標(biāo)定精度和檢測(cè)工作范圍。通過(guò)實(shí)驗(yàn)驗(yàn)證表明,本文方法精確度相比于九點(diǎn)標(biāo)定法有了明顯改進(jìn),更加滿足于精確度高、檢測(cè)范圍大和穩(wěn)定性強(qiáng)的場(chǎng)景。
手眼標(biāo)定可實(shí)現(xiàn)圖像坐標(biāo)和機(jī)器人世界坐標(biāo)之間的轉(zhuǎn)換,需要建立起相機(jī)的成像模型,主要涉及到4 個(gè)坐標(biāo)系,分別是世界坐標(biāo)系OW-XWYWZW(單位:mm)、相機(jī)坐標(biāo)系OC-XCYCZC(單位:mm)、圖像坐標(biāo)系O-xy(單位:mm)和像素坐標(biāo)系Oo-UV(單位:pixel),如圖1 所示。

圖1 相機(jī)成像模型
世界坐標(biāo)系和相機(jī)坐標(biāo)系之間屬于剛體變換,由旋轉(zhuǎn)矩陣R和平移向量t表征。相機(jī)坐標(biāo)系到圖像坐標(biāo)系屬于透視投影,由3D 變換到2D 空間,損失一維深度信息即焦距f。圖像坐標(biāo)系和像素坐標(biāo)系可通過(guò)平移尺度變換表征二者關(guān)系,但受到透鏡實(shí)際形狀、位置抖動(dòng)及焦平面傾斜等影響,不符合線性變換。
圖像坐標(biāo)系轉(zhuǎn)換像素坐標(biāo)系,如圖1 所示,Oo是像素坐標(biāo)系原點(diǎn),O是圖像坐標(biāo)系原點(diǎn)。假設(shè)dx、dy是每個(gè)像素在x和y方向上的長(zhǎng)度,則圖像坐標(biāo)系中的點(diǎn)x、y對(duì)應(yīng)像素坐標(biāo)系應(yīng)有如式(1)所示的關(guān)系:
相機(jī)坐標(biāo)系和圖像坐標(biāo)系之間可以利用相似三角形求出轉(zhuǎn)換關(guān)系。f表示相機(jī)焦距,xy平面表示相平面,轉(zhuǎn)換關(guān)系如式(2)所示:
世界坐標(biāo)系轉(zhuǎn)換相機(jī)坐標(biāo)系的過(guò)程屬于剛體變換,轉(zhuǎn)換不會(huì)發(fā)生形變,由旋轉(zhuǎn)矩陣R和平移向量t進(jìn)行變換。其中R是一個(gè)3×3 的正交單位矩陣,t為3×1 的矩陣。轉(zhuǎn)換關(guān)系如式(3)所示:
將像素坐標(biāo)系、圖像坐標(biāo)系、相機(jī)坐標(biāo)系和世界坐標(biāo)系之間的轉(zhuǎn)換關(guān)系結(jié)合,可得到像素坐標(biāo)系和世界坐標(biāo)系之間的關(guān)系,即相機(jī)坐標(biāo)系與機(jī)器人坐標(biāo)系之間的位姿關(guān)系,如式(4)所示:
在理想狀態(tài)下,相機(jī)每個(gè)坐標(biāo)系之間的轉(zhuǎn)換都是線性變換,相機(jī)成像過(guò)程中不會(huì)產(chǎn)生誤差,可以直接使用Abdel線性模型進(jìn)行標(biāo)定,如式(5)所示:
式中:ZC為未知尺度因子;T為投影矩陣;K為相機(jī)內(nèi)參矩陣;M為外參矩陣,由R和t組成。
但是受到目前鏡頭工藝水平和機(jī)器誤差的限制,相機(jī)成像無(wú)法達(dá)到理想化小孔成像模型,實(shí)際所成的圖像與理想圖像之間存在著非線性幾何失真。目前最主要的畸變誤差有徑向畸變、切向畸變和薄棱鏡畸變等。非線性模型在線性模型基礎(chǔ)上加入由多項(xiàng)式擬合的像點(diǎn)位置偏差(Δu,Δv),可以減少畸變誤差影響,如式(6)所示:
加入了像點(diǎn)位置偏差的非線性模型雖然有了極大改善,但依然無(wú)法達(dá)到理想線性相機(jī)模型,機(jī)器人在進(jìn)行高精度作業(yè)時(shí)仍會(huì)有較大誤差。因此,要找到一種適合實(shí)際場(chǎng)景應(yīng)用的手眼標(biāo)定方法,提高相機(jī)識(shí)別精確度及識(shí)別范圍極為重要。
九點(diǎn)標(biāo)定法是基于張氏標(biāo)定法進(jìn)行標(biāo)定,通過(guò)檢測(cè)標(biāo)定圓的圓心像素坐標(biāo)和世界坐標(biāo)計(jì)算變換矩陣。九點(diǎn)標(biāo)定本質(zhì)是點(diǎn)與點(diǎn)之間進(jìn)行仿射變換,具有操作簡(jiǎn)單、精確度高、穩(wěn)定性強(qiáng)等優(yōu)點(diǎn),是機(jī)器人標(biāo)定中的常用方法。主要操作方法包括以下幾個(gè)步驟:
步驟1:準(zhǔn)備一張印有9 個(gè)圓的標(biāo)定物紙張,一般為3×3 標(biāo)準(zhǔn),并確保相機(jī)能夠全部采集到。
步驟2:確保標(biāo)定物在相機(jī)采集過(guò)程中保持靜止,使用圖像處理和控制機(jī)械臂方法獲取標(biāo)定圓的圓心像素坐標(biāo)和圓心機(jī)械臂坐標(biāo)。
步驟3:通過(guò)步驟2 獲取的像素坐標(biāo)和機(jī)械坐標(biāo)進(jìn)行仿射變換生成矩陣參數(shù),通過(guò)矩陣參數(shù)可以將任意像素坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)。
九點(diǎn)標(biāo)定法的缺點(diǎn)在于無(wú)法減小相機(jī)鏡頭畸變引起的標(biāo)定誤差,在精確度和標(biāo)定測(cè)試范圍上無(wú)法同時(shí)滿足實(shí)際需求。標(biāo)定范圍擴(kuò)大會(huì)受到鏡頭畸變影響,導(dǎo)致標(biāo)定精確度降低,標(biāo)定范圍縮小精確度高,實(shí)際檢測(cè)范圍無(wú)法滿足實(shí)際需求。
針對(duì)目前九點(diǎn)標(biāo)定法無(wú)法同時(shí)滿足標(biāo)定范圍和標(biāo)定精確度的不足,本文提出一種基于卷積的非線性手眼標(biāo)定方法對(duì)原有的方法進(jìn)行改進(jìn)。該方法在保證精確度的前提下擴(kuò)大標(biāo)定檢測(cè)范圍,滿足更多工業(yè)機(jī)器人場(chǎng)景需求。
該標(biāo)定方法操作步驟相較九點(diǎn)標(biāo)定法有所不同,具體操作步驟如下所示:
步驟1:準(zhǔn)備一張印有若干圓的標(biāo)定物紙張,具體個(gè)數(shù)根據(jù)檢測(cè)范圍大小確定,將這些圓排列成n×m的標(biāo)準(zhǔn),并確保相機(jī)能夠全部采集。
步驟2:確保標(biāo)定物在相機(jī)采集過(guò)程中保持靜止,使用圖像處理和控制機(jī)械臂方法獲取標(biāo)定圓的圓心像素坐標(biāo)和圓心機(jī)械臂坐標(biāo)。
步驟3:使用3×3 的卷積核遍歷標(biāo)定物上的圓,按照從左到右、從上到下的順序進(jìn)行遍歷,具體操作如圖2所示,共標(biāo)定54 個(gè)圓,生成28 個(gè)卷積區(qū)域?qū)?yīng)的旋轉(zhuǎn)矩陣參數(shù),左上角方框?yàn)榈谝粋€(gè)卷積區(qū)域,右下角方框?yàn)樽詈笠粋€(gè)卷積區(qū)域。

圖2 使用卷積方法的標(biāo)定圓
步驟4:將所有卷積區(qū)域旋轉(zhuǎn)矩陣參數(shù)進(jìn)行保存,坐標(biāo)系轉(zhuǎn)換時(shí)使用該卷積區(qū)域的旋轉(zhuǎn)矩陣參數(shù),提高標(biāo)定精確度。
為確保實(shí)驗(yàn)結(jié)果的真實(shí)性和可靠性,使用四軸機(jī)械臂的機(jī)械坐標(biāo)作為世界坐標(biāo)。選取500 萬(wàn)像素(2 448×1 536)工業(yè)款相機(jī)進(jìn)行圖像采集,距離標(biāo)定面高度400 mm。機(jī)械臂與標(biāo)定圓紙張位于同一平面,具體如圖3 所示。

圖3 實(shí)際標(biāo)定界面圖
分別用九點(diǎn)標(biāo)定法和本文改進(jìn)的算法對(duì)不同范圍大小標(biāo)定物進(jìn)行標(biāo)定,將標(biāo)定結(jié)果測(cè)試后比較,分析兩種算法的測(cè)試結(jié)果及優(yōu)缺點(diǎn)。現(xiàn)對(duì)基于卷積的工業(yè)機(jī)器人非線性手眼標(biāo)定方法實(shí)驗(yàn)過(guò)程進(jìn)行概述。
1)獲取標(biāo)定圓圓心像素坐標(biāo)
張氏標(biāo)定法通過(guò)棋盤(pán)格角點(diǎn)檢測(cè)進(jìn)行標(biāo)定,本文采用圓心檢測(cè)進(jìn)行標(biāo)定,圓心檢測(cè)相比于棋盤(pán)格角點(diǎn)檢測(cè)可以達(dá)到更加精確的效果。首先對(duì)相機(jī)采集的圖像進(jìn)行預(yù)處理,提高識(shí)別精確度,主要包括灰度化、二值化、高斯模糊、形態(tài)學(xué)處理和輪廓查找等操作;再通過(guò)圓形特征獲取標(biāo)定圓圓心坐標(biāo),并將檢測(cè)獲取的像素圓心坐標(biāo)按照從左到右、從上到下的順序保存。該檢測(cè)方法在實(shí)驗(yàn)過(guò)程中具有運(yùn)算速度快、穩(wěn)定性強(qiáng)和魯棒性高等優(yōu)點(diǎn)。
2)獲取標(biāo)定圓圓心機(jī)械臂坐標(biāo)
根據(jù)步驟1)獲取的圓心像素坐標(biāo)順序,通過(guò)控制機(jī)械臂獲取標(biāo)定物圓心對(duì)應(yīng)的世界坐標(biāo)進(jìn)行保存。這個(gè)過(guò)程需要通過(guò)通信協(xié)議指令控制。為了確保機(jī)械坐標(biāo)結(jié)果更加準(zhǔn)確,使用工業(yè)機(jī)器人視覺(jué)標(biāo)定針輔助標(biāo)定。
3)計(jì)算旋轉(zhuǎn)矩陣參數(shù)
通過(guò)卷積的原理在標(biāo)定物上按照從左到右、從上到下的順序依次遍歷,卷積核大小為3×3。根據(jù)前兩步得到的結(jié)果在每個(gè)卷積區(qū)域生成對(duì)應(yīng)的旋轉(zhuǎn)矩陣參數(shù)。遍歷結(jié)束后,將每個(gè)區(qū)域的旋轉(zhuǎn)矩陣參數(shù)進(jìn)行保存。
4)計(jì)算誤差
為了使實(shí)驗(yàn)更加具有可靠性,誤差計(jì)算采用測(cè)試點(diǎn)在基于卷積的工業(yè)機(jī)器人非線性手眼標(biāo)定方法中進(jìn)行測(cè)試。通過(guò)旋轉(zhuǎn)矩陣參數(shù)轉(zhuǎn)換圖像處理后的像素坐標(biāo),得到重建的坐標(biāo)值,最后分析實(shí)驗(yàn)結(jié)果。
為達(dá)到實(shí)驗(yàn)?zāi)康模疚牟捎脺y(cè)試點(diǎn)分別在九點(diǎn)標(biāo)定法和本文算法下進(jìn)行比對(duì),分析兩者誤差。使用兩種方法在標(biāo)定物上標(biāo)定,得到各自的標(biāo)定結(jié)果。測(cè)試點(diǎn)通過(guò)標(biāo)定結(jié)果重建的坐標(biāo)值和真實(shí)值之間的距離表示各自標(biāo)定的誤差值,并增加測(cè)試點(diǎn)取平均誤差達(dá)到更穩(wěn)定、精確的實(shí)驗(yàn)結(jié)果。
兩種算法經(jīng)過(guò)多次測(cè)試,誤差結(jié)果如表1 所示。隨著標(biāo)定范圍擴(kuò)大,九點(diǎn)標(biāo)定法誤差也隨之增大,本文算法依然保持著較小的誤差。由此可見(jiàn),在實(shí)際應(yīng)用場(chǎng)景中,使用本文手眼標(biāo)定算法的工業(yè)機(jī)器人視覺(jué)精確度更高,能滿足更多的機(jī)器視覺(jué)項(xiàng)目。誤差分析比較如圖4所示。

表1 算法測(cè)試誤差mm

圖4 誤差分析比較
最終實(shí)驗(yàn)表明,九點(diǎn)標(biāo)定法矩陣參數(shù)過(guò)于單一,無(wú)法適應(yīng)標(biāo)定范圍擴(kuò)大引入的鏡頭畸變影響,精確度不穩(wěn)定,工業(yè)機(jī)器人在實(shí)際應(yīng)用中無(wú)法滿足作業(yè)需求。針對(duì)九點(diǎn)標(biāo)定法存在的不足,本文提出的基于卷積的工業(yè)機(jī)器人非線性手眼標(biāo)定方法能有效減少鏡頭畸變誤差,保持較高的精確度,滿足標(biāo)定需求,可以更好地使工業(yè)機(jī)器人適應(yīng)不同卷積區(qū)域的相機(jī)畸變參數(shù),完成高精度作業(yè)。
本文提出的基于卷積的工業(yè)機(jī)器人非線性手眼標(biāo)定方法主要基于卷積的原理,通過(guò)3×3 卷積區(qū)域依次遍歷相機(jī)標(biāo)定范圍,求解每個(gè)卷積區(qū)域的旋轉(zhuǎn)矩陣參數(shù)。通過(guò)讓旋轉(zhuǎn)矩陣參數(shù)適應(yīng)鏡頭下每個(gè)區(qū)域畸變的方法,從而減少相機(jī)鏡頭畸變的影響。與傳統(tǒng)的九點(diǎn)標(biāo)定法相比,本文提出的算法不僅提高了相機(jī)標(biāo)定檢測(cè)范圍,同時(shí)提高了精確度,性能更加穩(wěn)定,能夠滿足工業(yè)機(jī)器人的更多實(shí)際應(yīng)用要求。