蘇成志,金俊杰,毛英坤,丁詩祺,王恩國(guó),蔡夢(mèng)想
(1.長(zhǎng)春理工大學(xué)人工智能學(xué)院,吉林長(zhǎng)春 130022;2.長(zhǎng)春理工大學(xué)重慶研究院,重慶 401135; 3.長(zhǎng)春理工大學(xué)機(jī)電工程學(xué)院,吉林長(zhǎng)春 130022;4.哈爾濱飛機(jī)工業(yè)集團(tuán)有限責(zé)任公司,黑龍江哈爾濱 150000)
近年來,三維測(cè)量技術(shù)被廣泛用于航空航天、汽車和船舶等領(lǐng)域,對(duì)象被數(shù)字化,用于檢測(cè)、識(shí)別、路徑規(guī)劃等場(chǎng)景。復(fù)雜曲面大量存在于上述領(lǐng)域,由于結(jié)構(gòu)復(fù)雜,在沒有先驗(yàn)信息的情況下,其完整信息的獲取難度較大,國(guó)內(nèi)外學(xué)者對(duì)此開展了深入研究。
基于未知模型的視點(diǎn)規(guī)劃方法分為體積法和表面法兩種。體積法代表性進(jìn)展如下:MUNKELT等(2006)將視點(diǎn)規(guī)劃分為兩個(gè)階段:第一階段,在保證精度的情況下,使可視體素?cái)?shù)量最大化,快速構(gòu)建對(duì)象大致模型;第二階段,針對(duì)模型中的遮擋體素和低精度體素進(jìn)行二次掃描,提高模型質(zhì)量。VASQUEZ-GOMEZ等(2014)將體素空間分為未觀測(cè)體素、空體素和已占據(jù)體素,然后在邊界處根據(jù)外接球面模型生成候選視點(diǎn),最后綜合考量可見性、掃描質(zhì)量和機(jī)器人運(yùn)動(dòng)代價(jià)等因素確定最優(yōu)視點(diǎn)。通過外接球面或者圓柱生成候選視點(diǎn)的方式,使視點(diǎn)位置被限制在固定表面上,方向被約束為只能指向中心,不利于復(fù)雜曲面完整三維信息的采集。POTTHAST、SUKHATME(2013)和DELMERICO等(2017)根據(jù)信息增益(IG),基于體素的可見性與當(dāng)前視圖的差異性評(píng)價(jià)候選視圖。
體積法一般需要給定先驗(yàn)的場(chǎng)景信息,同時(shí)因?yàn)樾枰獙⒄麄€(gè)工作場(chǎng)景體素化,且涉及到候選視點(diǎn)的生成與評(píng)價(jià),計(jì)算成本和時(shí)間成本高。相比體積法,表面法無需先驗(yàn)場(chǎng)景信息。表面法代表性進(jìn)展如下:YUAN(1995)基于群矢量鏈(MVCs)進(jìn)行視點(diǎn)規(guī)劃,通過當(dāng)前點(diǎn)云合矢量的反向確定下一視點(diǎn),以合矢量為0為規(guī)劃終止條件,這種方法對(duì)不封閉或者包含孔洞的曲面對(duì)象并不適應(yīng)。CHEN、LI(2005)建議使用趨勢(shì)面來預(yù)測(cè)物體的未知部分,根據(jù)先前掃描表面的整體形狀,確定預(yù)估表面的NBV,但是文中依據(jù)曲率的方法只適用于簡(jiǎn)單曲面模型。ZHOU等(2009)預(yù)測(cè)了可視表面左側(cè)和右側(cè),并選擇兩者中可視表面較大者,這種方法僅適用于圓柱體模型。KRIEGEL等(2013)根據(jù)邊界區(qū)域的表面趨勢(shì)確定掃描路徑,此方法用在一些具有凹入?yún)^(qū)域的雕像上效果很好,但是沒有處理孔洞,影響了最終模型的完整性,同時(shí)也沒有給出合理的自終止條件。以上表面法大多僅適用于簡(jiǎn)單表面,對(duì)于曲率變化大、可能包含孔洞的表面適應(yīng)能力較差。
基于此,本文作者提出一種基于邊界檢驗(yàn)的視點(diǎn)規(guī)劃方法,首先進(jìn)行場(chǎng)景假設(shè),定義規(guī)劃對(duì)象、相關(guān)坐標(biāo)系以及三維傳感器模型;其次,提取當(dāng)前模型邊界,并將邊界分為外邊界以及孔洞邊界;再次,對(duì)外邊界先進(jìn)行分段對(duì)應(yīng)不同潛在趨勢(shì)面,之后基于二次曲面擬合預(yù)估趨勢(shì)面,并根據(jù)趨勢(shì)面法矢以及邊界最大主成分方向自主規(guī)劃視點(diǎn);然后根據(jù)孔洞的中心、大小與中心的法向量規(guī)劃孔洞區(qū)域的觀測(cè)視點(diǎn);最后根據(jù)真?zhèn)芜吔缱灾髋袛嗍欠窭^續(xù)進(jìn)行規(guī)劃工作。
假設(shè)規(guī)劃對(duì)象為曲面,事先沒有曲面的任何先驗(yàn)知識(shí),且對(duì)曲面的形狀結(jié)構(gòu)沒有要求,只需給定一個(gè)能觀測(cè)到曲面的初始視點(diǎn)。
設(shè)世界坐標(biāo)系為{},如圖1所示,曲面被置于世界坐標(biāo)系{}下,且周邊無遮擋和碰撞的障礙物。設(shè)三維傳感器坐標(biāo)系為{},{}的方向向量為{,,},其中為深度方向,為傳感器水平方向,為傳感器豎直方向。通過標(biāo)定得到{}與{}之間的變換矩陣。三維傳感器的視場(chǎng)是一個(gè)四棱錐,四棱錐以{}的原點(diǎn)為頂點(diǎn),視場(chǎng)水平角和垂直角分別為和,測(cè)量范圍為[,]。
圖1 場(chǎng)景假設(shè)示意
設(shè)曲面在坐標(biāo)系{}下的初始視點(diǎn)為,以為視點(diǎn)采集到的點(diǎn)云數(shù)據(jù)為,根據(jù)公式(1)轉(zhuǎn)化得到坐標(biāo)系{}下,將三角網(wǎng)格化,得到當(dāng)前網(wǎng)格模型。
g=g
(1)
1.2.1 邊界提取
如圖2所示,檢索當(dāng)前網(wǎng)格模型的三角形邊集合={△,=1,2,…,}中的每一條邊△,如果△只關(guān)聯(lián)一個(gè)三角形,那么認(rèn)為△為中的一條邊界邊,如果△關(guān)聯(lián)兩個(gè)三角形,則認(rèn)為△為中的內(nèi)部邊。以此,從檢索得到邊界邊集合={B,=1,2,…,}和對(duì)應(yīng)的邊界點(diǎn)集合={B,=1,2,…,}。
圖2 邊界提取示意
步驟1,?B∈為初始種子邊,加入種子邊集合,令=1。
步驟2,搜索中與種子邊相連的邊界邊加入種子邊集合。
步驟4,令=+1,并清空。重復(fù)步驟1~3,直到=?為止。
1.2.2 邊界分類
(2)
1.3.1 邊界趨勢(shì)面估計(jì)
由于不同邊界區(qū)域的潛在趨勢(shì)面不同,不同趨勢(shì)面的視點(diǎn)必然不同,因此需要對(duì)外邊界進(jìn)行分段對(duì)應(yīng)不同趨勢(shì)面。
圖3 毛刺示意
如圖4所示,以個(gè)邊界點(diǎn)為采樣間隔對(duì)邊界進(jìn)行采樣,即每個(gè)邊界點(diǎn)構(gòu)建一個(gè)用于對(duì)比的方向向量,通過公式(3)計(jì)算向量b(-)b和bb(+)之間的夾角。當(dāng)小于閾值時(shí),將兩段邊界歸為同一段邊界。
圖4 邊界邊比較示意 圖5 初始幀邊界分段示意
(3)
將邊界分段后,基于每段邊界的形狀結(jié)構(gòu)信息估計(jì)曲面未知區(qū)域的表面趨勢(shì),以此作為后續(xù)視點(diǎn)位姿規(guī)劃的依據(jù)。
(4)
對(duì)公式(4)求偏導(dǎo),計(jì)算中點(diǎn)的法向量,得式(5)
(5)
1.3.2 視點(diǎn)姿態(tài)規(guī)劃
如圖6所示,為了保證測(cè)量質(zhì)量,要求三維傳感器的與預(yù)估的趨勢(shì)面的法向量平行且反向,如式(6)。一般把三維傳感器的視為正方向,故式(5)中方向的分量取-1。
圖6 邊界視點(diǎn)位姿確定示意
=-
(6)
稱取預(yù)處理的紅枸杞粉2g(精確到0.0001),在超聲溫度為60℃,料液比為1∶50,超聲時(shí)間為3min的條件下,超聲次數(shù)分別為1次、2次、3次、4次、5次的條件下提取,過濾,醇沉,定容后按照1.3.2.1的方法測(cè)定吸光值,計(jì)算多糖的提取率。
由公式(7),先通過和叉乘得到,最后再通過和叉乘確定,
(7)
(8)
1.3.3 點(diǎn)位置規(guī)劃
(9)
求得測(cè)量距離后,還需根據(jù)實(shí)際應(yīng)用場(chǎng)景,給乘一個(gè)安全系數(shù)。當(dāng)希望使獲取的數(shù)據(jù)之間有更大的重疊區(qū)域時(shí),考慮取>1;當(dāng)工作場(chǎng)景空間有限時(shí),取<1。結(jié)合三維傳感器的測(cè)量范圍[,],由公式(10)求得最終的測(cè)量距離:
(10)
(11)
1.4.1 孔洞特征提取
孔洞示意如圖7所示。由式(12),計(jì)算孔洞的中心:
圖7 孔洞示意
(12)
用式(13),通過各孔洞邊界點(diǎn)h的法向量h求和得到孔洞中心的法向量:
(13)
通過式(14)引進(jìn)一個(gè)描述孔洞大小的參數(shù):
(14)
1.4.2 孔洞視點(diǎn)位姿規(guī)劃
用公式(15)計(jì)算得到三維傳感器面向孔洞區(qū)域時(shí)的測(cè)量距離:
(15)
通過視點(diǎn)集合和中的視點(diǎn)對(duì)當(dāng)前模型的邊界進(jìn)行觀測(cè)采集,每個(gè)視點(diǎn)獲取的新點(diǎn)云信息g以為基準(zhǔn)進(jìn)行點(diǎn)云配準(zhǔn)。各視點(diǎn)數(shù)據(jù)之間可能僅部分重合,先基于八叉樹提取重疊區(qū)域,再利用迭代最近點(diǎn)算法(ICP)對(duì)點(diǎn)云進(jìn)行精配準(zhǔn),然后根據(jù)文獻(xiàn)[14]中的方法,實(shí)時(shí)更新當(dāng)前網(wǎng)格模型。
所有數(shù)據(jù)都配準(zhǔn)完成以后,根據(jù)公式(2)提取更新后的模型的邊界,記新邊界點(diǎn)集為′。
如圖8所示,當(dāng)前模型的邊界,可能為曲面真正的物理邊緣,也可能為由于傳感器的視場(chǎng)限制引入的“偽邊界”。曲面的真正物理邊界,在三維傳感器于邊界處觀測(cè)后依然存在,“偽邊界”則會(huì)在與新的三維信息融合后消失。不斷基于更新的模型邊界規(guī)劃視點(diǎn),并進(jìn)行真?zhèn)芜吔鐧z驗(yàn),直到當(dāng)前模型的邊界全為真邊界或者沒有邊界(如球面)為止,自主完成曲面的完整三維信息采集。在視點(diǎn)規(guī)劃過程中,為了避免重復(fù)工作,對(duì)已經(jīng)確認(rèn)為真邊界的邊界點(diǎn)進(jìn)行標(biāo)記,后續(xù)不再基于其進(jìn)行視點(diǎn)規(guī)劃工作。
圖8 邊界對(duì)比示意
對(duì)視點(diǎn)集合采集前后的模型邊界點(diǎn)集和′進(jìn)行對(duì)比驗(yàn)證,和′之間的關(guān)系如公式(16)所示,設(shè)為和′的真邊界,為中的偽邊界,為新的基準(zhǔn)邊界。
(16)
由于邊界是一個(gè)離散點(diǎn)集,即使是空間上的同一點(diǎn),每次測(cè)量得到的三維坐標(biāo)也并不唯一。為了方便邊界的比較,如果兩點(diǎn)的距離小于等于自適應(yīng)閾值,便視兩邊界點(diǎn)重疊。已知所有網(wǎng)格邊集合為={B,=1,2,…,},通過公式(17)計(jì)算閾值:
(17)
取′B∈′,若?B∈,滿足公式(18),便認(rèn)為′B在中找到重疊點(diǎn)。
|′B|≤
(18)
自主判斷是否需要繼續(xù)進(jìn)行規(guī)劃工作:若′-≠?,此時(shí)′∩相當(dāng)于之前歷史模型中的真邊界,不再基于其進(jìn)行視點(diǎn)規(guī)劃,以′-為新基準(zhǔn)邊界,重復(fù)第1.2~1.4節(jié)步驟繼續(xù)進(jìn)行視點(diǎn)規(guī)劃。
若′-=?,即中所有點(diǎn)均為真邊界,即認(rèn)為視點(diǎn)沒有獲取到新的構(gòu)件信息,當(dāng)前模型邊界不變,視點(diǎn)規(guī)劃任務(wù)終止,輸出模型數(shù)據(jù)。
視點(diǎn)規(guī)劃任務(wù)完成后,輸出所有歷史視點(diǎn)集合={,}。
不失一般性,以大眾某車型的汽車后保險(xiǎn)杠作為目標(biāo)曲面進(jìn)行視點(diǎn)規(guī)劃試驗(yàn)。該汽車后保險(xiǎn)杠尺寸約為1 700 mm×480 mm×830 mm,整體尺寸較大、結(jié)構(gòu)復(fù)雜,包含多個(gè)平面、曲面和U形面,且面與面之間相互遮擋;同時(shí),因?yàn)楦鱾€(gè)面的交接處曲率變化大,又需保證各視點(diǎn)數(shù)據(jù)間一定量的重疊約束,所以視點(diǎn)位姿的規(guī)劃難度較大,人工示教規(guī)劃過程十分繁瑣,費(fèi)時(shí)費(fèi)力。
搭建如圖9所示的硬件系統(tǒng)用以驗(yàn)證上述視點(diǎn)規(guī)劃方法的正確性。系統(tǒng)由1臺(tái)PC機(jī)、1臺(tái)埃夫特GR680工業(yè)六軸機(jī)器人、1臺(tái)圖漾FM830-GI主動(dòng)式結(jié)構(gòu)光雙目相機(jī)和一個(gè)二維轉(zhuǎn)臺(tái)組成。所提機(jī)器人的運(yùn)動(dòng)姿態(tài)由歐拉角來表示,其繞軸旋轉(zhuǎn)序列為,用、、分別表示繞、、軸的旋轉(zhuǎn)角度,每個(gè)視點(diǎn)在機(jī)器人基坐標(biāo)系下的位姿可由參數(shù)[]表示。雙目相機(jī)的測(cè)量距離為0.5~8 m,視場(chǎng)FOV(H/V)為(56°/46°),深度圖像分辨率為560像素×460像素。汽車后保險(xiǎn)杠通過夾具與二維轉(zhuǎn)臺(tái)剛性連接。
圖9 硬件系統(tǒng)
2.2.1 初始視點(diǎn)
顯然視點(diǎn)規(guī)劃過程與初始視點(diǎn)選擇息息相關(guān)。為了快速完成三維測(cè)量任務(wù),選擇汽車后保險(xiǎn)杠的正面開始初次測(cè)量,獲取的構(gòu)件點(diǎn)云數(shù)據(jù)及邊界分段結(jié)果如圖10所示。邊界分段中,構(gòu)建方向向量時(shí)邊界點(diǎn)采樣間隔取50,比較時(shí)的夾角閾值取70°。
圖10 初始視點(diǎn)采集數(shù)據(jù)及邊界分段示意
2.2.2 第一輪視點(diǎn)規(guī)劃及采集結(jié)果
視點(diǎn)規(guī)劃時(shí),用于二次曲面擬合的近鄰點(diǎn)半徑取15 mm,測(cè)量距離的安全系數(shù)取1.5。視點(diǎn)規(guī)劃結(jié)果如表1所示,視點(diǎn)位姿示意圖如圖11所示,圖中傳感器坐標(biāo)系{}的方向向量、、分別用紅、綠、藍(lán)三種顏色表示,下同。
表1 第一輪視點(diǎn)位姿
圖11 視點(diǎn)示意
雙目相機(jī)在每個(gè)視點(diǎn)位姿下獲取的點(diǎn)云數(shù)據(jù),如圖12所示。將每個(gè)視點(diǎn)獲取的局部點(diǎn)云,以初始點(diǎn)云為基準(zhǔn),進(jìn)行配準(zhǔn)變換以后,得到配準(zhǔn)后模型及其邊界如圖13所示。
圖12 視點(diǎn)觀測(cè)數(shù)據(jù)示意
圖13 配準(zhǔn)后模型及邊界
2.2.3 第一次邊界檢驗(yàn)
視點(diǎn)集合拍攝前后構(gòu)件模型的歷史邊界和當(dāng)前模型邊界′的對(duì)比如圖14所示,兩者交集為后杠的真正物理邊界,為了避免重復(fù)掃描工作,從當(dāng)前邊界集合′中減去歷史邊界中的真邊界,剩下的為后續(xù)視點(diǎn)規(guī)劃所需的基準(zhǔn)邊界,使用文中的邊界分段方法,將其分段,結(jié)果如圖15所示。
圖14 掃描前后邊界比較 圖15 新的基準(zhǔn)邊界及分段示意
2.2.4 第二輪視點(diǎn)規(guī)劃及采集結(jié)果
配準(zhǔn)后的模型包含孔洞如圖16(a)所示,孔洞存在于后保險(xiǎn)杠的底面和側(cè)面的連接處??锥创笮〉拿枋鰠?shù)=92.09 mm,通過文中的孔洞區(qū)域的視點(diǎn)規(guī)劃方法,得到孔洞區(qū)域的視點(diǎn)7位姿為[1 603.21 1 120.601 120.98 -76.98 36.03 -6.25] mm。
圖16 孔洞拍攝示意
外邊界處后續(xù)視點(diǎn)規(guī)劃結(jié)果如表2及圖17所示。每個(gè)視點(diǎn)所采集數(shù)據(jù)如圖18(a)—(g)所示。
表2 第二輪視點(diǎn)位姿
圖17 第二輪視點(diǎn)示意
圖18 第二輪視點(diǎn)觀測(cè)數(shù)據(jù)示意
經(jīng)過點(diǎn)云配準(zhǔn)以后,得到配準(zhǔn)后模型及其邊界如圖19所示。
圖19 第二輪配準(zhǔn)模型與邊界
2.2.5 第二次邊界檢驗(yàn)
當(dāng)前累積模型的邊界′與歷史模型的邊界的對(duì)比如圖20所示,按文中所提的自終止條件進(jìn)行判斷,邊界不再變化,視點(diǎn)規(guī)劃任務(wù)結(jié)束。輸出所有視點(diǎn)集合,如圖21所示。
圖20 邊界比較示意
圖21 汽車后保險(xiǎn)杠觀測(cè)視點(diǎn)集合
通過上述實(shí)驗(yàn),得到了完整的汽車后保險(xiǎn)杠的點(diǎn)云模型,如表3所示,獲取對(duì)象模型的整個(gè)過程花費(fèi)了約6 min,其中包括視點(diǎn)規(guī)劃、點(diǎn)云提取與配準(zhǔn)以及機(jī)器人的移動(dòng)時(shí)間。由于雙目相機(jī)獲取的點(diǎn)云數(shù)據(jù)量相對(duì)較大,每幀獲取的局部點(diǎn)云都有5萬~12萬的數(shù)據(jù)量(與測(cè)量距離有關(guān)),雖然實(shí)際試驗(yàn)過程中進(jìn)行了一定量的精簡(jiǎn),但是點(diǎn)云配準(zhǔn)與網(wǎng)格重建依然花費(fèi)了較長(zhǎng)時(shí)間,同時(shí)機(jī)器人的移動(dòng)過程也花費(fèi)了較長(zhǎng)時(shí)間。視點(diǎn)規(guī)劃時(shí)每個(gè)視點(diǎn)的平均用時(shí)僅為67 ms,所以相對(duì)來說,視點(diǎn)的位姿規(guī)劃用時(shí)只占了整體建模過程中很小一部分的時(shí)長(zhǎng)。
表3 后保險(xiǎn)杠的視點(diǎn)規(guī)劃數(shù)量與時(shí)間統(tǒng)計(jì)結(jié)果
為了估算文中所規(guī)劃的視點(diǎn)集合對(duì)后保險(xiǎn)杠所能實(shí)現(xiàn)的覆蓋率,將一個(gè)完整的汽車后保險(xiǎn)杠點(diǎn)云模型以文中所建模型為基準(zhǔn)進(jìn)行點(diǎn)云配準(zhǔn),使其與實(shí)際場(chǎng)景中后杠的空間位置和姿態(tài)盡量相同。該點(diǎn)云模型由第三方渠道給出,模型包含8 609個(gè)點(diǎn)。通過第1.2節(jié)中規(guī)劃的視點(diǎn)集合對(duì)第三方點(diǎn)云進(jìn)行模擬采集,當(dāng)點(diǎn)云內(nèi)的一點(diǎn)的法向量和的點(diǎn)乘小于0時(shí)認(rèn)為滿足可見性,同時(shí)考慮視場(chǎng)角約束、拍攝距離約束和遮擋約束。其中,能獲取到新信息的關(guān)鍵視點(diǎn)的采集示意如圖22(a)—(h)所示。
圖22 汽車后保險(xiǎn)杠模擬采集流程
表4記錄了各視點(diǎn)采集的數(shù)據(jù)量、累積已采集數(shù)據(jù)量,以及累積覆蓋率。其中,累積覆蓋率為所有累積已采集點(diǎn)除以第三方模型點(diǎn)云總數(shù)。如圖23所示:最終覆蓋率能達(dá)到100%,實(shí)現(xiàn)全覆蓋。
表4 視點(diǎn)采集數(shù)據(jù)量統(tǒng)計(jì)
圖23 覆蓋率變化折線圖
提出一種基于邊界檢驗(yàn)的視點(diǎn)自主規(guī)劃的方法。實(shí)驗(yàn)結(jié)果表明:
(1) 文中方法可在沒有曲面先驗(yàn)知識(shí)的情況下,僅基于曲面初始視點(diǎn)的掃描結(jié)果,自主完成未知曲面后續(xù)三維測(cè)量視點(diǎn)的規(guī)劃任務(wù)。
(2)文中方法可自主實(shí)現(xiàn)包含多面、曲率多變等特征的復(fù)雜曲面三維測(cè)量視點(diǎn)的規(guī)劃工作。
(3)以汽車后保險(xiǎn)杠為例,文中方法平均每個(gè)視點(diǎn)規(guī)劃用時(shí)僅為67 ms,整體建模用時(shí)約6 min;通過模擬仿真試驗(yàn),累積覆蓋率達(dá)到100%,在掃描時(shí)間和完整性方面具有良好性能。