三維全景漫游尋路方法及系統(tǒng)的制作方法
【技術領域】
[0001] 本發(fā)明涉及路徑規(guī)劃技術領域,具體而言,涉及一種三維全景漫游尋路方法及系 統(tǒng)。
【背景技術】
[0002] 目前,屬于虛擬現(xiàn)實(Virtual Reality)的重要組成部分的三維全景漫游 (Panorama)技術具有廣闊的市場應用前景,對智慧城市、智慧校園、展覽、旅游、房地產、城 市規(guī)劃等領域的建設與發(fā)展有著重要的意義。當在三維全景漫游中采用現(xiàn)有的作為一種最 短路徑算法的A* (A-star)算法來進行路徑導航和路徑規(guī)劃時,由于A*算法依賴于啟發(fā)函 數(shù),如果起始節(jié)點與目標節(jié)點之間存在障礙物,則A*算法需要遍歷較多的節(jié)點,導致路徑 搜索效率較低且消耗資源。由此可以看出,三維全景漫游中需要一種能夠通過改進A*算法 來在起始節(jié)點與目標節(jié)點之間存在障礙物的情況下提高路徑搜索效率的三維全景漫游尋 路方法。
【發(fā)明內容】
[0003] 鑒于此,本發(fā)明的目的在于提供一種三維全景漫游尋路方法及系統(tǒng),以改善利用 現(xiàn)有A*算法的三維全景漫游在起始節(jié)點與目標節(jié)點之間存在障礙物的情況下路徑搜索效 率較低的問題。
[0004] 本發(fā)明第一實施例提供一種三維全景漫游尋路方法,包括:獲取三維全景圖以及 與所述三維全景圖中的節(jié)點相關的信息;以JSON(JavaScript Object Notation)數(shù)據交換 格式描述與所述節(jié)點相關的信息的數(shù)據結構并獲得無向圖;根據所述數(shù)據結構和所述無向 圖,建立障礙物列表和關鍵節(jié)點列表;在所述三維全景圖中的節(jié)點中設定起始節(jié)點和目標 節(jié)點;利用與所述障礙物列表和所述關鍵節(jié)點列表相結合的A*算法計算所述起始節(jié)點與 所述目標節(jié)點之間的路徑。
[0005] 本發(fā)明第二實施例提供一種三維全景漫游尋路系統(tǒng),包括:獲取模塊,用于獲取三 維全景圖以及與所述三維全景圖中的節(jié)點相關的信息;描述模塊,用于以JSON數(shù)據交換格 式描述與所述節(jié)點相關的信息的數(shù)據結構并獲得無向圖;建立模塊,用于根據所述數(shù)據結 構和所述無向圖,建立障礙物列表和關鍵節(jié)點列表;設定模塊,用于在所述三維全景圖中的 節(jié)點中設定起始節(jié)點和目標節(jié)點;計算模塊,用于利用與所述障礙物列表和所述關鍵節(jié)點 列表相結合的A*算法計算所述起始節(jié)點與所述目標節(jié)點之間的路徑。
[0006] 在本發(fā)明各實施例提供的三維全景漫游尋路方法及系統(tǒng)中,通過以JSON數(shù)據交 換格式描述與所獲取三維全景圖中節(jié)點相關的信息的數(shù)據結構并獲得無向圖,并因此建立 障礙物列表和關鍵節(jié)點列表,此后在三維全景圖中的節(jié)點中設定好起始節(jié)點和目標節(jié)點的 情況下利用與所建立的障礙物列表和關鍵節(jié)點列表相結合的A*算法計算所設定的起始節(jié) 點與目標節(jié)點之間的路徑。相對于在三維全景漫游中采用現(xiàn)有的A*算法進行路徑導航和 路徑規(guī)劃,由于在發(fā)明中預先建立障礙物列表和關鍵節(jié)點列表,并在此基礎上結合A*算 法,所以可以在起始節(jié)點與目標節(jié)點之間存在障礙物時將路徑截成兩段或者多段進行尋 路,顯著減少遍歷的節(jié)點,從而可以提高路徑搜索效率。
[0007] 為使本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例, 并配合所附圖式,作詳細說明如下。
【附圖說明】
[0008] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施 例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲 得其他的附圖。通過附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢將更加清晰。在全部 附圖中相同的附圖標記指示相同的部分。并未刻意按實際尺寸等比例縮放繪制附圖,重點 在于示出本發(fā)明的主旨。
[0009] 圖1為本發(fā)明第一實施例提供的三維全景漫游尋路方法的流程圖;
[0010] 圖2為本發(fā)明第一實施例提供的三維全景漫游尋路方法中的具體尋路算法的流 程圖;
[0011] 圖3為本發(fā)明第二實施例提供的三維全景漫游尋路系統(tǒng)的結構示意圖。
【具體實施方式】
[0012] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0013] 在進行具體實施例的描述之前,先簡要描述三維全景漫游尋路中需要使用的一些 函數(shù)。在進行路徑搜索時,需要使用由以下公式(1)表示的估價函數(shù):
[0014] f (m) = g (m) +h (m) (1)
[0015] 其中,m表示當前節(jié)點,g(m)表示起始節(jié)點與當前節(jié)點的實際距離,h(m)表示當前 節(jié)點m與目標節(jié)點的最短路徑(忽略障礙物),f (m)表示當前節(jié)點m的估價函數(shù)。
[0016] 通??梢圆捎寐D距離來計算當前節(jié)點m與目標節(jié)點end之間的實際距離。曼 哈頓距離計算由以下公式(2)表示:
[0017] h (m) = I X (I mx-endx I +1 my-endy I) (2)
[0018] 其中,1表示移動權值,mx、my、endx、endy分別表示當前節(jié)點m與目標節(jié)點end的 平面橫坐標和縱坐標。
[0019] 還可以采用兩點間距離公式來計算當前節(jié)點m與目標節(jié)點end之間的實際距離。 在平面坐標的情況下,可以采用由以下公式(3)表示的距離長度公式:
[0020]
(3)
[0021] 其中,11?、1117、611(11、611(17分別表示當前節(jié)點1]1與目標節(jié)點611(1的橫坐標和縱坐標。
[0022] 在空間坐標的情況下,可以采用由以下公式(4)表示的距離長度公式: CN 105138859 A I兄明書 3/9 頁
[0023]
(4).
[0024] 其中,mx、my、mz、endx、endy、endz分別表示當前節(jié)點m與目標節(jié)點end的三維坐 標。
[0025] 此外,如果地圖較大,還可以選擇使用地球兩點距離公式,其包括由以下公式(5) 表示的Great-circle distance公式和由以下公式(6)表示的Haversine公式:
(6)
[0028] 其中,R為地球半徑,θ,Θ 分別表示當前節(jié)點 m與目標節(jié)點end的煒度,妒m 和辦w分別表示當前節(jié)點m與目標節(jié)點end的經度。
[0029] 在本發(fā)明各實施例提供的三維全景漫游尋路方法及系統(tǒng)中,通過以JSON數(shù)據交 換格式描述與所獲取三維全景圖中節(jié)點相關的信息的數(shù)據結構并獲得無向圖,并因此建立 障礙物列表和關鍵節(jié)點列表,此后在三維全景圖中的節(jié)點中設定好起始節(jié)點和目標節(jié)點的 情況下利用與所建立的障礙物列表和關鍵節(jié)點列表相結合的A*算法計算所設定的起始節(jié) 點與目標節(jié)點之間的路徑。相對于在三維全景漫游中采用現(xiàn)有的A*算法進行路徑導航和 路徑規(guī)劃,由于在發(fā)明中預先建立障礙物列表和關鍵節(jié)點列表,并在此基礎上結合A*算 法,所以可以在起始節(jié)點與目標節(jié)點之間存在障礙物時將路徑截成兩段或者多段進行尋 路,顯著減少遍歷的節(jié)點,從而可以提高路徑搜索效率。
[0030] 第一實施例
[0031] 圖1為本發(fā)明第一實施例提供的三維全景漫游尋路方法的流程圖。請參閱圖1,本 發(fā)明第一實施例提供的三維全景漫游尋路方法可以包括以下步驟Sll至步驟S15。
[0032] 在步驟Sll中,獲取三維全景圖以及與所述三維全景圖中的節(jié)點相關的信息。
[0033] 具體地,可以通過使用相機對一個場景的各個節(jié)點進行360°環(huán)視拍攝以獲得各 個節(jié)點的圖片素材,然后通過篩選、匹配、拼接、融合和渲染等來生成全景貼圖,并基于所生 成的全景貼圖來生成三維全景圖。此外,還應記錄與所述三維全景圖中的節(jié)點相關的信息, 其中與所述節(jié)點相關的信息可以包括所述節(jié)點的經度和煒度坐標、位置名稱以及與其他節(jié) 點的關聯(lián)性等。
[0034] 在步驟S12中,以JSON數(shù)據交換格式描述與所述節(jié)點相關的信息的數(shù)據結構并獲 得無向圖。
[0035] JSON數(shù)據交換格式由鍵值對(key-value)和數(shù)組構成,采用JSON數(shù)據交換格式可 以提高與所述節(jié)點相關的信息的可讀性并且可以減小復雜性。無向圖可以表示每個對象的 節(jié)點和邊。所述數(shù)據結構可以包括所述節(jié)點的唯一標識、標題、全景貼圖路徑、是否能夠自 由旋轉、自由旋轉速度、信息提示框、煒度、經度、是否為障