技術領域
本發(fā)明涉及技術領域,具體地,涉及基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法。
背景技術:
在增強現(xiàn)實場景中,虛實物體之間的遮擋關系可以分為兩類:(1)虛擬物體對現(xiàn)實場景的遮擋;(2)現(xiàn)實物體對虛擬場景的遮擋。在大多數(shù)的增強現(xiàn)實系統(tǒng)中實現(xiàn)的都是前者的效果。由于現(xiàn)實場景中除了真實物體的存在,還必須考慮到以真實背景為背景的增強現(xiàn)實場景,所以在實現(xiàn)真實物體對虛擬場景的遮擋時,如何將現(xiàn)實場景中的背景與進行遮擋的前景目標有效分離,成為一個研究重點。在目前提出的虛實遮擋方法中,大致可以分為三類:(1)基于深度計算的遮擋方法;(2)基于模型重建的遮擋方法;(3)前后關系不變的遮擋方法。
基于深度計算的遮擋方法是以立體視差為基礎,需要借助配置有深度傳感器的設備來獲取當前場景中各個物體的深度信息,然后根據(jù)實際情況判斷虛實物體之間的遮擋關系,最后進行遮擋渲染。
基于深度計算的遮擋方法流程,由于對真實場景深度值的計算量很大,導致該方法在運行過程中實時性很差,是需要研究突破的重點。目前,效果最好的方法是只針對真實遮擋物的輪廓或其中的某一像素進行深度值的計算與比較。
基于模型重建的遮擋方法需要依賴大量事前獲取的先驗知識,對真實遮擋物進行三維建模并覆蓋真實物體,然后將其深度值與虛擬物體的深度值作比較,確定遮擋關系。其中真實物體三維建模并完成覆蓋的難度很高,目前該方法主要依靠人工設置標識物來實現(xiàn)。
前后關系不變的遮擋方法是針對虛擬物體與現(xiàn)實場景位置關系保持不變的情況下提出的,即虛擬物體總是遮擋真實物體的情形。該方法的本質就是增強現(xiàn)實中虛擬對象跟蹤注冊的技術,比較適用于對現(xiàn)實場景進行附加信息說明的情況。
在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中至少存在傳統(tǒng)手機端難以獲取場景深度信息的問題等缺陷。
技術實現(xiàn)要素:
本發(fā)明的目的在于,針對上述問題,提出基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法,以降低將現(xiàn)實場景中的背景與進行遮擋的前景目標有效分離的難度和分離的精確性的優(yōu)點。
為實現(xiàn)上述目的,本發(fā)明采用的技術方案是:基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法,主要包括:
步驟1:獲取先驗知識,所述先驗知識包括虛擬物體在現(xiàn)實場景中的空間位置信息和真實物體的物體屬性信息;
步驟2:根據(jù)步驟1獲取的先驗知識自行定義各個圖層在場景中的空間位置關系,并進行相應的內容填充;
步驟3:提取真實遮擋物;
步驟4:遮擋渲染。
進一步地,步驟1具體為,針對有進行遮擋關系的虛擬物體與真實物體情況下,對虛擬物體在現(xiàn)實場景中的空間位置信息和真實物體的物體屬性信息進行采集。
進一步地,步驟2所述圖層包括真實場景層,虛擬場景層和真實遮擋層,
所述真實場景層即增強現(xiàn)實場景中所有的真實對象,包括真實的背景與參與遮擋和不參與遮擋的所有真實對象,
所述虛擬場景層即是增強現(xiàn)實場景中所有的虛擬對象,包括增強現(xiàn)實場景中所有的虛擬對象,根據(jù)每個虛擬對象在場景中空間位置上的不同,進行更進一步的細分,得到更多的子層;
真實遮擋層即增強現(xiàn)實場景中參與到遮擋處理的真實對象,根據(jù)真實遮擋物的數(shù)量,細分出更多的子層,所述真是遮擋層與真是場景層在屏幕顯示窗口的位置保持一致;
所述圖層可根據(jù)實際場景的需要,進行添加圖層、刪減圖層或改變圖層的排列順序。
進一步地,所述圖層為三層,圖層順序安排依次為真實場景層、虛擬場景層及真實遮擋層。
進一步地,步驟3具體為,利用圖像分割技術,將真實遮擋物從現(xiàn)實場景中分割出來,并置入真實遮擋層以完成其圖層內容的填充,
進一步地,步驟2中,步驟2中,所述各個圖層在場景中的空間位置關系,具體為,真實場景層位于底層,虛擬場景層位于中層,真實遮擋層位于上層;或真實場景層位于底層,虛擬場景層位于上層,真實遮擋層位于中層。
進一步地,步驟4具體為,在增強現(xiàn)實場景中,將排列好的真實場景圖層、虛擬場景圖層與真實遮擋圖層組合顯示在屏幕畫面上,將各個圖層的內容作為一個融合的整體展示出來,消除人為創(chuàng)建場景層次的痕跡。
進一步地,在步驟4遮擋渲染之前,還包括除去圖像分割后非真實遮擋物背景部分的黑色,具體為通過判斷圖像每點像素值與黑色值(0,0,0)的關系,如果兩個值相等,則不給該像素點賦值,最終將圖像分割后非真實遮擋物背景部分透明化,真實遮擋層中未分割出來的背景部分顯示為黑色,透過透明的背景看到真實場景層與虛擬場景層的內容。
所述人機交互界面還可實現(xiàn)對虛擬物體的自行選擇添加虛擬物體,對添加的虛擬物體進行移動、旋轉與縮放的操作。
本發(fā)明各實施例的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法,由于主要包括獲取先驗知識,根據(jù)步驟1獲取的先驗知識自行定義各個圖層在場景中的空間位置關系,并進行相應的內容填充;提取真實遮擋物;遮擋渲染;從而可以克服現(xiàn)有技術中深度計算的遮擋方法在運行過程中實時性很差的缺陷,克服基于模型重建的遮擋方法中真實物體三維建模并完成覆蓋的難度很高,主要依靠人工設置標識物來實現(xiàn)的缺點的缺陷,實現(xiàn)降低將現(xiàn)實場景中的背景與進行遮擋的前景目標有效分離的難度和分離的精確性的優(yōu)點優(yōu)點。
本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。
下面通過附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。
附圖說明
附圖用來提供對本發(fā)明的進一步理解,并且構成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法的實現(xiàn)流程圖;
圖2為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法的圖層安排順序圖;
圖3為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法的真實人手遮擋虛擬樹的效果圖;
圖4為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法設計的人機交互界面的初始界面圖;
圖5為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法設計的人機交互界面的虛擬物體的選擇添加界面;
圖6為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法設計的人機交互界面的對虛擬物體進行操作的界面;
圖7為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法設計的人機交互界面的真實遮擋物的選擇界面;
圖8為本發(fā)明實施例所述的基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法自定義遮擋實驗的遮擋效果圖。
具體實施方式
以下結合附圖對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
具體地,基于圖像分割與自定義圖層法的增強現(xiàn)實遮擋方法,包括:
步驟1:獲取先驗知識,所述先驗知識包括虛擬物體在現(xiàn)實場景中的空間位置信息和真實物體的物體屬性信息;
步驟2:根據(jù)步驟1獲取的先驗知識自行定義各個圖層在場景中的空間位置關系,并進行相應的內容填充;
步驟3:提取真實遮擋物;
步驟4:遮擋渲染。
步驟1具體為,針對有進行遮擋關系的虛擬物體與真實物體情況下,對虛擬物體在現(xiàn)實場景中的空間位置信息和真實物體的物體屬性信息進行采集。
步驟2所述圖層包括真實場景層,虛擬場景層和真實遮擋層,
所述真實場景層即增強現(xiàn)實場景中所有的真實對象,包括真實的背景與參與遮擋和不參與遮擋的所有真實對象,
所述虛擬場景層即是增強現(xiàn)實場景中所有的虛擬對象,包括增強現(xiàn)實場景中所有的虛擬對象,根據(jù)每個虛擬對象在場景中空間位置上的不同,進行更進一步的細分,得到更多的子層;
真實遮擋層即增強現(xiàn)實場景中參與到遮擋處理的真實對象,根據(jù)真實遮擋物的數(shù)量,細分出更多的子層,所述真實遮擋層與真實場景層在屏幕顯示窗口的位置保持一致;
所述圖層可根據(jù)實際場景的需要,進行添加圖層、刪減圖層或改變圖層的排列順序。
所述圖層為三層,圖層順序安排依次為真實場景層、虛擬場景層及真實遮擋層;真實場景層位于底部,虛擬場景層與真實遮擋層根據(jù)需要自行安排。
步驟3具體為,利用圖像分割技術,將真實遮擋物從現(xiàn)實場景中分割出來,并置入真實遮擋層以完成其圖層內容的填充,
所述圖像分割方法,為基于Blob算法的圖像分割技術,將真實遮擋物從現(xiàn)實場景中提取出來并映射在真實遮擋層,所述真實遮擋物可自行選擇。
步驟4具體為,在增強現(xiàn)實場景中,將排列好的真實場景圖層、虛擬場景圖層與真實遮擋圖層組合顯示在屏幕畫面上,將各個圖層的內容作為一個融合的整體展示出來,消除人為創(chuàng)建場景層次的痕跡。
進一步地,在步驟4遮擋渲染之前,還包括除去圖像分割后非真實遮擋物背景部分的黑色,具體為通過判斷圖像每點像素值與黑色值(0,0,0)的關系,如果兩個值相等,則不給該像素點賦值,最終將圖像分割后非真實遮擋物背景部分透明化,真實遮擋層中未分割出來的背景部分顯示為黑色,透過透明的背景看到真實場景層與虛擬場景層的內容。
進一步地,所述人機交互界面還可實現(xiàn)對虛擬物體的自行選擇添加虛擬物體,對添加的虛擬物體進行移動、旋轉與縮放的操作。
本發(fā)明的重點在于針對手機端上移動增強現(xiàn)實場景中的虛實遮擋問題,設計了一種結合圖像分割與自定義圖層法的新型虛實遮擋恢復技術。該方法解決了傳統(tǒng)手機端難以獲取場景深度信息的問題,提出了用多圖層的方法來替代深度圖,以一種新形式來展示場景的深度信息。首先利用自定義圖層法結合事先獲取的先驗知識,在增強現(xiàn)實場景中手動建立起具備空間位置信息的多個圖層。之后再根據(jù)先驗知識為各個圖層填充相對應的內容。其中,使用圖像分割技術可以提取出現(xiàn)實場景中參與遮擋處理的真實物體,實現(xiàn)真實遮擋物圖層的內容填充。最后運用Unity3D中的著色器(Shader)完成遮擋渲染。另外,本發(fā)明以Unity3D作為綜合處理平臺,以APP程序作為最終展示手段,因此可以根據(jù)不同需求實現(xiàn)相應平臺上的手機端增強現(xiàn)實遮擋效果。
結合圖1,獲取先驗知識:本發(fā)明中的先驗知識主要分為兩個部分:第一部分是虛擬物體在現(xiàn)實場景中的空間位置信息;第二部分是真實物體的物體屬性。關于這兩部分的信息采集都是針對有進行遮擋關系的虛擬物體與真實物體。預先獲得虛擬物體在現(xiàn)實場景中的空間位置信息可以有針對性的在一定范圍內進行遮擋的處理。在沒有發(fā)生遮擋關系的情況下,程序在運行時可以不執(zhí)行遮擋處理這部分的函數(shù),從而減少了系統(tǒng)的運行負擔,并在一定意義上縮短了系統(tǒng)延時的時間。預先采集真實物體的物理屬性目的是為之后對其進行分割做準備。在實現(xiàn)真實物體遮擋虛擬物體的效果時,本發(fā)明需要將現(xiàn)實場景中的真實遮擋物提取出來覆蓋在虛擬物體上。為了可以完成更有效精確的提取,必須找到該遮擋物區(qū)別于場景中其他物體的特征點。這些特征點便是該真實遮擋物所具備的物理屬性,如邊緣輪廓、紋理材質、大小尺寸、顏色等。
圖層安排:本發(fā)明設計的多圖層方法需要根據(jù)事前獲取的先驗知識來自行定義各個圖層在場景中的空間位置關系,并進行相應的內容填充,主要分為真實場景層,虛擬場景層和真實遮擋層:(a)真實場景層指的是增強現(xiàn)實場景中所有的真實對象,包括真實的背景與參與遮擋和不參與遮擋的所有真實對象;(b)虛擬場景層指的是增強現(xiàn)實場景中所有的虛擬對象,可以根據(jù)每個虛擬對象在場景中空間位置上的不同,進行更進一步的細分,得到更多的子層;(c)真實遮擋層指的是增強現(xiàn)實場景中參與到遮擋處理的真實對象,根據(jù)真實遮擋物的數(shù)量,也可以細分出更多的子層。另外,需要保證真實遮擋層在屏幕顯示窗口中的位置同真實場景層一致,否則會影響遮擋效果。根據(jù)實際的場景需要,用戶可以自行添加或刪減圖層,并安排圖層的排列順序。
結合圖2,一般地,在發(fā)生遮擋關系的增強現(xiàn)實場景中,圖層數(shù)量設置為2或3層。如果虛實之間的遮擋關系為虛擬物體遮擋現(xiàn)實場景,那么設置兩層圖層,順序安排為真實場景層—虛擬場景層,即以真實場景層作為底層,虛擬場景層置于其上。如果虛實之間的遮擋關系為真實物體遮擋虛擬場景,那么設置三層圖層,順序安排為真實場景層—虛擬場景層—真實遮擋層。本發(fā)明重點研究后者,即真實物體遮擋虛擬場景的效果。
提取真實遮擋物:在真實物體遮擋虛擬對象的場景下,關于真實遮擋層中內容的提取與顯示十分重要。真實遮擋層中的內容信息越精確,最終的遮擋效果越好。本發(fā)明借助圖像分割技術,將真實遮擋物從現(xiàn)實場景中分割出來,并置入真實遮擋層以完成其圖層內容的填充。關于具體的圖像分割方法,開發(fā)者可根據(jù)自身需求進行選擇。本發(fā)明中采取基于Blob算法的圖像分割技術,將真實遮擋物從現(xiàn)實場景中提取出來并映射在真實遮擋層。另外,本發(fā)明在這一過程中加入了使用者可自主選擇真實遮擋物的環(huán)節(jié),增強了遮擋物的多樣性與使用者的參與度。
遮擋渲染:遮擋渲染指的是在增強現(xiàn)實場景中,將排列好的真實場景圖層、虛擬場景圖層與真實遮擋圖層組合顯示在屏幕畫面上。目的是將各個圖層的內容作為一個融合的整體展示出來,消除掉人為創(chuàng)建場景層次的痕跡。在之前的步驟中,已經(jīng)完成了各個圖層在空間位置上的安排與顯示內容上的填充。但是在真實遮擋層上,圖像分割后的效果會將非真實遮擋物的背景部分設置為黑色。因此,本發(fā)明借助Unity3D中的Transparent Shader進行黑色背景的透明化工作。該Shader的效果是將空值的像素點不予表現(xiàn)。因此,算法中通過判斷圖像每點像素值與RGB值(0,0,0),即黑色值的關系,如果兩個值相等,則不給該像素點賦值。最后在程序運行階段,真實遮擋層中未分割出來的背景部分顯示為黑色,在Transparent Shader作用下,用戶便可以透過透明的背景看到真實場景層與虛擬場景層的內容。
為了驗證本發(fā)明所提出的結合圖像分割與自定義圖層法的增強現(xiàn)實遮擋技術的實際應用效果,我們設定程序的測試平臺為安卓系統(tǒng),以三星SCH-N719手機為測試設備,設定程序的測試平臺為安卓系統(tǒng),對該系統(tǒng)進行了相關實驗。實驗中用于程序搭建的軟件為Unity3D,版本為5.0.0f4,并以Unity配套的編輯軟件Monodevelop進行編程。另外,利用Autodesk 3ds Max軟件進行虛擬場景及物體的建模,最后通過Android SDK軟件將程序發(fā)布到手機上完成測試。
實驗中的虛實遮擋測試分兩個部分進行。
結合圖4,第一部分為無用戶參與的自動遮擋實驗,在該實驗中以真實的人手作為遮擋物,整個增強現(xiàn)實場景中已經(jīng)存在事先布置完成的虛擬物體。當拍攝的現(xiàn)實場景中出現(xiàn)人手部的畫面,程序便可自動地將與虛擬物體重疊的人的手部覆蓋在虛擬物體之上,實現(xiàn)遮擋效果。,
第二部分為用戶可參與的自定義遮擋實驗,在該實驗中加入了使用者可自主選擇真實遮擋物的環(huán)節(jié),增強了遮擋物的多樣性與使用者的參與度。圖5到圖8分別為程序的初始界面即人機界面,虛擬物體的選擇添加界面,對虛擬物體進行操作的界面和真實遮擋物的選擇界面。目前已經(jīng)可以完成對于現(xiàn)實場景中比較鮮明物體的選擇。在選擇之后采取基于Blob算法的圖像分割技術,將選擇的遮擋物從現(xiàn)實場景中提取出來并映射在真實遮擋層,最后配合Unity3D中的Transparent Shader進行整個增強現(xiàn)實場景中的遮擋顯示。使用者可根據(jù)實際應用環(huán)境選擇相應的圖像分割方法。本發(fā)明中使用的Blob方法只是一個示例,是根據(jù)本發(fā)明實驗環(huán)境決定的。
圖8為自定義遮擋實驗的遮擋效果。
發(fā)明實現(xiàn)的是一個結合圖像分割與自定義圖層法的增強現(xiàn)實遮擋效果,通過用戶參與的自定義圖層法形式,配合上合理的圖像分割技術,從而完成虛實場景之間的相互遮擋與顯示。申請的發(fā)明點包括:1)提出了一種用戶可參與的自定義圖層方法,通過手動設置圖層的數(shù)量、位置和內容,解決了一般手機端難以獲取場景深度信息的問題。該方法只需要根據(jù)事前獲取的先驗知識來自行定義各個圖層在場景中的空間位置關系,并進行相應的內容填充,主要分為真實場景層,虛擬場景層和真實遮擋層;2)利用Unity3D中Transparent Shader的屬性,實現(xiàn)真實遮擋層中黑色背景的透明化工作;3)為了加強用戶的參與體驗,設計了一套簡單的人機交互界面,可實現(xiàn)用戶對虛擬物體的控制。功能包括用戶可自行選擇添加虛擬物體,并可對添加的虛擬物體進行移動、旋轉與縮放的操作。另外,對于參與遮擋的真實物體,使用者也可以根據(jù)自身需要選擇;4)以Unity3D作為綜合處理平臺實現(xiàn)一個可以兼容多平臺、多操作系統(tǒng)運行的基于手機端增強現(xiàn)實系統(tǒng)。
至少可以達到以下有益效果:克服現(xiàn)有技術中深度計算的遮擋方法在運行過程中實時性很差的缺陷,克服基于模型重建的遮擋方法中真實物體三維建模并完成覆蓋的難度很高,主要依靠人工設置標識物來實現(xiàn)的缺點的缺陷,實現(xiàn)降低將現(xiàn)實場景中的背景與進行遮擋的前景目標有效分離的難度和分離的精確性的優(yōu)點優(yōu)點。
最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。