本公開涉及使用邊緣的三維模型生成。
背景技術(shù):
可由場景的多個(gè)二維(2d)圖像來重建三維(3d)模型??捎梢粋€(gè)或多個(gè)相機(jī)使用各種相機(jī)姿勢(shì)來拍攝2d圖像。常規(guī)3d模型生成技術(shù)依賴于特征點(diǎn)識(shí)別。通常,處理2d圖像以識(shí)別跨多個(gè)2d圖像被匹配的特征點(diǎn)??稍谌齻€(gè)維度中將特征點(diǎn)三角形化。然后,可將特征點(diǎn)的實(shí)際位置與從三維返回到二維的經(jīng)重投影的特征點(diǎn)之間的重投影誤差連同相機(jī)姿勢(shì)誤差兩者最小化。
許多2d圖像包括弱紋理區(qū)域。弱紋理區(qū)域可出現(xiàn)在室外場景的2d圖像中,并且常常在室內(nèi)場景的2d圖像中發(fā)現(xiàn)。弱紋理區(qū)域大體指2d圖像中像素相同或高度類似的區(qū)域。從一個(gè)像素到下一個(gè)像素的偏差是最小的或是不存在的。2d圖像內(nèi)的弱紋理區(qū)域通常表示沒有細(xì)節(jié)的光滑表面。弱紋理區(qū)域的示例可包括但不限于墻壁、工作臺(tái)面等等,其中包括顏色相對(duì)恒定的弱紋理區(qū)域示例。
技術(shù)實(shí)現(xiàn)要素:
技術(shù)問題
當(dāng)處理紋理豐富的2d圖像時(shí),常規(guī)3d模型生成技術(shù)往往表現(xiàn)相對(duì)良好。然而,在2d圖像包括弱紋理區(qū)域的情況下,常規(guī)3d模型生成技術(shù)往往表現(xiàn)不理想。常規(guī)技術(shù)常常需要大量2d圖像來作為輸入,以確定對(duì)于重建哪怕很小的區(qū)域來說足夠的特征點(diǎn)。由于弱紋理區(qū)域具有很少或不具有特征點(diǎn),所以涉及弱紋理區(qū)域的常規(guī)3d模型生成技術(shù)常常是有缺陷的。此外,對(duì)相機(jī)姿勢(shì)的估計(jì)往往不準(zhǔn)確。
問題的解決方案
一種方法可包括:使用處理器來檢測(cè)多個(gè)圖像中的多個(gè)邊緣;以及使用處理器來確定多個(gè)邊緣中跨多個(gè)圖像匹配的一組邊緣。該方法還可包括:使用處理器,利用依賴于該組邊緣的成本函數(shù)來估計(jì)多個(gè)圖像的相機(jī)姿勢(shì)。
一種系統(tǒng)包括處理器,處理器經(jīng)編程以發(fā)起可執(zhí)行操作??蓤?zhí)行操作可包括:檢測(cè)多個(gè)圖像中的多個(gè)邊緣;以及確定多個(gè)邊緣中跨多個(gè)圖像匹配的一組邊緣。可執(zhí)行操作還可包括:使用依賴于該組邊緣的成本函數(shù)來估計(jì)多個(gè)圖像的相機(jī)姿勢(shì)。
一種計(jì)算機(jī)程序產(chǎn)品包括上面存儲(chǔ)有程序代碼的計(jì)算機(jī)可讀存儲(chǔ)媒體。程序代碼可由處理器來運(yùn)行以執(zhí)行一種方法。所述方法可包括:使用處理器來檢測(cè)多個(gè)圖像中的多個(gè)邊緣;以及使用處理器來確定多個(gè)邊緣中跨多個(gè)圖像匹配的一組邊緣。所述方法還可包括:使用處理器,利用依賴于該組邊緣的成本函數(shù)來估計(jì)多個(gè)圖像的相機(jī)姿勢(shì)。
提供此技術(shù)解決方案部分僅僅是為了引入某些概念,而不是為了識(shí)別所要求的主題的任何關(guān)鍵或重要特征。本發(fā)明的許多其他特征和實(shí)施方案將自附圖和以下詳細(xì)描述顯而易見。
本發(fā)明的有利效應(yīng)
利用如本文中所描述的基于邊緣的處理,可在3d模型中以比使用其他常規(guī)技術(shù)的情況更大的準(zhǔn)確度來渲染弱紋理區(qū)域。由于弱紋理區(qū)域中的特點(diǎn)是缺乏特征點(diǎn),所以只依賴于特征點(diǎn)的常規(guī)技術(shù)常常不適合渲染弱紋理區(qū)域。弱紋理區(qū)域常常在重建的3d模型中呈現(xiàn)為不完整。
附圖說明
附圖示出一個(gè)或多個(gè)實(shí)施方案;然而,附圖不應(yīng)理解為將本發(fā)明僅限制到所示的實(shí)施方案。各種方面和優(yōu)點(diǎn)將在審閱以下詳細(xì)描述和參考附圖后即刻變得顯而易見。
圖1是示出例示性數(shù)據(jù)處理系統(tǒng)的框圖。
圖2是示出三維(3d)模型生成的例示性方法的流程圖。
圖3是示出生成平面的例示性方法的流程圖。
圖4是示出確定軸的例示性方法的流程圖。
圖5a、圖5b、圖5c和圖5d是室內(nèi)場景的不同圖像。
圖6是圖5的場景的密集點(diǎn)云的透視圖。
圖7是圖6的密集點(diǎn)云的俯視平面圖。
圖8是圖6的密集點(diǎn)云的另一個(gè)俯視平面圖,其示出生成的平面。
圖9是在移除假平面之后圖6的密集點(diǎn)云的另一個(gè)俯視平面圖。
具體實(shí)施方式
盡管本公開以定義新穎特征的權(quán)利要求結(jié)束,但據(jù)信將從對(duì)結(jié)合附圖的描述的考慮來更好地理解本文中所描述的各種特征。出于示出的目的提供了本公開內(nèi)所描述的過程、機(jī)器、制造及其任何變體。所描述的任何特定結(jié)構(gòu)和功能細(xì)節(jié)將不解釋為限制性的,而是僅僅解釋為權(quán)利要求書的基礎(chǔ)和教導(dǎo)本領(lǐng)域技術(shù)人員以各種方式采用在幾乎任何經(jīng)適當(dāng)詳述的結(jié)構(gòu)中描述的特征的代表性基礎(chǔ)。此外,本公開內(nèi)所使用的術(shù)語和短語并非旨在為限制性的,而是提供對(duì)所描述的特征的可理解描述。
本公開涉及使用邊緣的三維(3d)模型生成。根據(jù)本公開內(nèi)所描述的發(fā)明性布置,可處理二維(2d)圖像以識(shí)別其中所包含的邊緣。可處理邊緣以在2d圖像的不同圖像中來識(shí)別相同的邊緣。可使用成本函數(shù)來估計(jì)相機(jī)姿勢(shì),所述成本函數(shù)至少部分地取決于邊緣。
使用所估計(jì)的相機(jī)姿勢(shì),可生成3d模型。例如,3d模型可以是3d房間場景??墒褂?d點(diǎn)、三角形網(wǎng)格、3d體素等等來生成3d模型。在一個(gè)方面,生成3d模型可包括一個(gè)或多個(gè)附加操作,諸如確定軸、基于邊緣來確定平面、移除假平面和在3d空間中渲染平面。所述平面可表示弱紋理區(qū)域。
利用如本文中所描述的基于邊緣的處理,可在3d模型中以比使用其他常規(guī)技術(shù)的情況更大的準(zhǔn)確度來渲染弱紋理區(qū)域。由于弱紋理區(qū)域的特點(diǎn)是缺乏特征點(diǎn),所以只依賴于特征點(diǎn)的常規(guī)技術(shù)常常不適合渲染弱紋理區(qū)域。弱紋理區(qū)域常常在重建的3d模型中呈現(xiàn)為不完整。例如,如3d模型內(nèi)表示的弱紋理區(qū)域(諸如,墻壁)可呈現(xiàn)為具有許多孔、間隙,或呈現(xiàn)為部分地形成。此外,使用特征點(diǎn)所估計(jì)的相機(jī)姿勢(shì)常常不準(zhǔn)確,從而導(dǎo)致3d模型生成不準(zhǔn)確。
盡管本文中所公開的實(shí)施方案是針對(duì)邊緣的使用,但應(yīng)了解,可結(jié)合基于邊緣的技術(shù)來利用特征點(diǎn)。例如,可出于估計(jì)相機(jī)姿勢(shì)、生成平面等等的目的來使用特征點(diǎn)與邊緣兩者。
可將本文中所描述的發(fā)明性布置實(shí)施為由數(shù)據(jù)處理系統(tǒng)執(zhí)行的方法或過程。在另一個(gè)方面,可將發(fā)明性布置實(shí)施為設(shè)備,諸如具有處理器的數(shù)據(jù)處理系統(tǒng)。處理器可在執(zhí)行程序代碼后即刻執(zhí)行本文中所描述的一個(gè)或多個(gè)操作。在又一個(gè)方面,可將發(fā)明性布置實(shí)施為存儲(chǔ)程序代碼的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,所述程序代碼在執(zhí)行時(shí)致使處理器和/或系統(tǒng)執(zhí)行和/或發(fā)起方法或過程。
為了實(shí)現(xiàn)描述的簡單性和清晰性,諸圖中所示的元件并非一定按比例繪制。例如,出于清晰性,可相對(duì)于其他元件將一些元件的尺寸夸大。此外,在認(rèn)為合適之處,在諸圖當(dāng)中重復(fù)參考數(shù)字以指示對(duì)應(yīng)、類似等等的特征。
圖1是示出例示性數(shù)據(jù)處理系統(tǒng)(系統(tǒng))100的框圖。如所描繪,系統(tǒng)100包括至少一個(gè)處理器(例如,中央處理單元(cpu))105,所述處理器通過系統(tǒng)總線115或其他合適的電路聯(lián)接到存儲(chǔ)器元件110。系統(tǒng)100將程序代碼存儲(chǔ)在存儲(chǔ)器元件110內(nèi)。處理器105執(zhí)行經(jīng)由系統(tǒng)總線115從存儲(chǔ)器元件110存取的程序代碼。存儲(chǔ)器元件110包括一個(gè)或多個(gè)物理存儲(chǔ)器裝置,諸如本地存儲(chǔ)器120及一個(gè)或多個(gè)大容量存儲(chǔ)裝置125。本地存儲(chǔ)器120指隨機(jī)存取存儲(chǔ)器(ram)或通常在實(shí)際執(zhí)行程序代碼期間使用的其他非永久性存儲(chǔ)器裝置??蓪⒋笕萘看鎯?chǔ)裝置125實(shí)施為硬盤驅(qū)動(dòng)器(hdd)、固態(tài)驅(qū)動(dòng)器(ssd)或其它永久性數(shù)據(jù)存儲(chǔ)裝置。系統(tǒng)100還可包括一個(gè)或多個(gè)高速緩沖存儲(chǔ)器(未示出),所述高速緩沖存儲(chǔ)器提供對(duì)至少某個(gè)程序代碼的臨時(shí)存儲(chǔ)以便減少在執(zhí)行期間必須從大容量存儲(chǔ)裝置125檢索程序代碼的次數(shù)。
可選地,輸入/輸出(i/o)裝置(諸如,鍵盤130、顯示裝置135和指示裝置140)可聯(lián)接到系統(tǒng)100。在一些情況下,可將i/o裝置中的一個(gè)或多個(gè)相組合(如在將觸摸屏用作顯示裝置135的情況下)。在所述情況下,顯示裝置135也可實(shí)施鍵盤130和指示裝置140。
i/o裝置可直接地或者通過介入的i/o控制器聯(lián)接到架構(gòu)100。一個(gè)或多個(gè)網(wǎng)絡(luò)適配器145也可聯(lián)接到系統(tǒng)100,以使得架構(gòu)100能夠變成通過介入的專用或公用網(wǎng)絡(luò)聯(lián)接到其他系統(tǒng)、計(jì)算機(jī)系統(tǒng)、遠(yuǎn)程打印機(jī)和/或遠(yuǎn)程存儲(chǔ)裝置。調(diào)制調(diào)解器、電纜調(diào)制調(diào)解器、以太網(wǎng)卡和無線收發(fā)器是可與架構(gòu)100一起使用的不同類型的網(wǎng)絡(luò)適配器145的示例。取決于使用架構(gòu)100所實(shí)施的特定裝置,特定類型的網(wǎng)絡(luò)適配器或多個(gè)網(wǎng)絡(luò)適配器將根據(jù)具體情況而變化。
如圖1中所描繪,存儲(chǔ)器元件110可存儲(chǔ)操作系統(tǒng)150和一個(gè)或多個(gè)應(yīng)用程序155。在一個(gè)方面,由系統(tǒng)100(且特定地,處理器105)來執(zhí)行以可執(zhí)行程序代碼形式所實(shí)施的操作系統(tǒng)150和應(yīng)用程序155。因而,可將操作系統(tǒng)150和應(yīng)用程序155視為系統(tǒng)100的完整部分。由系統(tǒng)100使用、生成和/或操作的操作系統(tǒng)150、應(yīng)用程序155和任何數(shù)據(jù)項(xiàng)目是在由系統(tǒng)100利用時(shí)賦予功能的功能性數(shù)據(jù)結(jié)構(gòu)。
在一個(gè)方面,系統(tǒng)100可以是計(jì)算機(jī)或適合于存儲(chǔ)和/或執(zhí)行程序代碼的其他裝置。系統(tǒng)100可表示包括處理器和存儲(chǔ)器且能夠執(zhí)行本公開內(nèi)所描述的操作的多種計(jì)算機(jī)系統(tǒng)和/或裝置中的任一者。在一些情況下,特定的計(jì)算機(jī)系統(tǒng)和/或裝置可包括比所描述的部件更少的部件或更多的部件??蓪⑾到y(tǒng)100實(shí)施為單個(gè)系統(tǒng)(如所示),或?qū)嵤槎鄠€(gè)聯(lián)網(wǎng)或互連的系統(tǒng),其中每個(gè)系統(tǒng)具有與系統(tǒng)100的架構(gòu)相同或類似的架構(gòu)。
在操作中,系統(tǒng)100可接收多個(gè)二維(2d)圖像160。2d圖像160可屬于特定場景??墒褂靡粋€(gè)相機(jī)或使用不同相機(jī)來拍攝2d圖像160。此外,可從不同有利位置來拍攝2d圖像160,例如使用不同的相機(jī)姿勢(shì)來拍攝。如本領(lǐng)域中已知,“相機(jī)姿勢(shì)”指相機(jī)在拍攝圖像時(shí)的位置和定向。在這種情況下,圖像是2d圖像。
在一個(gè)方面,系統(tǒng)100可檢測(cè)2d圖像160內(nèi)的多個(gè)邊緣。系統(tǒng)100可進(jìn)一步確定來自多個(gè)邊緣的跨2d圖像160而匹配的一組邊緣。系統(tǒng)100可進(jìn)一步使用成本函數(shù)來估計(jì)用于2d圖像160的相機(jī)姿勢(shì)165,所述成本函數(shù)取決于該組邊緣。系統(tǒng)也可使用相機(jī)姿勢(shì)來生成3d模型170。在一個(gè)方面,系統(tǒng)可在3d模型170中生成一個(gè)或多個(gè)平面,所述平面表示圖像160中的一個(gè)或多個(gè)弱紋理區(qū)域,將在本公開內(nèi)進(jìn)一步詳細(xì)描述。
圖2是示出3d模型生成的例示性方法200的流程圖。可由參考圖1所描述的系統(tǒng)來實(shí)施方法200。
方法200在框205中開始,其中系統(tǒng)可接收?qǐng)D像。圖像可以是2d的,諸如照片。圖像可以屬于同一個(gè)3d場景,且具有數(shù)字形式。一般來說,可不對(duì)圖像設(shè)置約束。圖像可在不同時(shí)間、在不同照明條件下拍攝,并且可包括非剛性物體(諸如,人)。在一個(gè)方面,可通過眾包來獲得圖像。圖像可以是無序的。此外,圖像可包括一個(gè)或多個(gè)弱紋理區(qū)域。另外,可不對(duì)用于捕獲圖像的相機(jī)設(shè)置約束。例如,相機(jī)不需要附加的傳感器??捎赏粋€(gè)相機(jī)或由兩個(gè)或兩個(gè)以上不同的相機(jī)來捕獲圖像。
在框210中,系統(tǒng)可檢測(cè)圖像內(nèi)的特征點(diǎn)。系統(tǒng)可使用多種已知的特征點(diǎn)檢測(cè)技術(shù)中的任一種來檢測(cè)特征點(diǎn)。在框215中,系統(tǒng)可跨圖像匹配特征點(diǎn)。例如,系統(tǒng)確定第一圖像中的哪個(gè)特征點(diǎn)與在另一個(gè)不同圖像中找到的特征點(diǎn)匹配或與之相同。在一個(gè)方面,系統(tǒng)可考慮若干對(duì)圖像,并確定針對(duì)這些圖像對(duì)的特征點(diǎn)的匹配??沙鲇谄ヅ涮卣鼽c(diǎn)的目的來考慮每對(duì)圖像。
匹配特征點(diǎn)可包括系統(tǒng)能夠過濾掉或以其他方式移除的離群值。在一個(gè)方面,例如,系統(tǒng)可通過使用離群值匹配來近似估算每對(duì)圖像之間的基本矩陣而過濾掉離群值特征點(diǎn)??蓪⑻卣鼽c(diǎn)之間的成對(duì)匹配組織成軌跡。在一個(gè)示例中,每個(gè)軌跡可指定圖像-特征點(diǎn)對(duì)的列表,其中軌跡中的每個(gè)特征點(diǎn)在所述軌跡中列出的圖像間被識(shí)別為相同的特征點(diǎn)。系統(tǒng)可不止一次識(shí)別出包括相同圖像的那些軌跡。不止一次包括一圖像的軌跡表示特征點(diǎn)已與至少一個(gè)其他圖像中的不同特征點(diǎn)匹配。因此,系統(tǒng)可刪除或移除不止一次出現(xiàn)在軌跡中的圖像。
在執(zhí)行框215時(shí),系統(tǒng)可確定跨圖像匹配的一組特征點(diǎn)。該組特征點(diǎn)可以是圖像內(nèi)的全部特征點(diǎn),或可以是圖像內(nèi)所檢測(cè)到的特征點(diǎn)的子集。
在框220中,系統(tǒng)可檢測(cè)圖像內(nèi)的邊緣。系統(tǒng)可實(shí)施邊緣檢測(cè)技術(shù)以檢測(cè)接收到的圖像內(nèi)的一個(gè)或多個(gè)邊緣??墒褂枚喾N已知的邊緣檢測(cè)技術(shù)中的任一種。在另一個(gè)方面,可使用多種已知的線檢測(cè)技術(shù)中的任一種來識(shí)別邊緣。在框225中,系統(tǒng)可跨圖像匹配檢測(cè)到的邊緣。在一個(gè)實(shí)施方案中,系統(tǒng)可檢測(cè)的每對(duì)可能邊緣,以在圖像成對(duì)的基礎(chǔ)上確定每對(duì)邊緣是否滿足外極線約束。使用外極線約束可能是耗時(shí)的,并且可能需要顯著的計(jì)算資源。在另一個(gè)實(shí)施方案中,可使用先前匹配的特征點(diǎn)和內(nèi)矩陣來定位邊緣匹配,由此降低計(jì)算成本。
在另一個(gè)方面,系統(tǒng)可創(chuàng)建邊緣的軌跡。軌跡可指定一對(duì)或多對(duì)圖像及每個(gè)圖像的所匹配的邊緣。例如,邊緣的軌跡可指定圖像-邊緣對(duì)的列表,其中軌跡中的每個(gè)邊緣在所述軌跡中列出的圖像間被識(shí)別為相同的邊緣。在一些情況下,在每個(gè)圖像中可能沒有找到或定位相同的邊緣。在所述情況下,可刪除所述軌跡,因?yàn)橄到y(tǒng)可將所述邊緣解釋為假邊緣。
在執(zhí)行框225時(shí),系統(tǒng)可確定跨圖像匹配的一組邊緣。該組邊緣可以是圖像內(nèi)所檢測(cè)到的全部邊緣,或可以是圖像內(nèi)所檢測(cè)到的邊緣的子集。
在框230中,系統(tǒng)可執(zhí)行光束法平差。一般來說,光束法平差指確定描述場景幾何結(jié)構(gòu)的3d坐標(biāo)和確定用于捕獲圖像的相機(jī)的相機(jī)姿勢(shì)的過程。例如,給定從不同視點(diǎn)描繪若干3d點(diǎn)的一組圖像,光束法平差可包括完善描述場景幾何結(jié)構(gòu)的3d坐標(biāo)和用于獲取圖像的相機(jī)的相機(jī)姿勢(shì)。該過程根據(jù)最優(yōu)性準(zhǔn)則來完善所注釋的各種參數(shù)。在一個(gè)方面,最優(yōu)性準(zhǔn)則可涉及特征點(diǎn)的對(duì)應(yīng)圖像投影和/或邊緣的圖像投影。系統(tǒng)例如可執(zhí)行增量式光束法平差過程。增量式光束法平差過程的示例描述于snavely等人的“phototourism:exploringphotocollectionsin3d”(美國計(jì)算機(jī)學(xué)會(huì)圖形學(xué)匯刊,第25卷,第3期,pps.835-846(2006年7月))中。
根據(jù)實(shí)施方案,可使用最優(yōu)性準(zhǔn)則(例如,成本函數(shù),如下文在表達(dá)式1中示出)來執(zhí)行光束法平差。
在表達(dá)式1內(nèi),nl是線的數(shù)目;np是特征點(diǎn)的數(shù)目;α控制線與點(diǎn)之間的權(quán)重。例如,α=1僅使用線,而α=o僅使用特征點(diǎn)。表達(dá)式1覆蓋i到n個(gè)相機(jī)和j到m個(gè)軌跡。
出于論述的目的,表達(dá)式1可據(jù)稱由下文示出的兩個(gè)子表達(dá)式(稱為表達(dá)式2和3)形成。表達(dá)式2依賴于邊緣。表達(dá)式3依賴于特征點(diǎn)。
可將表達(dá)式2視為線或邊緣的重投影誤差,其中cij是第j條線相對(duì)于第i個(gè)相機(jī)的權(quán)重。第一部分β1||θpij-θij||量化邊緣的定向方面的誤差。例如,第一部分β1||θpij-θij||限定圖像中的原始邊緣與所述邊緣在3d空間中的投影之間的角度。第二部分β2||lpij-lij||量化邊緣的長度方面的誤差。例如,第二部分β2||lpij-lij||限定原始線與投影在3d空間中的線的長度之間的差異。第三部分||p1ij-o1ij||+||p2ij-o2ij||量化端點(diǎn)方面的誤差。例如,第三部分||p1ij-o1ij||+||p2ij-o2ij||測(cè)算線和投影在3d空間中的線的端點(diǎn)的重投影誤差。值β1、β2和β3分別控制第一部分、第二部分和第三部分的權(quán)重。
給定
表達(dá)式3限定重投影成本,進(jìn)一步描述于snavely等人的“phototourism:exploringphotocollectionsin3d”(美國計(jì)算機(jī)學(xué)會(huì)圖形學(xué)匯刊,第25卷,第3期,pps.835-846(2006年7月))中。一般來說,θi是3d到2d轉(zhuǎn)換的矩陣,其包括相機(jī)姿勢(shì)。在一個(gè)方面,在表達(dá)式3內(nèi),可如在snavely等人的著作內(nèi)所定義來實(shí)施θi。例如,θi可以是相機(jī)參數(shù)的向量(或矩陣),所述相機(jī)參數(shù)包括旋轉(zhuǎn)(由三個(gè)參數(shù)形成)、相機(jī)中心(由三個(gè)參數(shù)形成)和焦距。
在另一個(gè)方面,在表達(dá)式3內(nèi),θi可以是表示相機(jī)性質(zhì)(包括所提及的相機(jī)姿勢(shì))的矩陣。例如,θi可以是表示相機(jī)內(nèi)外參數(shù)的矩陣。相機(jī)內(nèi)參數(shù)與相機(jī)的投影性質(zhì)有關(guān),可包括焦距、圖像傳感器格式和主點(diǎn)的參數(shù)。外參數(shù)可包括世界坐標(biāo)中的相機(jī)變換和旋轉(zhuǎn)(例如,相機(jī)中心)。
由θi來參數(shù)化一組n個(gè)相機(jī)。由pj來參數(shù)化一組m個(gè)軌跡。項(xiàng)qij表示第j個(gè)軌跡在第i個(gè)相機(jī)中的所觀測(cè)到的投影。因此,項(xiàng)p(θi,pj)是將3d點(diǎn)p映射到相機(jī)中具有參數(shù)θ的點(diǎn)的2d投影的投影方程式。項(xiàng)wij用作指示符變量,其中如果相機(jī)i觀測(cè)到點(diǎn)j,那么wij=1,否則wij=0。
在框230之后,在已將上述成本函數(shù)最小化的情況下,確定圖像的相機(jī)姿勢(shì)。如所論述,相機(jī)姿勢(shì)限定相機(jī)的位置和定向。在一個(gè)方面,使用所確定的相機(jī)姿勢(shì),可生成3d模型。
圖3是示出3d重建的另一個(gè)例示性方法300的流程圖。可由如參考圖1所描述的系統(tǒng)來執(zhí)行方法300。在一個(gè)方面,方法300可在已執(zhí)行了方法200且已確定了相機(jī)姿勢(shì)的狀態(tài)下開始。
在框305中,系統(tǒng)可執(zhí)行密集重建。密集重建一般指使用相機(jī)姿勢(shì)由場景的收集到圖像來創(chuàng)建3d模型(例如,密集點(diǎn)云)。密集點(diǎn)云包括一組特征點(diǎn)和一組邊緣。在一個(gè)例示性實(shí)施方式中,框305中所使用的密集重建技術(shù)可以是在furukawa等人的“accurate,dense,androbustmulti-viewstereopsis”(ieee模式分析與機(jī)器智能匯刊,第32卷,第8期,pps.1362-1376(2010年))中所描述的密集重建技術(shù)。
在框310中,系統(tǒng)可確定3d模型的三個(gè)主要軸。在一個(gè)方面中,3d模型可以是針對(duì)室內(nèi)環(huán)境或場景(例如,房間)。在大多數(shù)情況下,室內(nèi)環(huán)境具有可確定的三個(gè)主要軸。在框315中,系統(tǒng)可沿框310中所確定的每個(gè)主要軸來確定最小拐角和最大拐角。
在框320中,系統(tǒng)可針對(duì)邊緣來確定平面。給定最小拐角和最大拐角,系統(tǒng)可使平面適合一組邊緣中的在密集點(diǎn)云內(nèi)的邊緣。例如,對(duì)于每個(gè)邊緣來說,系統(tǒng)可嘗試通過沿主要軸放置兩個(gè)垂直平面來使平面適合所述邊緣,其中所述垂直平面延伸到先前所確定的拐角。在一個(gè)方面,系統(tǒng)可致力于識(shí)別墻壁或其他表面(諸如,工作臺(tái)面、櫥柜等)。
為進(jìn)行說明,系統(tǒng)可從一組邊緣中選擇一個(gè)邊緣。系統(tǒng)確定特定軸,使得所選邊緣與其對(duì)準(zhǔn)。例如,系統(tǒng)可確定邊緣與x軸對(duì)準(zhǔn)。系統(tǒng)將針對(duì)所選邊緣生成兩個(gè)平面。例如,可使用與x軸對(duì)準(zhǔn)的邊緣來沿所述邊緣生成平行于x-z平面的第一平面并沿所述邊緣生成平行于x-y平面的第二平面。例如,系統(tǒng)不生成平行于y-z平面的平面。
在一個(gè)方面,系統(tǒng)可進(jìn)一步識(shí)別彼此平行且接近(例如,在彼此的預(yù)定距離內(nèi))的平面。系統(tǒng)可確定在彼此的預(yù)定距離內(nèi)的平行平面表示同一個(gè)平面。系統(tǒng)可將所識(shí)別的平面合并或組合成單個(gè)平面。
在另一個(gè)方面,針對(duì)邊緣來確定平面可包括使平面相對(duì)于彼此切割。在一些情況下,在一個(gè)方向上延伸的平面可與垂直平面交叉或被垂直平面切割。平面與其他垂直平面的交叉或被其他垂直平面的切割起到限定平面中的區(qū)段的作用。區(qū)段例如可以是在兩個(gè)交叉的垂直平面之間的平面的一部分,或可以是在交叉的垂直平面與如由最小拐角和最大拐角限定的場景外邊緣之間的平面的一部分。
在框325中,系統(tǒng)可識(shí)別假平面。參考框320,所生成的每個(gè)平面可并非為真平面。在一個(gè)方面,系統(tǒng)可根據(jù)平面是否具有位于平面每側(cè)的特征點(diǎn)來區(qū)分假平面與真平面。例如系統(tǒng)可確定在一側(cè)具有3d特征點(diǎn)而在另一側(cè)不具有3d特征點(diǎn)的平面是真平面。真平面可以是墻壁、部分墻壁或分隔物,或其他弱紋理表面。真平面也可在平面自身上具有3d特征點(diǎn)。系統(tǒng)可進(jìn)一步確定在平面兩側(cè)具有3d特征點(diǎn)的所生成的平面是假平面。
在一個(gè)方面,可總體上針對(duì)整個(gè)平面來確定平面是否為假平面。當(dāng)確定是假平面時(shí),可整體上將平面移除。在另一個(gè)方面中,可以每一區(qū)段為基礎(chǔ)來執(zhí)行確定平面是否為假的。在所述情況下,可僅移除平面中使用上述準(zhǔn)則被確定為假的那些區(qū)段。這允許平面的一部分(例如,一個(gè)或多個(gè)區(qū)段)仍然為真平面,而平面中被確定為假的一個(gè)或多個(gè)其他區(qū)段則可被移除。
在框330中,系統(tǒng)可移除或刪除假平面。執(zhí)行框330使得僅留下由系統(tǒng)確定為真平面的那些平面。在一個(gè)方面,一旦確定了真平面并移除了假平面,便獲得場景中的墻壁的更準(zhǔn)確表示。在所述情況下,系統(tǒng)可相對(duì)于所確定的平面來校正或調(diào)整點(diǎn)云,以使所述表示(例如,平面)與密集點(diǎn)云更好地對(duì)準(zhǔn)。
在框335中,系統(tǒng)可渲染平面。例如作為最終平面生成的一部分,系統(tǒng)可在3d模型內(nèi)渲染平面。所得平面是完全成形的固態(tài)區(qū)域。所述平面不包括孔或其他通常在只依賴于特征點(diǎn)創(chuàng)建的3d模型的弱紋理區(qū)域中存在的人工制品。作為框335的一部分,系統(tǒng)也可將紋理投影到平面上。
圖4是示出確定軸的例示性方法400的流程圖。可由如參考圖1所描述的系統(tǒng)來執(zhí)行方法400。在一個(gè)實(shí)施方案中,可執(zhí)行方法400以實(shí)施圖3的框310。
在框405中,系統(tǒng)將從圖像確定的邊緣分組到不同存儲(chǔ)桶(bucket)中。系統(tǒng)操作這樣的邊緣,這些邊緣屬于跨圖像匹配的一組邊緣。系統(tǒng)可根據(jù)定向?qū)⑦吘壏纸M到三個(gè)不同存儲(chǔ)桶中。例如,可將具有相同定向或具有在彼此的預(yù)定量內(nèi)的定向的邊緣放置或指派到同一個(gè)存儲(chǔ)桶中。如本文中所定義,術(shù)語“存儲(chǔ)桶”是指一組邊緣中具有相同或類似定向的一類邊緣。
在框410中,系統(tǒng)確定第一軸是這樣的存儲(chǔ)桶:具有指派給該存儲(chǔ)桶的最大邊緣數(shù)目。具有最大邊緣數(shù)目的存儲(chǔ)桶可被視為最主要方向,且可被認(rèn)為是三個(gè)正交軸中的一個(gè)(例如,第一個(gè))。在框415中,系統(tǒng)可確定第二軸是這樣的存儲(chǔ)桶:具有指派給該存儲(chǔ)桶的第二大邊緣數(shù)目,其中第二大邊緣數(shù)目小于第一大邊緣數(shù)目。具有第二大邊緣數(shù)目的存儲(chǔ)桶可被視為第二最主要方向,且可被認(rèn)為是三個(gè)正交軸中的一個(gè)(例如,第二個(gè))。
在框420中,系統(tǒng)可校正第一主要軸與第二主要軸之間的正交性。在一個(gè)示例中,系統(tǒng)可將格拉姆-施密特技術(shù)應(yīng)用到第二軸,以使第二軸與第一軸正交。通過應(yīng)用校正措施(諸如,格拉姆-施密特),系統(tǒng)可使第二軸精確地正交于第一軸。
在框425中,系統(tǒng)可根據(jù)第一軸和第二軸來確定第三軸。系統(tǒng)可將第三軸(表示第三最主要方向)確定為第一軸與第二軸的交叉積。
參考圖4所描述的過程確保所得軸彼此垂直。由于存在弱紋理區(qū)域,依賴于從密集點(diǎn)計(jì)算出的法線確定主要方向的其他常規(guī)技術(shù)往往不準(zhǔn)確。根據(jù)本文中所公開的發(fā)明性布置,通過在必要時(shí)將校正應(yīng)用到第二軸且將第三軸計(jì)算為第一軸與第二軸的交叉積,系統(tǒng)確保了所有三個(gè)軸彼此垂直。
圖5a、圖5b、圖5c和圖5d(統(tǒng)稱為圖5)是場景的圖像。圖5的照片描繪了室內(nèi)房間。如所示出,圖5的圖像是使用不同相機(jī)姿勢(shì)來拍攝的。
圖6是圖5的場景的密集點(diǎn)云的透視圖。圖6的密集點(diǎn)云示出了跨圖像匹配的檢測(cè)到的特征點(diǎn)。密集點(diǎn)云進(jìn)一步示出了跨圖像匹配且在確定了三個(gè)軸之后被定位在密集點(diǎn)云內(nèi)的邊緣605。
圖7是圖6的密集點(diǎn)云的俯視平面圖。所述平面圖沿y軸向下觀察的角度來示出密集點(diǎn)云,其中平行于y軸的垂直線呈現(xiàn)為點(diǎn)。圖6中的y軸對(duì)準(zhǔn)邊緣現(xiàn)呈現(xiàn)為圓點(diǎn)或點(diǎn)705。圖7還示出了所確定的軸的最小拐角和最大拐角。在這個(gè)示例(為平面圖)中,描繪了x-z平面的最小拐角和最大拐角。可使用最小拐角和最大拐角來限定室內(nèi)房間的界線或邊界。
圖8是圖6的密集點(diǎn)云的另一個(gè)俯視平面圖,其示出生成的平面。在圖8內(nèi),已針對(duì)檢測(cè)到的邊緣生成了平面。如所描繪,針對(duì)邊緣所生成的平面呈現(xiàn)為穿過端點(diǎn)705的線。所述平面平行于x軸(表示平行于x-y平面的平面)且作為平行于z軸的線(表示平行于y-z平面的平面)。表示邊緣的每個(gè)點(diǎn)705使x方向上的線(平面)和z方向上的線(平面)穿過所述點(diǎn)。圖8顯示真假兩種類型的平面。圖8中將幾個(gè)假平面標(biāo)記為805。如所描繪,假平面805具有位于所形成的平面的每一側(cè)上的點(diǎn)。
平面810和815示出了多個(gè)平面位于彼此的預(yù)定距離內(nèi)且可合并成單個(gè)平面的示例。如所描述,將平面合并,之后再移除或識(shí)別假平面。合并之后,可看到,由合并平面810產(chǎn)生的平面被交叉的平面分成了5個(gè)區(qū)段(例如,其中平面815被合并,且其他平行且接近的平面也被合并)。由箭頭820來示出由合并平面810產(chǎn)生的平面的所得區(qū)段。
圖9是在移除假平面之后圖6的密集點(diǎn)云的另一個(gè)俯視平面圖。如所示出,已從俯視平面圖移除了假平面(包括假平面805),從而留下被認(rèn)為是可渲染的真平面的平面(如在此示例中的室內(nèi)墻壁或門)。在圖9的示例中,可以每一區(qū)段為基礎(chǔ)來執(zhí)行假平面移除。如所描繪,一些區(qū)段820被確定為假平面并被移除,而其他區(qū)段則被確定為真平面并保留。
本文中所使用的術(shù)語是僅用于描述特定實(shí)施例的目的而非旨在為限制性的。盡管如此,現(xiàn)仍將呈現(xiàn)貫穿本文件應(yīng)用的幾個(gè)定義。
如本文中所定義,除非上下文另有明確指示,否則單數(shù)形式“一(a/an)”和“所述(the)”也旨在包括復(fù)數(shù)形式。
如本文中所定義,術(shù)語“另一個(gè)”意指至少第二個(gè)或更多個(gè)。
如本文中所定義,除非另有明確闡述,否則術(shù)語“至少一個(gè)”、“一個(gè)或多個(gè)”和“和/或”是開放式表達(dá),其在操作中既是結(jié)合的又是分離的。例如,表達(dá)“a、b和c中的至少一者”、“a、b或c中的至少一者”、“a、b和c中的一個(gè)或多個(gè)”、“a、b或c中的一個(gè)或多個(gè)”和“a、b和/或c”中的每個(gè)意指單獨(dú)a、單獨(dú)b、單獨(dú)c、a和b一起、a和c一起、b和c一起或a、b和c一起。
如本文中所定義,術(shù)語“自動(dòng)地”意指沒有用戶干預(yù)。
如本文中所定義,術(shù)語“計(jì)算機(jī)可讀存儲(chǔ)媒體”意指包含或存儲(chǔ)供由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用的程序代碼的存儲(chǔ)媒體。如本文中所定義,“計(jì)算機(jī)可讀存儲(chǔ)媒體”本身并非暫時(shí)性的傳播信號(hào)。計(jì)算機(jī)可讀存儲(chǔ)媒體可以是但不限于電子存儲(chǔ)裝置、磁性存儲(chǔ)裝置、光學(xué)存儲(chǔ)裝置、電磁存儲(chǔ)裝置、半導(dǎo)體存儲(chǔ)裝置或以上各者的任何合適組合。如本文中所描述,存儲(chǔ)器元件是計(jì)算機(jī)可讀存儲(chǔ)媒體的示例。計(jì)算機(jī)可讀存儲(chǔ)媒體的更多特定示例的非詳盡列表可包括:便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦可編程只讀存儲(chǔ)器(eprom或快閃存儲(chǔ)器)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、便攜式壓縮光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字通用光盤(dvd)、記憶棒、軟盤、機(jī)械編碼裝置(諸如,穿孔卡片或上面記錄有指令的槽中的凸起結(jié)構(gòu)),和以上各者的任何合適的組合。
如本文中所定義,除非另有指示,否則術(shù)語“聯(lián)接”意指連接,可以是直接的(沒有任何介入元件),也可以是間接的(具有一個(gè)或更多個(gè)介入元件)。兩個(gè)元件可通過通信通道、路徑、網(wǎng)絡(luò)或系統(tǒng)來機(jī)械地聯(lián)接、電聯(lián)接或通信地鏈接。
如本文中所定義,除非上下文另有指示,否則術(shù)語“可執(zhí)行操作”或“操作”是由數(shù)據(jù)處理系統(tǒng)或數(shù)據(jù)處理系統(tǒng)內(nèi)的處理器執(zhí)行的任務(wù)。可執(zhí)行操作的示例包括但不限于“處理”、“計(jì)算”、“運(yùn)算”、“確定”、“顯示”、“比較”等等。在這點(diǎn)上,操作指數(shù)據(jù)處理系統(tǒng)(例如,計(jì)算機(jī)系統(tǒng)或類似的電子計(jì)算裝置)的動(dòng)作和/或過程,所述數(shù)據(jù)處理系統(tǒng)操縱表示為計(jì)算機(jī)系統(tǒng)寄存器和/或存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù)并將該數(shù)據(jù)轉(zhuǎn)化成類似地表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器和/或寄存器或其他此類信息存儲(chǔ)、傳輸或顯示裝置內(nèi)的物理量的其他數(shù)據(jù)。
如本文中所定義,術(shù)語“包括”指定所陳述的特征、整體、步驟、操作、元件和/或部件的存在,但并不排除一個(gè)或多個(gè)其他特征、整體、步驟、操作、元件、部件和/或其群組的存在或添加。
如本文中所定義,取決于上下文,術(shù)語“如果”意指“當(dāng)……時(shí)”或“在……后即刻”或“響應(yīng)于……”或“對(duì)……作出響應(yīng)”。因此,取決于上下文,可將短語“如果確定……”或“如果檢測(cè)到[所陳述的條件或事件]”解釋為意指“在確定……后即刻”或“響應(yīng)于確定……”或“在檢測(cè)到[所陳述的條件或事件]后即刻”或“響應(yīng)于檢測(cè)到[所陳述的條件或事件]”或“對(duì)檢測(cè)到[所陳述的條件或事件]作出響應(yīng)”。
如本文中所定義,術(shù)語“一個(gè)實(shí)施方案”、“一實(shí)施方案”或類似語言意指結(jié)合所述實(shí)施方案描述的特定特征、結(jié)構(gòu)或特性被包括在本公開內(nèi)所描述的至少一個(gè)實(shí)施方案中。因此,短語“在一個(gè)實(shí)施方案中”、“在一實(shí)施方案中”和類似語言在本公開各處的出現(xiàn)可但未必全部指同一個(gè)實(shí)施方案。
如本文中所定義,術(shù)語“輸出”意指存儲(chǔ)在物理存儲(chǔ)器元件(例如,裝置)中、寫入到顯示器或其他外圍輸出裝置、發(fā)送或傳輸?shù)搅硪粋€(gè)系統(tǒng)、導(dǎo)出等等。
如本文中所定義,術(shù)語“多個(gè)”意指兩個(gè)或兩個(gè)以上。
如本文中所定義,術(shù)語“處理器”意指被配置成實(shí)施程序代碼中所包含的指令的至少一個(gè)硬件電路。硬件電路可以是集成電路。處理器的示例包括但不限于中央處理單元(cpu)、陣列處理器、向量存儲(chǔ)器、數(shù)字信號(hào)處理器(dsp)、場可編程門陣列(fpga)、可編程邏輯陣列(pla)、專用集成電路(asic)、可編程邏輯電路和控制器。
如本文中所定義,術(shù)語“可對(duì)……作出響應(yīng)”意指容易響應(yīng)于動(dòng)作或事件或容易對(duì)動(dòng)作或事件作出反應(yīng)。因此,如果“可對(duì)第一動(dòng)作作出響應(yīng)”來執(zhí)行第二動(dòng)作,那么第一動(dòng)作的發(fā)生與第二動(dòng)作的發(fā)生之間存在因果關(guān)系。術(shù)語“對(duì)……作出響應(yīng)”指示因果關(guān)系。
如本文中所定義,術(shù)語“用戶”意指人。
本文中可使用術(shù)語第一、第二等來描述各種元件。除非另有陳述或上下文另有明確指示,否則這些元件應(yīng)不受這些術(shù)語的限制,因?yàn)檫@些術(shù)語僅用來區(qū)分一個(gè)元件與另一個(gè)元件。
計(jì)算機(jī)程序產(chǎn)品可包括計(jì)算機(jī)可讀存儲(chǔ)媒體(或多個(gè)媒體),所述計(jì)算機(jī)可讀存儲(chǔ)媒體上面具有計(jì)算機(jī)可讀程序指令以致使處理器實(shí)施本發(fā)明的諸個(gè)方面。可將本文中所描述的計(jì)算機(jī)可讀程序指令從計(jì)算機(jī)可讀存儲(chǔ)媒體下載到相應(yīng)的計(jì)算/處理裝置,或經(jīng)由網(wǎng)絡(luò)(例如,因特網(wǎng)、lan、wan和/或無線網(wǎng)絡(luò))下載到外部計(jì)算機(jī)或外部存儲(chǔ)裝置。網(wǎng)絡(luò)可包括傳輸銅纜、傳輸光纖、無線傳輸、路由器、防火墻、開關(guān)、網(wǎng)關(guān)計(jì)算機(jī)和/或包括邊緣服務(wù)器的邊緣裝置。每個(gè)計(jì)算/處理裝置中的網(wǎng)絡(luò)適配器卡或網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計(jì)算機(jī)可讀程序指令,并轉(zhuǎn)遞計(jì)算機(jī)可讀程序指令以存儲(chǔ)在相應(yīng)的計(jì)算/處理裝置內(nèi)的計(jì)算機(jī)可讀存儲(chǔ)媒體中。
用于實(shí)施本文中所描述的發(fā)明性布置的操作的計(jì)算機(jī)可讀程序指令可以是匯編指令、指令集架構(gòu)(isa)指令、機(jī)器指令、依賴機(jī)器的指令、微代碼、固件指令、狀態(tài)設(shè)定數(shù)據(jù)或以一種或多種編程語言的任一組合撰寫的源代碼或者對(duì)象代碼(包括面向?qū)ο蟮木幊陶Z言和/或程序性編程語言)。計(jì)算機(jī)可讀程序指令可完全在用戶計(jì)算機(jī)上執(zhí)行,部分地在用戶計(jì)算機(jī)上執(zhí)行,作為獨(dú)立軟件包來執(zhí)行,部分地在用戶計(jì)算機(jī)上且部分地在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行,或完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行的情況下,遠(yuǎn)程計(jì)算機(jī)可通過任何類型的網(wǎng)絡(luò)(包括lan或wan)連接到用戶計(jì)算機(jī),或可連接到外部計(jì)算機(jī)(例如,通過因特網(wǎng)使用因特網(wǎng)服務(wù)提供商)。在一些情況下,包括例如可編程邏輯電路、fpga或pla的電子電路可通過利用計(jì)算機(jī)可讀程序指令的狀態(tài)信息對(duì)電子電路個(gè)人化來執(zhí)行計(jì)算機(jī)可讀程序指令,以便執(zhí)行本文中所描述的發(fā)明性布置的方面。
本文中參考方法、設(shè)備(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖附圖和/或框圖來描述發(fā)明性布置的某些方面。將理解,可由計(jì)算機(jī)可讀程序指令(例如,程序代碼)來實(shí)施流程圖附圖和/或框圖的每個(gè)框以及流程圖附圖和/或框圖中的框的組合。
可將這些計(jì)算機(jī)可讀程序指令提供到通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生機(jī)器,使得經(jīng)由計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器來執(zhí)行的指令創(chuàng)建了用于實(shí)施流程圖和/或框圖的一個(gè)或多個(gè)框中所指定的功能/動(dòng)作的手段。這些計(jì)算機(jī)可讀程序指令也可存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)媒體中,并可以指導(dǎo)計(jì)算機(jī)、可編程數(shù)據(jù)處理設(shè)備和/或其他設(shè)備以特定方式起作用,使得其中存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)媒體包括制造的產(chǎn)品,所述制造的產(chǎn)品包括實(shí)施流程圖和/或框圖的一個(gè)或多個(gè)框中所指定的操作的各個(gè)方面的指令。
也可將計(jì)算機(jī)可讀程序指令加載到計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備或其他裝置上,以致使在計(jì)算機(jī)、其他可編程數(shù)據(jù)處理設(shè)備或其他裝置上執(zhí)行一系列操作從而產(chǎn)生計(jì)算機(jī)實(shí)施過程,使得在計(jì)算機(jī)、其他可編程設(shè)備或其他裝置上執(zhí)行的指令實(shí)施流程圖和/或框圖的一個(gè)或多個(gè)框中所指定的功能/動(dòng)作。
諸圖中的流程圖和框圖示出了根據(jù)發(fā)明性布置的各種方面的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)施方式的架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)框可表示指令的模塊、區(qū)段或部分,所述模塊、區(qū)段或部分包括用于實(shí)施指定操作的一個(gè)或多個(gè)可執(zhí)行指令。在一些替代性實(shí)施方式中,框中所注釋的操作可不按諸圖中所注釋的順序執(zhí)行。例如,取決于所涉及的功能,連續(xù)示出的兩個(gè)框可基本上同時(shí)執(zhí)行,或所述框可有時(shí)按相反次序執(zhí)行。還將注意,可以由專用的基于硬件的系統(tǒng)來實(shí)施框圖和/或流程圖說明的每個(gè)框以及框圖和/或流程圖說明中的框的組合,所述系統(tǒng)執(zhí)行指定的功能或動(dòng)作或?qū)嵤S糜布c計(jì)算機(jī)指令的組合。
可在下文權(quán)利要求中找到的所有手段或步驟附加功能元件的對(duì)應(yīng)結(jié)構(gòu)、材料、動(dòng)作和等同物旨在包括用于與如具體地要求的其它所要求元件相組合來執(zhí)行功能的任何結(jié)構(gòu)、材料或動(dòng)作。
一種方法可包括:使用處理器來檢測(cè)多個(gè)圖像中的多個(gè)邊緣;使用處理器來確定多個(gè)邊緣中跨多個(gè)圖像匹配的一組邊緣;以及使用處理器,利用成本函數(shù)來估計(jì)多個(gè)圖像的相機(jī)姿勢(shì)。
該方法可包括根據(jù)相機(jī)姿勢(shì)和該組邊緣為3d模型生成平面。
生成平面可包括根據(jù)該組邊緣來確定三個(gè)正交軸。
確定三個(gè)正交軸可包括:根據(jù)定向?qū)⒃摻M邊緣中的邊緣分組到多個(gè)存儲(chǔ)桶中;將第一軸確定為包括最大數(shù)目的邊緣的存儲(chǔ)桶;將第二軸確定為包括第二大數(shù)目的邊緣的存儲(chǔ)桶;以及將第三軸確定為第一軸與第二軸的交叉積。在一個(gè)方面,可將第二軸調(diào)整為與第一軸正交。
所述方法可包括:針對(duì)該組邊緣中的邊緣來確定平面;從所確定的平面中識(shí)別假平面;以及移除假平面。
所述方法還可包括渲染平面。
一種系統(tǒng)可包括處理器,該處理器經(jīng)編程以發(fā)起可執(zhí)行操作。該可執(zhí)行操作可包括:檢測(cè)多個(gè)圖像中的多個(gè)邊緣;確定多個(gè)邊緣中跨多個(gè)圖像匹配的一組邊緣;以及利用依賴于該組邊緣的成本函數(shù)來估計(jì)多個(gè)圖像的相機(jī)姿勢(shì)。
該處理器可進(jìn)一步經(jīng)編程以發(fā)起可執(zhí)行操作,該可執(zhí)行操作包括:根據(jù)相機(jī)姿勢(shì)和該組邊緣來針對(duì)3d模型生成平面。
生成平面可包括根據(jù)該組邊緣來確定三個(gè)正交軸。
確定三個(gè)正交軸可包括:根據(jù)定向?qū)⒁唤M邊緣中的邊緣分組到多個(gè)存儲(chǔ)桶中;將第一軸確定為包括最大數(shù)目的邊緣的存儲(chǔ)桶;將第二軸確定為包括第二大數(shù)目的邊緣的存儲(chǔ)桶;以及將第三軸確定為所述第一軸與所述第二軸的交叉積。處理器可進(jìn)一步經(jīng)編程以發(fā)起可執(zhí)行操作,可執(zhí)行操作可包括:將第二軸調(diào)整為與第一軸正交。
在另一個(gè)方面,處理器可經(jīng)編程以發(fā)起可執(zhí)行操作,可執(zhí)行操作包括:針對(duì)該組邊緣中的邊緣來確定平面;從所確定的平面中識(shí)別假平面;以及移除假平面。
處理器還可經(jīng)編程以發(fā)起可執(zhí)行操作,可執(zhí)行操作包括渲染平面。
一種計(jì)算機(jī)程序產(chǎn)品可包括上面存儲(chǔ)有程序代碼的計(jì)算機(jī)可讀存儲(chǔ)媒體。程序代碼可由處理器來運(yùn)行以執(zhí)行一種方法。該方法可包括:使用處理器來檢測(cè)多個(gè)圖像中的多個(gè)邊緣;使用處理器來確定多個(gè)邊緣中跨多個(gè)圖像匹配的一組邊緣;以及使用處理器,利用依賴于該組邊緣的成本函數(shù)來估計(jì)多個(gè)圖像的相機(jī)姿勢(shì)。
該方法可包括根據(jù)相機(jī)姿勢(shì)和該組邊緣來針對(duì)3d模型生成平面。
生成平面可包括根據(jù)該組邊緣來確定三個(gè)正交軸。
確定三個(gè)正交軸可包括:根據(jù)定向?qū)⒃摻M邊緣中的邊緣分組到多個(gè)存儲(chǔ)桶中;將第一軸確定為包括最大數(shù)目的邊緣的存儲(chǔ)桶;將第二軸確定為包括第二大數(shù)目的邊緣的存儲(chǔ)桶;以及將第三軸確定為第一軸與第二軸的交叉積。所述方法還可包括將第二軸調(diào)整為與第一軸正交。
在另一個(gè)方面,所述方法可包括:針對(duì)該組邊緣中的邊緣來確定平面;從所確定的平面中識(shí)別假平面;移除假平面;以及渲染平面。
本文中所提供的發(fā)明性布置的描述是僅用于示出的目的,而并非旨在詳盡的或被限制到所公開的形式和示例。選擇本文中所使用的術(shù)語是為了解釋發(fā)明性布置的原理、實(shí)際應(yīng)用或?qū)κ袌錾习l(fā)現(xiàn)的技術(shù)的技術(shù)改進(jìn),或使得本領(lǐng)域其他普通技術(shù)人員能夠理解本文中所公開的實(shí)施方案。在不背離所描述的發(fā)明性布置的范圍和精神的情況下,許多修改和變化將為本領(lǐng)域普通技術(shù)人員所顯而易見。因此,應(yīng)參考所附權(quán)利要求而非以上公開內(nèi)容,權(quán)利要求表示這些特征和實(shí)施方式的范圍。