專利背景
點雲就是大量具有三維空間坐標的點的集合,可以通過地面移動測量系統、地面定點三維雷射掃瞄器等設備獲取;把點雲與同步採集的圖像進行融合,給每一個點賦予其實際材質的顏色,就獲得了真彩色點雲。
街景影像也稱為全景影像或街景,本身是一張或多張圖片,可以通過其投影模型把這些圖像還原為360°全景。常用的投影模型有球面投影、立方體投影、柱面投影等。截至2014年7月,Google街景、騰訊街景、百度街景提供的街景服務已被廣泛認可。
可量測影像指可以從影像中獲取像素的三維坐標,可以通過與影像匹配的景深影像與POS信息聯合來計算像素的三維坐標。景深影像是一種特殊的圖像或圖片,其每一個像素存儲的不是顏色值,而是一個表示距離或深度的數值。街景雖然給人帶來真實感,但其採集相機通常架設在採集車輛的頂部,距離地面的高度比較低,無法提供俯視地面的觀看模式,並且採集數據時,全景底部被車輛本身遮擋,全景相機也無法採集其底部局部區域,造成全景底部通常是黑色或無用的車身影像。
截至2014年7月,街景影像套用中存在以下問題與不足:
1、街景數據底部被設備遮擋,底部無影像數據,無法進行鳥瞰;
2、點雲數據量太大,無法直接在網際網路套用中使用。
3、街景影像本身沒有景深圖像,無法進行測量。
4、普通街景屬於一次曝光成型,無法對其中的影像進行特定專題過濾。比如只顯示地面一定高度內的街景影像,只顯示道路一側的街景影像等。
發明內容
專利目的
《基於真彩色點雲的街景影像生成方法》為了有效的套用真彩色點雲,並彌補普通街景影像的不足。
技術方案
《基於真彩色點雲的街景影像生成方法》提供了一種基於真彩色點雲的街景影像生成方法,其特徵在於包括以下步驟:
步驟一、從點雲檔案讀入點雲到集合,記為U={Pi=(xi,yi,zi,ri,gi,bi)|1≤i≤N};N為點雲集合中點的數量,N為正整數,i為正整數且i的初始值為1;點雲集合中第i個點記為Pi,xi,yi和zi是點Pi的三維世界坐標;ri,gi,bi是點Pi的紅、綠、藍三元色;
設定準備生成的街景影像的位置與姿態為POS=(X,Y,Z,yaw,pitch,roll),其中X、Y和Z為街景影像的坐標位置;yaw,pitch和roll分別為街景影像的偏航值、俯仰值、側滾值;
設定距離閥值Dist,其為點雲點到街景影像坐標的最大距離;
將街景影像的像素寬度初始化為W,將街景影像的像素高度初始化為H,H=W/2,將景深影像的像素寬度初始化為λW、將景深影像的像素高度初始化為λH,0<λ≤1;將景深影像中各像素的深度值初始化為大於Dist的任意值;
步驟二、設定p為P
i在街景影像坐標系中的點坐標,當
時執行步驟六;否則計算
得到街景影像坐標系中的點坐標,x、y和z為點p的三個坐標分量;
步驟三、將街景影像坐標系中的點坐標p轉換成街景影像的uv坐標:
計算方位角
,方位角α為原點O、點p的連線與XOZ平面的夾角;
計算方位角
,方位角β為原點O、點p的連線在XOZ平面的投影與X軸的夾角;
當x<0且z>0時,計算β=180-β;當x<0且z<0時,計算β=-180-β;
計算β=270-β,當β≥360時,計算β=β-360;
計算u=(90+β)/180和v=β/360;
步驟四、計算街景影像中的像素坐標(I,J),I=v(W-1),J=(1-u)(H-1);
計算景深影像中的像素坐標(I1,J1),I1=v(λW-1),J1=(1-u)(λH-1);
步驟五、當景深
小於景深圖像中(I
1,J
1)像素代表的深度值時,將P
i的r
i、g
i、b
i顏色值賦給街景影像的(I,J)像素,同時把所述景深L賦給景深影像中的(I
1,J
1)像素;
步驟六、執行i=i+1,判斷是否i≤N,當i≤N時,返回執行步驟二;否則保存街景影像以及景深影像。
採用以上技術方案,把海量的點雲數據通過投影生成街景影像,使得數據量大大減少,更加適合網際網路套用。同步生成的景深圖像配合街景影像,可以對街景影像中可見的點進行三維坐標計算,使其滿足可量測的要求。《基於真彩色點雲的街景影像生成方法》生成的街景影像的位置與姿態可以任意設定,不受數據採集線路的約束。
較佳的,還包括對街景影像中所有非空像素進行三維坐標解算的步驟:
A1、對於街景影像中的像素(I,J),如果其顏色不為空,計算其uv坐標;u=1-J/(H-1),v=I/(W-1);根據uv坐標計算該像素對應的景深影像中的坐標(I1,J1),I1=v(λW-1),J1=(1-u)(λH-1);並得到坐標(I1,J1)的景深L;
A2、根據像素(I,J)的uv坐標計算像素(I,J)在街景影像坐標系中對應的方位角α和β:α=270-360u,β=180v-90;
A3、根據所述方位角α、β和景深L,計算像素(I,J)在街景影像坐標系中對應的三維坐標
,x=Lcos(α)cos(β),y=Lsin(α),z=Lcos(α)sin(β);
A4、把p的坐標轉換到世界坐標系下:計算
得到像素(I,J)在世界坐標系中對應的三維坐標。採用以上技術方案能夠對街景影像中所有非空像素進行三維坐標解算。
較佳的,所述步驟一中還包括計算旋轉矩陣的步驟;旋轉矩陣R=inv(R
yaw·R
pitch·R
roll):
,
,
,所述inv為矩陣逆。旋轉矩陣就是把坐標系下的點進行旋轉,轉換到其它坐標系下的矩陣,是該領域內技術人員公知的基礎知識,在此不再贅述。
進一步的,步驟一後還包括對點雲進行過濾的步驟。採用該技術方案,可以通過對點雲設定過濾條件,只生成特定專題的街景影像。
有益效果
1、把海量的點雲數據,通過投影生成街景影像,使得數據量大大減少,更加適合網際網路套用。
2、同步生成的景深圖像配合街景影像,可以對街景影像中可見的點進行三維坐標計算,使其滿足可量測的要求。
3、生成的街景影像的位置與姿態可以任意設定,不受數據採集線路的約束。
4、可以通過對點雲設定過濾條件,只生成特定專題的街景影像,甚至可以把多個專題的全景影像進行疊加顯示。
附圖說明
圖1是《基於真彩色點雲的街景影像生成方法》一具體實施方式的流程示意圖。
技術領域
《基於真彩色點雲的街景影像生成方法》屬於可量測街景影像領域,特別是涉及一種基於真彩色點雲的街景影像生成方法。
權利要求
1.一種基於真彩色點雲的街景影像生成方法,其特徵在於包括以下步驟:
步驟一、從點雲檔案讀入點雲到集合U,記為U={Pi=(xi,yi,zi,ri,gi,bi)|1≤i≤N};N為點雲集合U中點的數量,N為正整數,i為正整數且i的初始值為1;點雲集合中第i個點記為Pi,xi,yi和zi是點Pi的三維世界坐標;ri,gi,bi是點Pi的紅、綠、藍三元色;設定準備生成的街景影像的位置與姿態為POS=(X,Y,Z,yaw,pitch,roll),其中X、Y和Z分別為街景影像的三維坐標位置;yaw,pitch和roll分別為街景影像的偏航值、俯仰值、側滾值;設定距離閥值Dist,其為點雲點到街景影像坐標的最大距離;將街景影像的像素寬度初始化為W,將街景影像的像素高度初始化為H,H=W/2,將景深影像的像素寬度初始化為λW、將景深影像的像素高度初始化為λH,0<λ≤1;將景深影像中各像素的深度值初始化為大於Dist的任意值;
步驟二、設定p為P
i在街景影像坐標系中的點坐標,當
時執行步驟六;否則計算
得到街景影像坐標系中的點坐標,x、y和z為點p的三個坐標分量;
步驟三、將街景影像坐標系中的點坐標p轉換成街景影像的uv坐標:
計算方位角
,方位角α為原點O、點p的連線與XOZ平面的夾角;
計算方位角
,方位角β為原點O、點p的連線在XOZ平面的投影與X軸的夾角;
當x<0且z>0時,計算β=180-β;當x<0且z<0時,計算β=-180-β;
計算β=270-β,當β≥360時,計算β=β-360;
計算u=(90+β)/180和v=β/360;
步驟四、計算街景影像中的像素坐標(I,J),I=v(W-1),J=(1-u)(H-1);
計算景深影像中的像素坐標(I1,J1),I1=v(λW-1),J1=(1-u)(λH-1);
步驟五、當景深
小於景深圖像中(I
1,J
1)像素代表的深度值時,將P
i的r
i、g
i、b
i顏色值賦給街景影像的(I,J)像素,同時把所述景深L賦給景深影像中的(I
1,J
1)像素;
步驟六、執行i=i+1,判斷是否i≤N,當i≤N時,返回執行步驟二;否則保存街景影像以及景深影像。
2.如權利要求1所述的基於真彩色點雲的街景影像生成方法,其特徵是:還包括對街景影像中所有非空像素進行三維坐標解算的步驟:
A1、對於街景影像中的像素(I,J),如果其顏色不為空,計算其uv坐標;u=1-J/(H-1),v=I/(W-1);根據uv坐標計算該像素對應的景深影像中的坐標(I1,J1),I1=v(λW-1),J1=(1-u)(λH-1);並得到坐標(I1,J1)的景深L;
A2、根據像素(I,J)的uv坐標計算像素(I,J)在街景影像坐標系中對應的方位角α和β:α=270-360u,β=180v-90;
A3、根據所述方位角α、β和景深L,計算像素(I,J)在街景影像坐標系中對應的三維坐標
,x=Lcos(α)cos(β),y=Lsin(α),z=Lcos(α)sin(β);
A4、把p的坐標轉換到世界坐標系下:計算
得到像素(I,J)在世界坐標系中對應的三維坐標,其中R為旋轉矩陣。
3.如權利要求1或2所述的基於真彩色點雲的街景影像生成方法,其特徵是:所述步驟一中還包括計算旋轉矩陣的步驟;旋轉矩陣R=inv(Ryaw·Rpitch·Rrol):
,
,
,所述inv為矩陣逆。
4.如權利要求3所述的基於真彩色點雲的街景影像生成方法,其特徵是:步驟一後還包括對點雲進行過濾的步驟。
實施方式
如圖1所示,一種基於真彩色點雲的街景影像生成方法,包括以下步驟:
步驟一、進行初始化處理。
從點雲檔案讀入點雲到集合,記為U={Pi=(xi,yi,zi,ri,gi,bi,ai)|1≤i≤N};所述N為點雲集合中點的數量,N為正整數,i為正整數且i的初始值為1;點雲集合中第i個點記為Pi,xi,yi和zi是點Pi的三維世界坐標,該實施例中三維世界坐標係為右手坐標系,當然,三維世界坐標系還可以為其他坐標系;ri,gi,bi是點Pi的紅、綠、藍三元色,即點雲的顏色信息;ai是點Pi的其它屬性,如:反射強度,點雲分類,地面高度等,該實施例中,ai為點Pi的地面高度,其具體在點雲過濾中作為過濾特徵使用。
設定準備生成的街景影像的位置與姿態為POS=(X,Y,Z,yaw,pitch,roll),其中X、Y和Z分別為街景影像的三維坐標位置,這三個值是移動測量採集線路中獲得的特定坐標,將高程坐標Y提高,能夠達到街景影像的俯視效果;yaw,pitch和roll分別為街景影像的偏航值、俯仰值、側滾值。設定距離閥值Dist,其為點雲點到街景影像坐標的最大距離。
該實施例中,Dist值的範圍取50米~500米,pitch和roll的取值為0,即生成的街景影像坐標系相對於世界坐標系,只發生航向偏轉,沒有俯仰偏轉和側滾偏轉。
計算旋轉矩陣;旋轉矩陣R=inv(R
yaw·R
pitch·R
roll):
,
,
,旋轉矩陣R=inv(Ryaw·Rpitch·Rroll):所述inv為矩陣逆。
將街景影像的像素寬度初始化為W,將街景影像的像素高度初始化為H,H=W/2,將景深影像的像素寬度初始化為λW、將景深影像的像素高度初始化為λH,0<λ≤1;將景深影像中各像素的深度值初始化為大於Dist的任意值。
步驟二、對點雲點Pi進行過濾,滿足一定的條件才進行步驟三,否則跳轉到步驟七,使用過濾條件可以生成特定專題的街景影像。該實施例,在步驟一中,U={Pi=(xi,yi,zi,ri,gi,bi,ai)|1≤i≤N}的ai作為過濾屬性,ai小於3米才能進行步驟三,否則跳轉執行步驟七。因為點雲的屬性比較多,過濾條件比較靈活,在這裡就不一一敘述。採用以上技術方案,可以通過對點雲設定過濾條件,只生成特定專題的街景影像,甚至可以把多個專題的全景影像進行疊加顯示一一把全景圖像中黑色像素設定為透明後即可進行疊加。
步驟三、設定p為P
i在街景影像坐標系中的點坐標,當
時執行步驟七;否則計算
得到街景影像坐標系中的點坐標,即把點雲從世界坐標系轉換到街景影像坐標系中,x、y和z為點p的三個坐標分量;
步驟四、將街景影像坐標系中的點坐標p轉換成街景影像的uv坐標:
先計算方位角
,方位角α為原點O、點p的連線與XOZ平面的夾角;
計算方位角
,方位角β為原點O、點p的連線在XOZ平面的投影與X軸的夾角;
當x<0且z>0時,計算β=180-β;當x<0且z<0時,計算β=-180-β;
然後計算β=270-β,當β≥360時,計算β=β-360;
最後計算u=(90+β)/180和v=β/360。
步驟五、計算街景影像中的像素坐標(I,J),I=v(W-1),J=(1-u)(H-1);
計算景深影像中的像素坐標(I1,J1),I1=v(λW-1),J1=(1-u)(λH-1);
步驟六、由於近處的點會遮擋遠處的點,當景深
小於景深圖像中(I
1,J
1)像素代表的深度值時,將P
i的r
i、g
i、b
i顏色值賦給街景影像的(I,J)像素,同時把所述景深L賦給景深影像中的(I
1,J
1)像素。
步驟七、執行i=i+1,判斷是否i≤N,當i≤N時,返回執行步驟二;否則保存街景影像以及景深影像。
對街景影像中所有非空像素進行三維坐標解算按以下步驟進行:
A1、對於街景影像中的像素(I,J),如果其顏色不為空,計算其uv坐標;u=1-J/(H-1),v=I/(W-1);根據uv坐標計算該像素對應的景深影像中的坐標(I1,J1),I1=v(λW-1),J1=(1-u)(λH-1);並得到坐標(I1,J1)的景深L。
A2、根據像素(I,J)的uv坐標計算像素(I,J)在街景影像坐標系中對應的方位角α和β:α=270-360u,β=180v-90。
A3、根據所述方位角α、β和景深L,計算像素(I,J)在街景影像坐標系中對應的三維坐標
,x=Lcos(α)cos(β),y=Lsin(α),z=Lcos(α)sin(β)。
A4、把p的坐標轉換到世界坐標系下:計算
得到像素(I,J)在世界坐標系中對應的三維坐標。
榮譽表彰
2018年12月20日,《基於真彩色點雲的街景影像生成方法》獲得第二十屆中國專利優秀獎。