劉世龍,馬智亮
基于結(jié)構(gòu)光相機(jī)的鋼筋骨架整體點(diǎn)云獲取算法
劉世龍,馬智亮
(清華大學(xué)土木工程系,北京 100084)
為了獲取鋼筋骨架質(zhì)量自動(dòng)檢查所需的高精度鋼筋骨架整體點(diǎn)云,建立了基于結(jié)構(gòu)光相機(jī)的鋼筋骨架整體點(diǎn)云獲取算法。首先,對(duì)結(jié)構(gòu)光相機(jī)采集得到的多幅鋼筋骨架圖像進(jìn)行三維重建,得到結(jié)構(gòu)光相機(jī)的無(wú)量綱位姿。其次,根據(jù)無(wú)量綱位姿獲取有量綱位姿。然后,計(jì)算這些有量綱位姿間精確的轉(zhuǎn)換矩陣。接著,基于這些有量綱位姿及其兩兩之間的精確轉(zhuǎn)換矩陣,使用圖優(yōu)化對(duì)這些有量綱位姿進(jìn)行優(yōu)化,以得到高精度的有量綱位姿。最后,基于高精度的有量綱位姿對(duì)齊結(jié)構(gòu)光相機(jī)采集的所有點(diǎn)云,獲取鋼筋骨架整體點(diǎn)云。實(shí)驗(yàn)結(jié)果表明,該算法獲取實(shí)際預(yù)制鋼筋混凝土構(gòu)件鋼筋骨架整體點(diǎn)云的耗時(shí)約10 min,且點(diǎn)云的誤差約為5 mm。鋼筋骨架整體點(diǎn)云獲取算法可以快速獲取鋼筋骨架整體點(diǎn)云,而且所得點(diǎn)云的精度較高,可以滿足鋼筋骨架質(zhì)量自動(dòng)檢查的要求。
結(jié)構(gòu)光相機(jī);鋼筋骨架;點(diǎn)云;圖優(yōu)化
構(gòu)件生產(chǎn)工廠化是建筑工業(yè)化的重要組成部分[1]。當(dāng)前,在工廠中生產(chǎn)預(yù)制鋼筋混凝土構(gòu)件時(shí),構(gòu)件的鋼筋骨架質(zhì)量檢查主要依賴人工。例如,通過(guò)人工計(jì)數(shù)來(lái)檢查鋼筋數(shù)量,通過(guò)鋼尺測(cè)量來(lái)檢查鋼筋型號(hào)、間距等。由于鋼筋骨架本身較為復(fù)雜,而且規(guī)范[2]要求鋼筋骨架各質(zhì)量檢查項(xiàng)為全數(shù)檢查,所以,依賴人工進(jìn)行鋼筋骨架質(zhì)量檢查存在檢查效率低、耗時(shí)長(zhǎng)、容易存在人為錯(cuò)誤等問(wèn)題。
三維重建、建筑信息模型(building information modeling,BIM)等技術(shù)的發(fā)展為改進(jìn)當(dāng)前構(gòu)件鋼筋骨架(簡(jiǎn)稱“鋼筋骨架”)質(zhì)量檢查現(xiàn)狀提供了可能。首先,基于三維重建技術(shù)可獲得鋼筋骨架的實(shí)際模型。同時(shí),基于BIM技術(shù)可獲得鋼筋骨架的設(shè)計(jì)模型。然后,將實(shí)際模型和設(shè)計(jì)模型自動(dòng)進(jìn)行對(duì)比,即可實(shí)現(xiàn)鋼筋骨架質(zhì)量的自動(dòng)檢查。通常,實(shí)際模型用整體點(diǎn)云表示,設(shè)計(jì)模型用設(shè)計(jì)點(diǎn)云表示[3]。鑒于作者之前已提出從BIM模型生成鋼筋骨架設(shè)計(jì)點(diǎn)云的方法,所以本文聚焦于鋼筋骨架整體點(diǎn)云的生成方法。
當(dāng)下,獲取鋼筋骨架整體點(diǎn)云主要有2種方法。一種方法是基于數(shù)碼圖像獲取鋼筋骨架整體點(diǎn)云[4]。該方法的流程是:首先,用數(shù)碼相機(jī)在不同位置對(duì)鋼筋骨架進(jìn)行拍照,獲取鋼筋骨架數(shù)碼圖像。然后,基于運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(structure from motion,SfM)算法對(duì)這些圖像進(jìn)行處理,生成稀疏鋼筋骨架點(diǎn)云。最后,基于多視角立體視覺(jué)(multi-view stereo,MVS)等算法生成密集鋼筋骨架點(diǎn)云。最后一步之所以必要,是由于稀疏鋼筋骨架點(diǎn)云中點(diǎn)數(shù)少,難以全面反映鋼筋骨架的實(shí)際外觀。該方法的缺點(diǎn)在于,需要拍攝幾十張甚至上百?gòu)垟?shù)碼圖像,且生成密集點(diǎn)云耗時(shí)長(zhǎng)、精度低。
另外一種方法是基于三維激光掃描儀獲取鋼筋骨架整體點(diǎn)云[5-6]。其流程是:首先,尋找一個(gè)合適的位置放置三維激光掃描儀。其次,用三維激光掃描儀對(duì)鋼筋骨架進(jìn)行掃描,獲取鋼筋骨架點(diǎn)云。由于三維激光掃描儀的掃描范圍在幾十米至上百米之間,所以得到的鋼筋骨架點(diǎn)云包含大量無(wú)關(guān)點(diǎn),其來(lái)自鋼筋骨架周圍環(huán)境。最后,用軟件去除這些無(wú)關(guān)點(diǎn),以獲取不包含無(wú)關(guān)點(diǎn)的鋼筋骨架點(diǎn)云。這種方法可以獲得較高精度的鋼筋骨架點(diǎn)云,但也存在如下問(wèn)題:三維激光掃描儀價(jià)格高昂;且在一個(gè)位置掃描的時(shí)間較長(zhǎng);去除大量無(wú)關(guān)點(diǎn)需花費(fèi)大量時(shí)間;若只在一個(gè)位置進(jìn)行掃描,由于鋼筋骨架中鋼筋間距較小,鋼筋的空間分布較為復(fù)雜,所以會(huì)有一部分鋼筋的點(diǎn)云缺失,故需要在多個(gè)位置進(jìn)行掃描。
總體來(lái)看,當(dāng)前研究中用于獲取鋼筋骨架整體點(diǎn)云的方法存在硬件成本高、數(shù)據(jù)處理耗時(shí)長(zhǎng)、所得鋼筋骨架點(diǎn)云有缺失或精度不高等問(wèn)題。鋼筋骨架點(diǎn)云缺失,會(huì)造成無(wú)法檢測(cè)某根鋼筋是否存在的不良影響,進(jìn)而給鋼筋骨架質(zhì)量檢查帶來(lái)很大困難。
考慮到結(jié)構(gòu)光相機(jī)在獲取物體點(diǎn)云時(shí)存在成本低、數(shù)據(jù)處理速度快、所得點(diǎn)云精度較高等優(yōu)點(diǎn)[7],且結(jié)構(gòu)光相機(jī)便于移動(dòng),可以有效減少鋼筋骨架點(diǎn)云的缺失。所以,本文提出基于結(jié)構(gòu)光相機(jī)的鋼筋骨架整體點(diǎn)云獲取算法。
結(jié)構(gòu)光相機(jī)不僅包含RGB鏡頭,還包含結(jié)構(gòu)光投射器和結(jié)構(gòu)光接收器。結(jié)構(gòu)光相機(jī)采集數(shù)據(jù)的原理是:首先,結(jié)構(gòu)光投射器向物體投射有特定形狀的面狀光(稱為結(jié)構(gòu)光,且一般為紅外結(jié)構(gòu)光);然后,結(jié)構(gòu)光接收器獲取從物體反射回來(lái)的光,由于物體表面各個(gè)部位距離結(jié)構(gòu)光相機(jī)的遠(yuǎn)近不同,所以相比投射出的結(jié)構(gòu)光,反射回來(lái)的光有變形;最后,結(jié)構(gòu)光相機(jī)內(nèi)置的處理器對(duì)反射回來(lái)的光進(jìn)行處理,以得到物體表面各點(diǎn)距離結(jié)構(gòu)光相機(jī)的距離,并同時(shí)生成點(diǎn)云和紅外圖像(簡(jiǎn)稱“圖像”)等數(shù)據(jù)。
結(jié)構(gòu)光相機(jī)位姿通常用世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換矩陣[]表示。其中為旋轉(zhuǎn)矩陣,為平移向量。根據(jù)該旋轉(zhuǎn)矩陣和該平移向量,可以計(jì)算出結(jié)構(gòu)光相機(jī)的光心位置。結(jié)構(gòu)光相機(jī)每采集一次數(shù)據(jù),所得點(diǎn)云就對(duì)應(yīng)著一個(gè)新的相機(jī)坐標(biāo)系。相機(jī)坐標(biāo)系以結(jié)構(gòu)光相機(jī)采集數(shù)據(jù)時(shí)光心所在位置為原點(diǎn),以朝向被采集數(shù)據(jù)的物體的方向?yàn)檩S方向。所有相機(jī)坐標(biāo)系共享同一個(gè)世界坐標(biāo)系。通常,在采集數(shù)據(jù)時(shí)依次得到的多個(gè)相機(jī)坐標(biāo)系,世界坐標(biāo)系與第一個(gè)相機(jī)坐標(biāo)系重合。
基于結(jié)構(gòu)光相機(jī)獲取鋼筋骨架整體點(diǎn)云的關(guān)鍵是,獲取結(jié)構(gòu)光相機(jī)高精度的位姿。一般地,對(duì)結(jié)構(gòu)光相機(jī)采集的2張以上圖像進(jìn)行三維重建,就可以得到結(jié)構(gòu)光相機(jī)的位姿。但該位姿的精度不高。為獲取結(jié)構(gòu)光相機(jī)高精度的位姿,本文利用多幅圖像及其對(duì)應(yīng)的多片點(diǎn)云,以結(jié)構(gòu)光相機(jī)位姿為優(yōu)化變量,以多片點(diǎn)云對(duì)齊效果最好為優(yōu)化目標(biāo)進(jìn)行優(yōu)化求解。其基本原理與測(cè)量學(xué)中的平差方法類似。圖1為基于結(jié)構(gòu)光相機(jī)的鋼筋骨架整體點(diǎn)云獲取算法框架。
圖1 算法框架
該算法框架以結(jié)構(gòu)光相機(jī)在多個(gè)位置掃描后采集的鋼筋骨架的多片點(diǎn)云及其對(duì)應(yīng)的多幅圖像為輸入,以鋼筋骨架整體點(diǎn)云為輸出。該算法框架是:首先,分別對(duì)多幅圖像和多片點(diǎn)云進(jìn)行處理。對(duì)于多幅圖像,用colmap[8]軟件進(jìn)行三維重建,得到結(jié)構(gòu)光相機(jī)的無(wú)量綱位姿;對(duì)于多片點(diǎn)云,分別對(duì)每一片點(diǎn)云進(jìn)行預(yù)處理,其目的主要是盡可能去除無(wú)關(guān)點(diǎn)云。其次,從多幅圖像中任意選擇2幅從相鄰位置掃描得到的圖像,根據(jù)這2幅圖像所對(duì)應(yīng)的2片點(diǎn)云以及基于colmap的三維重建結(jié)果,計(jì)算結(jié)構(gòu)光相機(jī)有量綱位姿初始值。該步驟只執(zhí)行一次。然后,根據(jù)有量綱位姿初始值以及預(yù)處理后的多片點(diǎn)云,計(jì)算有量綱位姿間精確的轉(zhuǎn)換矩陣。接著,用圖優(yōu)化方法對(duì)有量綱位姿進(jìn)行優(yōu)化,得到高精度的有量綱位姿。最后,根據(jù)高精度的有量綱位姿將所有點(diǎn)云對(duì)齊,即得到鋼筋骨架整體點(diǎn)云。該算法各個(gè)步驟均通過(guò)編寫程序或調(diào)用其他軟件自動(dòng)實(shí)現(xiàn),無(wú)需人工參與。
需要說(shuō)明的是,該算法框架中使用的colmap是一款基于數(shù)碼圖像的三維重建軟件。其原理是,依照特定算法對(duì)物體的數(shù)碼圖像進(jìn)行處理,獲得物體的點(diǎn)云,同時(shí)得到拍攝數(shù)碼圖像時(shí)相機(jī)的位姿,該位姿無(wú)量綱。在本文中,colmap處理的圖像是結(jié)構(gòu)光相機(jī)生成的紅外圖像。
圖1中,基于colmap的三維重建步驟的作用是基于colmap軟件對(duì)結(jié)構(gòu)光相機(jī)圖像進(jìn)行三維重建,由于不涉及改進(jìn)和創(chuàng)新,所以這里不做詳述。點(diǎn)云預(yù)處理步驟無(wú)需人工參與,其依次使用到降采樣[9]、去噪點(diǎn)[10]等算法,由于這些算法較為成熟,這里亦不再詳解。以下詳細(xì)介紹有量綱位姿初始值計(jì)算、位姿精確轉(zhuǎn)換矩陣計(jì)算、圖優(yōu)化以及多片點(diǎn)云對(duì)齊4個(gè)關(guān)鍵步驟。
由colmap輸出的是無(wú)量綱位姿,本步驟的目的是根據(jù)計(jì)算有量綱位姿,為后續(xù)步驟提供位姿初始值。輸入任意2次相鄰掃描的無(wú)量綱位姿,點(diǎn)云1及對(duì)應(yīng)的圖像1和點(diǎn)云2及對(duì)應(yīng)的圖像2。在本文中,2片點(diǎn)云及其對(duì)應(yīng)的圖像取結(jié)構(gòu)光相機(jī)最早2次掃描所得的數(shù)據(jù)。
根據(jù)colmap算法的原理,無(wú)量綱位姿與有量綱位姿僅在平移向量上相差一個(gè)比例因子。即,假定比例因子為,無(wú)量綱位姿為[],則有量綱位姿為[]。基于此,需首先計(jì)算比例因子,然后對(duì)colmap輸出每個(gè)無(wú)量綱位姿,將其平移向量乘以該比例因子,即可得到有量綱位姿。
本文提出基于光心距離的比例因子為
其中,real為2片點(diǎn)云對(duì)應(yīng)的結(jié)構(gòu)光相機(jī)光心的實(shí)際距離,簡(jiǎn)稱有量綱光心距離;d為根據(jù)無(wú)量綱位姿計(jì)算的這2個(gè)結(jié)構(gòu)光相機(jī)的光心距離,簡(jiǎn)稱無(wú)量綱光心距離。
有量綱光心距離的計(jì)算為:將一片點(diǎn)云對(duì)應(yīng)的結(jié)構(gòu)光相機(jī)光心轉(zhuǎn)換至另一片點(diǎn)云所在的相機(jī)坐標(biāo)系,然后計(jì)算2個(gè)光心間的歐式距離。假定點(diǎn)云1的相機(jī)坐標(biāo)系為coor1,對(duì)應(yīng)的相機(jī)光心為1,點(diǎn)云2的相機(jī)坐標(biāo)系為coor2,對(duì)應(yīng)的相機(jī)光心為2。則有量綱光心距離,即光心2和1距離的具體計(jì)算過(guò)程為,首先,將點(diǎn)云2向點(diǎn)云1進(jìn)行粗配準(zhǔn),得到轉(zhuǎn)換矩陣[initialinitial],該轉(zhuǎn)換矩陣也是coor2向coor1的轉(zhuǎn)換矩陣。粗配準(zhǔn)所用的方法是基于圖像特征的方法[11],由于該方法較為成熟,這里不再詳述。然后,根據(jù)轉(zhuǎn)換矩陣[initialinitial]對(duì)光心2(在相機(jī)坐標(biāo)系coor2中的坐標(biāo)為(0 0 0)T)進(jìn)行坐標(biāo)轉(zhuǎn)換,得到其在相機(jī)坐標(biāo)系coor1中的坐標(biāo),為initial。最后,由于光心1在相機(jī)坐標(biāo)系coor1中坐標(biāo)為(0 0 0)T,所以有量綱光心距離為
無(wú)量綱光心距離的計(jì)算原理是,將2個(gè)無(wú)量綱位姿對(duì)應(yīng)的光心轉(zhuǎn)換至世界坐標(biāo)系,然后計(jì)算2個(gè)光心間的歐式距離。假定無(wú)量綱位姿為[],對(duì)應(yīng)的光心為,該光心在相機(jī)坐標(biāo)系中的坐標(biāo)為,那么光心在世界坐標(biāo)系中的坐標(biāo)的計(jì)算公式為
在分別求得有量綱光心距離和無(wú)量綱光心距離后,即可根據(jù)式(1)計(jì)算比例因子。
由于前一步驟中基于粗配準(zhǔn)計(jì)算的有量綱光心距離存在誤差,從而導(dǎo)致有量綱位姿初始值存在誤差。為了獲取高精度的有量綱位姿,需要先求得有量綱位姿間精確的轉(zhuǎn)換矩陣。
計(jì)算有量綱位姿間精確的轉(zhuǎn)換矩陣的原理是:首先需去除2片點(diǎn)云中的平面點(diǎn)云,然后獲取其共同區(qū)域,接著基于改進(jìn)的TrICP算法對(duì)共同區(qū)域點(diǎn)云進(jìn)行處理,以得到精確的轉(zhuǎn)換矩陣。本步驟為:首先獲取任意2個(gè)有量綱位姿對(duì)應(yīng)的點(diǎn)云,然后用該方法處理該點(diǎn)云得到精確的轉(zhuǎn)換矩陣,即為這2個(gè)有量綱位姿間精確的轉(zhuǎn)換矩陣。
本步驟的目的是計(jì)算高精度的有量綱位姿。
圖優(yōu)化中的圖指的是數(shù)學(xué)圖論中的圖,其由頂點(diǎn)和邊組成,如圖2所示,每個(gè)圓表示圖的頂點(diǎn),圓之間的連線表示圖的邊,以表示與頂點(diǎn)的聯(lián)系。
圖2 圖優(yōu)化示意圖
通常,優(yōu)化的要素主要是優(yōu)化變量和目標(biāo)函數(shù),即通過(guò)求解優(yōu)化變量,使目標(biāo)函數(shù)達(dá)到最大值或最小值。圖優(yōu)化將具體的優(yōu)化問(wèn)題抽象成圖的形式,然后進(jìn)行優(yōu)化。即,需要先識(shí)別問(wèn)題中的優(yōu)化變量和目標(biāo)函數(shù);然后用圖的頂點(diǎn)表示優(yōu)化變量,用圖的邊表示目標(biāo)函數(shù)項(xiàng),該目標(biāo)函數(shù)項(xiàng)與邊所連接的2個(gè)頂點(diǎn)有關(guān),各目標(biāo)函數(shù)項(xiàng)之和構(gòu)成目標(biāo)函數(shù);最后對(duì)圖的各個(gè)頂點(diǎn)表示的優(yōu)化變量進(jìn)行優(yōu)化,使目標(biāo)函數(shù)達(dá)到最大值或最小值。
通過(guò)圖優(yōu)化對(duì)有量綱位姿進(jìn)行優(yōu)化以獲取高精度的有量綱位姿時(shí),即有量綱位姿為優(yōu)化變量,用圖的頂點(diǎn)表示。假定其中一個(gè)頂點(diǎn)表示的優(yōu)化變量為有量綱位姿,與其相鄰的另一個(gè)頂點(diǎn)表示的優(yōu)化變量為有量綱位姿,這2個(gè)有量綱位姿間轉(zhuǎn)換矩陣為,則式子=應(yīng)成立。理論上,2個(gè)有量綱位姿的具體數(shù)值和轉(zhuǎn)換矩陣的具體數(shù)值應(yīng)該滿足該式。實(shí)際上,根據(jù)現(xiàn)有方法無(wú)法直接得到有量綱位姿的高精度數(shù)值,而只能得到轉(zhuǎn)換矩陣的精確數(shù)值,所以,該式并非嚴(yán)格滿足等號(hào)兩邊相等。由此,可以根據(jù)這個(gè)式子構(gòu)建誤差項(xiàng)[12]為
其中,等號(hào)右邊右上方的符號(hào)表示將括號(hào)內(nèi)的反對(duì)稱矩陣轉(zhuǎn)換為向量。該誤差項(xiàng)的二范數(shù)即為連接2個(gè)頂點(diǎn)的邊表示的目標(biāo)函數(shù)項(xiàng)。在用圖優(yōu)化對(duì)有量綱位姿進(jìn)行優(yōu)化時(shí),目標(biāo)函數(shù)為各目標(biāo)函數(shù)項(xiàng)之和,即
優(yōu)化目標(biāo)是目標(biāo)函數(shù)最小。通過(guò)對(duì)各優(yōu)化變量進(jìn)行優(yōu)化,即可得到高精度的有量綱位姿。
在式(5)中,有量綱位姿初始值來(lái)自有量綱位姿初始值的計(jì)算,有量綱位姿間精確轉(zhuǎn)換矩陣來(lái)自位姿精確轉(zhuǎn)換矩陣的計(jì)算。
當(dāng)前,已經(jīng)有成熟的數(shù)據(jù)庫(kù)可用于圖優(yōu)化問(wèn)題。本文通過(guò)g2o庫(kù)來(lái)解決圖優(yōu)化問(wèn)題。g2o[13]是用于優(yōu)化基于圖的非線性誤差函數(shù)的開源C++庫(kù),提供圖優(yōu)化常用頂點(diǎn)和邊的定義以及優(yōu)化求解算法的實(shí)現(xiàn)。
本文根據(jù)圖優(yōu)化所得的高精度有量綱位姿,將所有點(diǎn)云轉(zhuǎn)換至世界坐標(biāo)系,以獲取鋼筋骨架整體點(diǎn)云。
假定圖優(yōu)化結(jié)果中某一有量綱位姿為[optimizedoptimized],其對(duì)應(yīng)點(diǎn)云中的某個(gè)點(diǎn)在相機(jī)坐標(biāo)系中的坐標(biāo)為,則該點(diǎn)轉(zhuǎn)換至世界坐標(biāo)系后,其坐標(biāo)為
對(duì)該點(diǎn)云中的所有點(diǎn)進(jìn)行上述轉(zhuǎn)換,即可實(shí)現(xiàn)該點(diǎn)云從相機(jī)坐標(biāo)系向世界坐標(biāo)系的轉(zhuǎn)換。所有點(diǎn)云均按該點(diǎn)云的坐標(biāo)轉(zhuǎn)換方法進(jìn)行坐標(biāo)轉(zhuǎn)換,即可實(shí)現(xiàn)所有點(diǎn)云從相機(jī)坐標(biāo)系到世界坐標(biāo)系的轉(zhuǎn)換。此時(shí),就得到了鋼筋骨架整體點(diǎn)云。
為了驗(yàn)證本文算法的可行性、速度和精度,開展了相關(guān)實(shí)驗(yàn)。首先,根據(jù)標(biāo)準(zhǔn)圖集實(shí)際制作了鋼筋骨架試件;其次,用結(jié)構(gòu)光相機(jī)掃描鋼筋骨架試件以獲取鋼筋骨架點(diǎn)云,同時(shí)用手持式三維激光掃描儀獲取鋼筋骨架的高精度點(diǎn)云;然后,用本文算法處理鋼筋骨架點(diǎn)云,從而生成鋼筋骨架整體點(diǎn)云,并記錄各步驟所用時(shí)間,以得到本文算法的耗時(shí);最后,將結(jié)構(gòu)光相機(jī)獲取的鋼筋骨架點(diǎn)云與手持式三維激光掃描儀獲取的高精度點(diǎn)云對(duì)比,從而驗(yàn)證本文算法的精度。
本實(shí)驗(yàn)建立的鋼筋骨架試件及其尺寸如圖3所示,該鋼筋骨架試件根據(jù)標(biāo)準(zhǔn)圖集[14]制作。考慮到實(shí)驗(yàn)場(chǎng)地的限制,該鋼筋骨架試件的尺寸相比標(biāo)準(zhǔn)圖集中的尺寸有所縮小,尺度大體上為實(shí)際尺度的1/2。但是,該鋼筋骨架試件中鋼筋類型、間距等與標(biāo)準(zhǔn)圖集保持一致,所以該鋼筋骨架試件保留了標(biāo)準(zhǔn)圖集中鋼筋骨架的復(fù)雜性。
圖3 鋼筋骨架試件
為了更明確區(qū)分手持式三維激光掃描儀得到的高精度鋼筋骨架整體點(diǎn)云以及本文算法得到的鋼筋骨架整體點(diǎn)云,將前者稱為“基準(zhǔn)點(diǎn)云”,后者稱為“算法點(diǎn)云”。以基準(zhǔn)點(diǎn)云為基準(zhǔn),衡量算法點(diǎn)云的精度。
本實(shí)驗(yàn)選擇天遠(yuǎn)FreeScan X3手持式三維激光掃描儀[15]作為獲取基準(zhǔn)點(diǎn)云的傳感器。該傳感器配套了點(diǎn)云處理軟件,用于處理采集的數(shù)據(jù)?;谠搨鞲衅饕约霸撥浖梢灾苯拥玫戒摻罟羌艿恼w點(diǎn)云。該傳感器的主要參數(shù)見(jiàn)表1。
表1 天遠(yuǎn)FreeScan X3主要參數(shù)
用FreeScan X3獲取基準(zhǔn)點(diǎn)云。首先,為了滿足所采用的手持式三維激光掃描儀的使用要求,在圖3所示鋼筋骨架上粘貼一千余個(gè)標(biāo)記點(diǎn)(標(biāo)記點(diǎn)間距離不超過(guò)15 cm),所得鋼筋骨架如圖4所示。其中鋼筋骨架上白色的點(diǎn)即為粘貼的標(biāo)記點(diǎn)。然后,用FreeScan X3對(duì)該鋼筋骨架進(jìn)行掃描。最終,得到的基準(zhǔn)點(diǎn)云如圖5所示。由于標(biāo)記點(diǎn)表面采用反光材料,所以在標(biāo)記點(diǎn)粘貼的位置沒(méi)有點(diǎn)云。這些缺失的點(diǎn)云,不會(huì)影響基準(zhǔn)點(diǎn)云與算法點(diǎn)云的對(duì)比。
在獲取基準(zhǔn)點(diǎn)云的過(guò)程中,在鋼筋骨架上粘貼標(biāo)記點(diǎn)耗時(shí)約75 min,用FreeScan X3掃描鋼筋骨架耗時(shí)約30 min。
本文選用知微傳感DKam 130[16]款結(jié)構(gòu)光相機(jī)作為獲取算法點(diǎn)云的傳感器。該結(jié)構(gòu)光相機(jī)在采集鋼筋骨架數(shù)據(jù)時(shí),能同時(shí)得到點(diǎn)云和對(duì)應(yīng)的紅外圖像。其主要參數(shù)見(jiàn)表2。
圖4 粘貼標(biāo)記點(diǎn)后的鋼筋骨架
圖5 基準(zhǔn)點(diǎn)云
表2 知微傳感DKam 130主要參數(shù)
用結(jié)構(gòu)光相機(jī)在18個(gè)位置對(duì)圖3所示鋼筋骨架采集數(shù)據(jù),這18個(gè)位置的俯視圖如圖6所示。在圖6中,每個(gè)小圓表示一個(gè)掃描位置。由圖6(a)和(b)位置得到的紅外圖像分別如圖7(a)和(b)所示。由于原圖像較暗,較難區(qū)分鋼筋和其他物體,所以圖7中展示的圖像的亮度均較原圖像提升40%。由圖6(a)和(b)位置得到的點(diǎn)云分別如圖8(a)和(b)所示。為清楚區(qū)分鋼筋和其他物體的點(diǎn)云,手動(dòng)將每個(gè)點(diǎn)云中鋼筋點(diǎn)云的顏色設(shè)置為黑色,其他物體設(shè)置為米色。用結(jié)構(gòu)光相機(jī)掃描鋼筋骨架點(diǎn)云18次,大約花費(fèi)3 min。
圖6 結(jié)構(gòu)光相機(jī)掃描位置俯視圖
圖7 結(jié)構(gòu)光相機(jī)所得紅外圖像((a)紅外圖像1;(b)紅外圖像2)
在獲取上述數(shù)據(jù)后,用本文算法對(duì)18幅圖像和18片點(diǎn)云進(jìn)行處理,得到的算法點(diǎn)云如圖9所示。在圖9中,為清楚展示算法點(diǎn)云中哪些點(diǎn)來(lái)自于同一次掃描,將同一次掃描的所有點(diǎn)設(shè)置為同一顏色,不同次掃描的點(diǎn)設(shè)置為其他顏色。該設(shè)置通過(guò)編寫程序自動(dòng)實(shí)現(xiàn)。
本文算法各步驟的耗時(shí)見(jiàn)表3,總用時(shí)為7.81 min,其中各步驟所花時(shí)間通過(guò)在程序中設(shè)置相應(yīng)的代碼獲得??紤]到獲取18片鋼筋骨架點(diǎn)云大約需要3 min,所以從結(jié)構(gòu)光相機(jī)掃描鋼筋骨架到獲取算法點(diǎn)云,需約10 min。對(duì)于實(shí)際鋼筋骨架,在采集數(shù)據(jù)時(shí)可以擴(kuò)大結(jié)構(gòu)光相機(jī)的工作距離,從而增加視場(chǎng)范圍,進(jìn)而使采集的點(diǎn)云片數(shù)與本實(shí)驗(yàn)采集的鋼筋骨架試件點(diǎn)云片數(shù)近似相等。因此,從結(jié)構(gòu)光相機(jī)掃描實(shí)際鋼筋骨架到獲取實(shí)際鋼筋骨架算法點(diǎn)云,亦需要大約10 min。
圖9 算法點(diǎn)云
表3 本文提出的算法各步驟的耗時(shí)(min)
如果用立式三維激光掃描儀掃描圖3鋼筋骨架,為了減少鋼筋點(diǎn)云缺失,應(yīng)在多個(gè)測(cè)站掃描。由于立式三維激光掃描儀在一個(gè)測(cè)站掃描耗時(shí)3~5 min,假定在3個(gè)測(cè)站掃描,則掃描耗時(shí)合計(jì)約12 min。對(duì)在3個(gè)測(cè)站掃描得到的點(diǎn)云進(jìn)行后續(xù)處理,例如去除無(wú)關(guān)點(diǎn)、配準(zhǔn)等,還需要花費(fèi)大量時(shí)間。同時(shí),前文已提到,用手持式三維激光掃描儀掃描圖3鋼筋骨架耗時(shí)約30 min。因此,本文基于結(jié)構(gòu)光相機(jī)獲取鋼筋骨架整體點(diǎn)云算法的耗時(shí)遠(yuǎn)遠(yuǎn)少于基于三維激光掃描儀獲取鋼筋骨架整體點(diǎn)云的耗時(shí)。
為進(jìn)行精度驗(yàn)證,需先將算法點(diǎn)云和基準(zhǔn)點(diǎn)云配準(zhǔn),然后再計(jì)算算法點(diǎn)云的精度。
配準(zhǔn)首先對(duì)算法點(diǎn)云和基準(zhǔn)點(diǎn)云進(jìn)行降采樣,使2個(gè)點(diǎn)云在單位空間內(nèi)的點(diǎn)數(shù)相等。其次,手動(dòng)在2個(gè)點(diǎn)云中選擇三對(duì)點(diǎn),并用程序計(jì)算轉(zhuǎn)換矩陣,從而完成粗配準(zhǔn)。然后,按照精配準(zhǔn)的迭代過(guò)程,即點(diǎn)對(duì)更新、錯(cuò)誤點(diǎn)對(duì)去除、中間轉(zhuǎn)換矩陣計(jì)算3個(gè)步驟,對(duì)2個(gè)點(diǎn)云進(jìn)行精配準(zhǔn),同時(shí)輸出2個(gè)點(diǎn)云中的點(diǎn)對(duì)。配準(zhǔn)好的算法點(diǎn)云和基準(zhǔn)點(diǎn)云如圖10所示。其中,紅色的點(diǎn)來(lái)自于算法點(diǎn)云,綠色的點(diǎn)來(lái)自于基準(zhǔn)點(diǎn)云。
圖10 算法點(diǎn)云與基準(zhǔn)點(diǎn)云配準(zhǔn)結(jié)果
本文用均方根誤差(root mean square error,RMSE)計(jì)算點(diǎn)云的誤差,并以此來(lái)衡量算法點(diǎn)云的精度,即
其中,p和q分別為點(diǎn)對(duì)中來(lái)自算法點(diǎn)云和來(lái)自基準(zhǔn)點(diǎn)云的點(diǎn);( )為求2個(gè)點(diǎn)的歐式距離;為算法點(diǎn)云和基準(zhǔn)點(diǎn)云中點(diǎn)對(duì)的數(shù)量。
最終得到算法點(diǎn)云的RMSE為5.12 mm。這說(shuō)明,本文算法獲取的算法點(diǎn)云的精度與基于手持式三維激光掃描儀獲取的基準(zhǔn)點(diǎn)云的精度相差不大,可以滿足實(shí)際工程對(duì)鋼筋骨架數(shù)量和間距檢查的要求。
根據(jù)文獻(xiàn)[17],基于數(shù)碼圖像獲取點(diǎn)云時(shí),點(diǎn)云的誤差大于1 cm。因此,本文算法生成的鋼筋骨架整體點(diǎn)云的精度高于基于數(shù)碼圖像獲取的鋼筋骨架整體點(diǎn)云的精度。
綜上所述,與基于圖像獲取鋼筋骨架整體點(diǎn)云和基于三維激光掃描儀獲取鋼筋骨架整體點(diǎn)云相比,本文算法具有速度快、精度較高的優(yōu)點(diǎn)。
在實(shí)際場(chǎng)景中的鋼筋骨架尺寸約為本實(shí)驗(yàn)中用到的鋼筋骨架尺寸的2倍。因此,結(jié)構(gòu)光相機(jī)采集數(shù)據(jù)的次數(shù)增加,即數(shù)據(jù)采集的耗時(shí)增加,同時(shí),本文算法各步驟的耗時(shí)亦會(huì)增加,但并非呈幾何倍數(shù)增加。實(shí)際上,在實(shí)際場(chǎng)景中,可以通過(guò)多個(gè)結(jié)構(gòu)光相機(jī)同時(shí)采集數(shù)據(jù)來(lái)降低數(shù)據(jù)采集的耗時(shí)。同時(shí),可以通過(guò)提升硬件性能、使用并行計(jì)算等方式,降低算法各步驟的耗時(shí)。因此,本文算法在實(shí)際場(chǎng)景中具有可行性。
當(dāng)前,基于數(shù)碼相機(jī)和三維激光掃描儀獲取鋼筋骨架整體點(diǎn)云的方法存在成本高、耗時(shí)長(zhǎng)等問(wèn)題。針對(duì)這一問(wèn)題,本文提出了基于結(jié)構(gòu)光相機(jī)的鋼筋骨架整體點(diǎn)云獲取算法,并對(duì)該算法的框架和關(guān)鍵步驟進(jìn)行詳細(xì)介紹。
相比于基于數(shù)碼相機(jī)和基于三維激光掃描儀獲取鋼筋骨架點(diǎn)云的方法,本文算法可以在10 min左右獲得精度較高的實(shí)際鋼筋骨架點(diǎn)云,其誤差為5 mm左右。由此說(shuō)明,本文算法能夠快速獲取鋼筋骨架整體點(diǎn)云,且精度較高,為鋼筋骨架質(zhì)量自動(dòng)檢查奠定良好的基礎(chǔ)。
[1] 王俊, 趙基達(dá), 胡宗羽. 我國(guó)建筑工業(yè)化發(fā)展現(xiàn)狀與思考[J]. 土木工程學(xué)報(bào), 2016, 49(5): 1-8.
WANG J, ZHAO J D, HU Z Y. Review and thinking on development of building industrialization in China[J]. China Civil Engineering Journal, 2016, 49(5): 1-8 (in Chinese).
[2] 北京市質(zhì)量技術(shù)監(jiān)督局, 等. DB11/T 968-2013預(yù)制混凝土構(gòu)件質(zhì)量檢驗(yàn)標(biāo)準(zhǔn)[S]. 北京: 中國(guó)建筑標(biāo)準(zhǔn)設(shè)計(jì)研究院, 2013.
Beijing Quality and Technical Supervision Bureau, et al. DB11/T 968-2013 Quality acceptance inspection for precast concrete components[S]. Beijing: China Institute of Building Standard Design & Research, 2013 (in Chinese).
[3] 劉世龍, 馬智亮. 基于BIM的鋼筋骨架語(yǔ)義設(shè)計(jì)點(diǎn)云自動(dòng)生成算法[J]. 圖學(xué)學(xué)報(bào), 2021, 42(5): 816-822.
LIU S L, MA Z L. BIM-based algorithm for automatic generation of semantic as-designed point cloud of reinforcement skeleton[J]. Journal of Graphics, 2021, 42(5): 816-822 (in Chinese).
[4] GOLPARVAR-FARD M, GHADIMI B, SAIDI K S, et al. Image-based 3D mapping of rebar location for automated assessment of safe drilling areas prior to placing embedments in concrete bridge decks[C]//Construction Research Congress 2012. Reston: American Society of Civil Engineers, 2012: 960-970.
[5] WANG Q, CHENG J C P, SOHN H. Automated estimation of reinforced precast concrete rebar positions using colored laser scan data[J]. Computer-Aided Civil and Infrastructure Engineering, 2017, 32(9): 787-802.
[6] KIM M K, THEDJA J P P, WANG Q. Automated dimensional quality assessment for formwork and rebar of reinforced concrete components using 3D point cloud data[J]. Automation in Construction, 2020, 112: 103077.
[7] ZHANG Y M, CHEN C, WU Q, et al. A kinect-based approach for 3D pavement surface reconstruction and cracking recognition[J]. IEEE Transactions on Intelligent Transportation Systems, 2018, 19(12): 3935-3946.
[8] SCHONBERGER J L, ZHENG E, POLLEFEYS M, et al. Colmap[EB/OL]. [2021-03-25]. https://colmap.github.io/.
[9] RADU B R, STEVE C. Downsampling a PointCloud using a VoxelGrid filter[EB/OL]. [2021-03-25]. https://pointclouds. org/documentation/tutorials/voxel_grid.html.
[10] RADU B R, STEVE C. Removing outliers using a StatisticalOutlierRemoval filter[EB/OL]. [2021-03-25]. https:// pointclouds.org/documentation/tutorials/statistical_outlier.html.
[11] HENRY P, KRAININ M, HERBST E, et al. RGB-D mapping: using Kinect-style depth cameras for dense 3D modeling of indoor environments[J]. The International Journal of Robotics Research, 2012, 31(5): 647-663.
[12] 高翔, 張濤, 劉毅. 視覺(jué)SLAM十四講: 從理論到實(shí)踐[M]. 北京: 電子工業(yè)出版社, 2017: 273-285.
GAO X, ZHANG T, LIU Y. Fourteen lectures on visual SLAM: from theory to practice[M]. Beijing: Publishing House of Electronics industry, 2017: 273-285 (in Chinese).
[13] KUEMMERLE R, GRISETTI G, STRASDAT H, et al. g2o - General graph optimization[EB/OL]. [2021-03-25]. https:// github.com/RainerKuemmerle/g2o.
[14] 中華人民共和國(guó)住房和城鄉(xiāng)建設(shè)部. 裝配式混凝土結(jié)構(gòu)表示方法及示例: 15G107-1[S]. 北京: 中國(guó)計(jì)劃出版社, 2015.
Ministry of Housing and Urban-Rural Development of the People's Republic of China. Representation method and example of fabricated concrete structure (shear wall structure): 15G107-1[S]. Beijing: China Planning Press, 2015 (in Chinese).
[15] 北京天遠(yuǎn)三維科技股份有限公司. FreeScan X3[EB/OL]. [2021-03-25]. https://www.3dscan.com.cn/product/7.html.
Beijing Tianyuan 3D Technology Co., Ltd. FreeScan X3[EB/OL]. [2021-03-25]. https://www.3dscan.com.cn/product/ 7.html (in Chinese).
[16] 知微傳感. 高精度工業(yè)3D相機(jī)D130[EB/OL]. [2021-04-10]. https://www.zhisensor.com/?page_id=13656.
Zhisensor. High-precision industrial 3D camera D130[EB/OL]. [2021-04-10]. https://www.zhisensor.com/?page_id=13656 (in Chinese).
[17] ZHOU Z X, GONG J, GUO M Y. Image-based 3D reconstruction for posthurricane residential building damage assessment[J]. Journal of Computing in Civil Engineering, 2016, 30(2): 04015015: 1-04015015: 14.
A method for obtaining the complete point cloud of reinforcement skeletons based on a structured light camera
LIU Shi-long, MA Zhi-liang
(Department of Civil Engineering, Tsinghua University, Beijing 100084, China)
In order to obtain the high-precision complete point cloud of a reinforcement skeleton required for the automatic quality inspection, an algorithm was proposed for obtaining the complete point cloud of reinforcement skeletons based on a structured light camera. Firstly, 3D reconstruction was carried out for multiple reinforcement skeleton images collected using a structured light camera, thus obtaining the dimensionless poses of the structured light camera. Secondly, the dimensional poses were obtained according to the dimensionless poses. Then, the precise transformation matrix between these dimensional poses was calculated. Next, based on these dimensional poses and the precise transformation matrix between them, graph optimization was employed to optimize these dimensional poses to obtain those with high precision. Finally, point clouds obtained using the structured light camera were aligned based on the dimensional poses with high precision, which can generate the complete point cloud of the reinforcement skeleton. The experimental results show that it would take the proposed algorithm about 10 minutes to obtain the complete point cloud of the reinforcement skeleton of a practical precast concrete component, and the error of the point cloud is around 5 mm. It is concluded that the proposed algorithm can quickly obtain the complete point cloud of the reinforcement skeleton, with high accuracy, which can meet the requirement of the automatic quality inspection of the reinforcement skeleton.
structured light camera; reinforcement skeleton; point cloud; graph optimization
16 June,2021;
National Natural Science Foundation of China (51678345)
LIU Shi-long (1991-), PhD candidate. His main research interest covers IT in civil engineering. E-mail:erickrt@163.com
TP 391
10.11996/JG.j.2095-302X.2022040633
A
2095-302X(2022)04-0633-08
2021-06-16;
2022-03-08
8 March,2022
國(guó)家自然科學(xué)基金項(xiàng)目(51678345)
劉世龍(1991-),男,博士研究生。主要研究方向?yàn)橥聊竟こ绦畔⒓夹g(shù)。E-mail:erickrt@163.com
馬智亮(1963-),男,教授,博士。主要研究方向?yàn)橥聊竟こ绦畔⒓夹g(shù)。E-mail:mazl@tsinghua.edu.cn
MA Zhi-liang (1963-), professor, Ph.D. His main research interest covers IT in civil engineering. E-mail:mazl@tsinghua.edu.cn