本發(fā)明屬于三維點(diǎn)云成像技術(shù)領(lǐng)域,涉及到一種將激光采集到的無序三維點(diǎn)云轉(zhuǎn)化為無畸變圖像的方法。
背景技術(shù):
視覺圖像能夠提供豐富的場(chǎng)景感知信息,因此圖像處理技術(shù)已成為相關(guān)領(lǐng)域的研究重點(diǎn)與熱點(diǎn)。通常圖像數(shù)據(jù)的獲取是利用視覺傳感器,其數(shù)據(jù)在獲取過程中容易受到光照強(qiáng)度變化等環(huán)境因素的影響,而激光點(diǎn)云數(shù)據(jù)獲取過程不受這些環(huán)境因素的影響,因此利用激光點(diǎn)云數(shù)據(jù)來生成圖像,不但能夠克服光照強(qiáng)度變化對(duì)成像的影響,更能發(fā)揮出激光精確測(cè)距的優(yōu)勢(shì)。傳統(tǒng)點(diǎn)云成像方法中,有深度圖、方位角圖等成像方法,但是他們都有一定的局限性。
深度圖成像方法是通過把點(diǎn)云數(shù)據(jù)的距離信息直接映射為灰度值,從而生成灰度圖像,參考文獻(xiàn)(anguelovd,dulongc,filipd,etal.googlestreetview:capturingtheworldatstreetlevel[j].computer,2010(6):32-38.)。這種成像方法的優(yōu)點(diǎn)是成像原理簡單、計(jì)算量小,缺點(diǎn)是只能針對(duì)有序點(diǎn)云,在圖像細(xì)節(jié)和邊緣的描述上不理想,而且生成的圖像畸變較大,容易對(duì)后續(xù)場(chǎng)景理解造成影響。
方位角圖成像方法是將每個(gè)激光點(diǎn)對(duì)應(yīng)的方位角映射為對(duì)應(yīng)像素的灰度值。激光點(diǎn)的方位角定義為兩個(gè)向量的夾角,其中一個(gè)向量為視點(diǎn)到當(dāng)前激光點(diǎn)的向量,另一個(gè)向量是當(dāng)前激光點(diǎn)到其鄰近的一個(gè)激光點(diǎn)的向量,具體可參考文獻(xiàn)(scaramuzzad,haratia,siegwartr.extrinsicselfcalibrationofacameraanda3dlaserrangefinderfromnaturalscenes[c].intelligentrobotsandsystems,2007.iros2007.ieee/rsjinternationalconferenceon.ieee,2007:4164-4169)。文獻(xiàn)(zhuangy,liy,andwangw.robustindoorscenerecognitionbasedon3dlaserscanningandbearingangleimage[c].inproceedingoftheieeeinternationalconferenceonroboticsandautomation(icra),2011.)以方位角圖成像方法為基礎(chǔ),將定點(diǎn)掃描的三維點(diǎn)云數(shù)據(jù)轉(zhuǎn)換為二維方位角圖,進(jìn)而對(duì)場(chǎng)景進(jìn)行理解,其解決了深度圖成像方法在場(chǎng)景細(xì)節(jié)、邊緣以及輪廓描述上的不足。但這種成像方法只能應(yīng)用于三維有序點(diǎn)云,對(duì)于無序點(diǎn)云是無法生成方位角圖的,而且方位角圖成像方法沒有考慮到正常圖像成像的原理,會(huì)導(dǎo)致生成的圖像存在明顯畸變。這些缺陷一方面會(huì)帶來方位角圖應(yīng)用的局限,另一方面也會(huì)對(duì)后續(xù)環(huán)境理解造成困難。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)傳統(tǒng)方位角圖成像方法的局限性,本發(fā)明提出了一種無序三維點(diǎn)云的無畸變成像方法。通過三維激光對(duì)周圍環(huán)境進(jìn)行掃描,得到一個(gè)場(chǎng)景全局坐標(biāo)系下的點(diǎn)云數(shù)據(jù)。接著設(shè)置視點(diǎn),將點(diǎn)云從全局坐標(biāo)系變換到視覺坐標(biāo)系。然后利用映射矩陣,將三維點(diǎn)云無畸變地映射到一個(gè)二維平面,此二維平面上的每一個(gè)點(diǎn)都對(duì)應(yīng)一個(gè)實(shí)際三維坐標(biāo)。再將二維平面平均分成r×c個(gè)柵格,r為行數(shù),其中c為列數(shù)。若一個(gè)柵格中存在多個(gè)三維點(diǎn),只保留一個(gè)離視點(diǎn)最近的三維點(diǎn)。將二維平面剩下的三維點(diǎn)按r×c的行列關(guān)系存入到一個(gè)r×c的二維數(shù)組。最后利用這些序列化之后的點(diǎn)云數(shù)據(jù)生成紋理清晰的無畸變二維灰度圖像。
本發(fā)明的技術(shù)方案如下:
(1)全局點(diǎn)云的生成
利用配準(zhǔn)算法將原始三維點(diǎn)云數(shù)據(jù)進(jìn)行連續(xù)配準(zhǔn),得到全局坐標(biāo)系下的點(diǎn)云數(shù)據(jù)。點(diǎn)云配準(zhǔn)算法包括icp算法和ndt算法,這里選用icp配準(zhǔn)算法,icp算法是最常用的點(diǎn)云精確配準(zhǔn)方法,算法在每次迭代的過程中,對(duì)點(diǎn)云數(shù)據(jù)的每一點(diǎn),在模型點(diǎn)云中尋找歐式距離最近點(diǎn)作為對(duì)應(yīng)點(diǎn),通過這組對(duì)應(yīng)點(diǎn)使目標(biāo)函數(shù)最小化:
其中,q為模型點(diǎn)云,p為需要校準(zhǔn)的點(diǎn)云。通過上式得到最優(yōu)的平移向量t和旋轉(zhuǎn)矩陣r,將平移向量t和旋轉(zhuǎn)矩陣r作用到點(diǎn)云數(shù)據(jù)上,得到新的點(diǎn)云數(shù)據(jù)帶入下次迭代過程。一般采用通過計(jì)算其特征點(diǎn)之間的旋轉(zhuǎn)平移矩陣,降低此步驟的時(shí)間消耗,最終將兩幅點(diǎn)云進(jìn)行配準(zhǔn)。
(2)全局坐標(biāo)系到視覺坐標(biāo)系的轉(zhuǎn)換
得到全局坐標(biāo)系下的點(diǎn)云數(shù)據(jù)后,將全局坐標(biāo)系下的點(diǎn)云坐標(biāo)變換到視覺坐標(biāo)系。其中需要注意的是全局坐標(biāo)系是右手坐標(biāo)系,視覺坐標(biāo)系是左手坐標(biāo)系。需要求解一個(gè)矩陣t使得:
pe=tpw(2)
其中,pe是視覺坐標(biāo)系的坐標(biāo),pw是全局坐標(biāo)系的坐標(biāo)。
這里默認(rèn)生成的點(diǎn)云數(shù)據(jù),地平面平行于全局坐標(biāo)系的xy平面,且平行于視覺坐標(biāo)系的xz平面。為了方便二維圖像的生成以及映射矩陣的求解,這里設(shè)定全局坐標(biāo)系的z軸平行于視覺坐標(biāo)系的y軸。設(shè)視點(diǎn)在全局坐標(biāo)系下的坐標(biāo)為p(x0,y0,z0),如圖1,首先是求解平移變換矩陣:
令平移后新坐標(biāo)系繞x′軸逆時(shí)針旋轉(zhuǎn)90度,如圖2,則旋轉(zhuǎn)矩陣為:
將新坐標(biāo)系繞y′軸逆時(shí)針旋轉(zhuǎn)θ角,如圖3,則旋轉(zhuǎn)矩陣為:
將坐標(biāo)系從右手坐標(biāo)系變成左手坐標(biāo)系,如圖4,z軸反向:
則從全局坐標(biāo)系到視覺坐標(biāo)系的變換矩陣為:
t=t4t3t2t1(7)
(3)映射矩陣的計(jì)算
在點(diǎn)云完成從全局坐標(biāo)系到視覺坐標(biāo)系的變換后,進(jìn)行三維模型到二維平面的投影,這是一個(gè)三維到二維的過程。投影變換即是調(diào)整照相機(jī)的焦距,它模擬了為照相機(jī)選擇鏡頭的過程。
視錐體是一個(gè)三維棱臺(tái),它的位置和照相機(jī)位置相關(guān),視錐體的形狀決定了模型如何從照相機(jī)空間投影到屏幕上。最常見的透視投影,使得離照相機(jī)近的物體投影后較大,而離照相機(jī)較遠(yuǎn)的物體投影后較小。透視投影使用棱錐作為視錐體,照相機(jī)位于棱錐的椎頂,如圖5。該棱錐被前后兩個(gè)平面截?cái)?圖中兩個(gè)灰色平面),中間形成一個(gè)棱臺(tái),叫做平截體,只有位于平截體內(nèi)部的模型才是可見的。
透視投影的目的是將上面的棱臺(tái),如圖6中的灰色三維部分,轉(zhuǎn)換為一個(gè)立方體,如圖7。這個(gè)變換的過程是將棱臺(tái)較小的部分放大,較大的部分縮小,以形成最終的立方體。此為投影變換會(huì)產(chǎn)生近大遠(yuǎn)小效果的原因。變換后的x坐標(biāo)范圍是[-1,1],y坐標(biāo)范圍是[-1,1],z坐標(biāo)范圍是[0,1]。
求映射矩陣分為兩個(gè)部分,第一部分是從平截體內(nèi)一點(diǎn)投影到近剪裁平面的過程,第二部分是由近剪裁平面縮放的過程。假設(shè)平截體內(nèi)一點(diǎn)p(x,y,z)在近剪裁平面上的投影是p′(x′,y′,z′),而p′(x′,y′,z′)經(jīng)過縮放后的最終坐標(biāo)設(shè)為p″(x″,y″,z″)。假設(shè)所求的映射矩陣為m,那么根據(jù)矩陣乘法可知,有如下等式成立。
p″=mp(9)
對(duì)于第一部分,為了簡化問題,先考慮yoz平面上的投影情況。如圖8,假設(shè)平截體內(nèi)一點(diǎn)p(x,y,z)在近剪裁平面上的投影是p′(x′,y′,z′)。由三角形相似,有下面等式成立。
則:
對(duì)于第二部分,p′縮放的過程,假設(shè)近裁剪面的寬度為a(沿y軸方向),高度為b(沿x軸方向),需要縮放后映射面的高度為2,寬度為2。
則:
當(dāng)平截體內(nèi)的點(diǎn)投影到近剪裁平面的時(shí)候,所有位于近剪裁平面上的點(diǎn),其z′值都是n,由圖8可知,所有位于線段p′p上的點(diǎn),最終都會(huì)投影到p′點(diǎn),如果這條線段上有多個(gè)點(diǎn),最終保留離觀察點(diǎn)最近的點(diǎn)。對(duì)z坐標(biāo)的倒數(shù)進(jìn)行插值,將z″寫成z的一次表達(dá)式形式,參考書籍(mathematicsfor3dgameprogrammingandcomputergrahpics3rdsection5.4)。
在映射前,z的范圍[n,f],這里n和f分別是近遠(yuǎn)兩個(gè)剪裁平面到原點(diǎn)的距離,在映射后,z″的范圍是[0,1],帶入上式,可得:
則:
綜合公式10、公式14和公式17,得
再乘以z(不改變齊次坐標(biāo)的大小),得到如下等式。
于是所求矩陣為(令w=1):
經(jīng)過變換后,x″的范圍是[-1,1],y″的范圍是[-1,1],變換到圖像坐標(biāo)系上,圖像橫坐標(biāo)u的范圍是[0,c],縱坐標(biāo)v的范圍是[0,r],利用一次方程變換。其中r、c為圖像坐標(biāo)系的行數(shù)和列數(shù)。
完成對(duì)三維點(diǎn)云到二維圖像的無畸變映射。
(4)基于柵格的序列化
將上一步驟二維圖像平面平均分成r×c個(gè)柵格,r為行數(shù),c為列數(shù),如圖9,統(tǒng)計(jì)每一個(gè)柵格里的映射點(diǎn)數(shù),保留每個(gè)柵格里離視點(diǎn)最近的一個(gè)點(diǎn),如圖10,存為r×c的二維數(shù)組,完成對(duì)無序點(diǎn)云的有序化。
(5)二維灰度圖像的計(jì)算
得到有序化之后的點(diǎn)云數(shù)據(jù),接著對(duì)有序化之后的點(diǎn)云數(shù)據(jù)進(jìn)行二維灰度圖像的計(jì)算,計(jì)算方法如圖11所示,設(shè)當(dāng)前第i行j列的激光點(diǎn)為pi,j,取其相鄰的一個(gè)激光點(diǎn)pi-1,j+1。設(shè)當(dāng)前激光點(diǎn)到相鄰激光點(diǎn)的向量為vp,為了描述向量vp在三維空間中的方位,使用視點(diǎn)到當(dāng)前激光點(diǎn)的向量v0作為參考向量vrefer,計(jì)算參考向量vrefer與vp的夾角θi,j,即參考向量夾角,再將θi,j映射至灰度0-255范圍,即可得到激光點(diǎn)pi,j在二維灰度圖像中的像素值:
其中,gij為圖像第i行j列的灰度值。
本發(fā)明的有益效果為生成了紋理清晰的無畸變二維灰度圖像,克服了傳統(tǒng)方位角圖成像方法只能應(yīng)用于有序點(diǎn)云且生成的圖像存在畸變的局限性,同時(shí)保留了傳統(tǒng)方位角圖成像方法紋理清晰的優(yōu)勢(shì)。
附圖說明
圖1為全局坐標(biāo)系與視覺坐標(biāo)系的平移關(guān)系圖。
圖2為視覺坐標(biāo)系繞x′軸逆時(shí)針旋轉(zhuǎn)90度圖。
圖3為視覺坐標(biāo)系繞y′軸逆時(shí)針旋轉(zhuǎn)θ度圖。
圖4為視覺坐標(biāo)系從右手系轉(zhuǎn)變到左手系圖。
圖5為一個(gè)立方體映射到二維平面的示意圖。
圖6為映射投影模型的棱臺(tái)圖。
圖7為映射投影模型縮放的立方體圖。
圖8為映射投影計(jì)算方式示意圖。
圖9為點(diǎn)云映射到二維柵格示意圖。
圖10為柵格保留唯一點(diǎn)示意圖。
圖11為二維灰度圖像計(jì)算示意圖。
圖12為一副場(chǎng)景的三維激光點(diǎn)云。
圖13為圖12對(duì)應(yīng)的方位角圖。
具體實(shí)施方式
以下具體闡述本發(fā)明的實(shí)施方案。本發(fā)明具體實(shí)施過程中使用的是16線三維激光來進(jìn)行無序三維點(diǎn)云無畸變圖像生成的實(shí)驗(yàn)。32、64線激光及其他三維激光均適用于本發(fā)明所提方法。
以本發(fā)明三維激光傳感器為例,其是16線三維激光,其水平掃描角度是360度,垂直掃描角度為±15度。可工作的頻率為5-20hz,當(dāng)工作在5hz、10hz和20hz時(shí),水平角度的分辨率為0.1度、0.2度和0.4度,這里選擇工作頻率為10hz,每一幀的激光點(diǎn)云數(shù)量為28800個(gè)點(diǎn)。
第一步,選定一個(gè)場(chǎng)景,場(chǎng)景的選擇無特定要求,利用三維激光連續(xù)運(yùn)動(dòng)采集該場(chǎng)景的點(diǎn)云數(shù)據(jù)。將采集的數(shù)據(jù)進(jìn)行基本的噪聲過濾,再對(duì)每兩幀之間的點(diǎn)云進(jìn)行連續(xù)icp配準(zhǔn),得到全局三維點(diǎn)云,如圖12。
第二步,設(shè)置視點(diǎn),把點(diǎn)云數(shù)據(jù)從全局坐標(biāo)系變換到視覺坐標(biāo)系。視點(diǎn)坐標(biāo)為(10,-5,2),旋轉(zhuǎn)角度θ為90度,求得的變換矩陣t為:
第三步,求解映射矩陣,將無序三維點(diǎn)云無畸變地映射到二維平面,近遠(yuǎn)兩個(gè)剪裁平面到原點(diǎn)的距離分別為1米和40米,近裁剪面的高度和寬度分別為2.8米和3.5米。映射矩陣t為:
變換到圖像坐標(biāo)系的大小為400×300,r為400,c為300。
第四步,接著根據(jù)序列化柵格,將二維圖像平面平均分成400×300個(gè)柵格。統(tǒng)計(jì)每一個(gè)柵格里的映射點(diǎn)數(shù),保留每個(gè)柵格里離視點(diǎn)最近的一個(gè)點(diǎn),存到400×300的二維數(shù)組。完成對(duì)無序點(diǎn)云的有序化。
第五步,根據(jù)序列化之后的數(shù)據(jù),生成該場(chǎng)景的二維灰度圖像,如圖13。