本申請為分案申請,其母案的發(fā)明名稱為“三維成像系統(tǒng)”,申請日為2010年11月19日,申請?zhí)枮?01080068903.3。
背景技術(shù):
多項(xiàng)專利,其中每一項(xiàng)都包括gharib作為發(fā)明者并被轉(zhuǎn)讓給加州理工學(xué)院(californiainstituteoftechnology),覆蓋了用于執(zhí)行采用與單成像儀鏡頭以及一個(gè)或多個(gè)相機(jī)/成像儀相結(jié)合的多孔徑散焦的輪廓測定(profilometry)的有用硬件配置。這些專利包括編號為6,278,847、7,006,132、7,612,869和7,612,870的美國專利,所有這些專利都由于此的受讓人所許可,并且通過引用在其整體上結(jié)合到本文中。參考這些專利可以理解散焦原理,其中二維掃描數(shù)據(jù)被用于生成三維坐標(biāo)信息。本文描述了用于應(yīng)用這些散焦原理的進(jìn)一步改進(jìn)的硬件。
不管這種硬件改進(jìn),對于聚集通過散焦所確定的三維信息以便映射對象的表面,靈敏的位置信息是必需的。該位置信息—通常被稱為相機(jī)“姿態(tài)”—可以通過不同方式所獲得。對于zhang(轉(zhuǎn)讓給3m)的編號為7,605,817的美國專利描述一種方法,以及對于gharib(轉(zhuǎn)讓給加州理工學(xué)院)的編號為2009/0295908的美國專利描述另一種。兩種方法都無法提供本文所描述的姿態(tài)技術(shù)的優(yōu)點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
因此,可選地,公開了用于執(zhí)行對象的輪廓測定的硬件和軟件配置。描述了有優(yōu)勢的成像裝置(即,成像儀、相機(jī)或掃描儀)。同樣描述了有優(yōu)勢的用以確定成像儀位置的方法。雖然最好一起使用,但所述的每一個(gè)方面都可以不依賴于其他方面而被使用。而且,該教導(dǎo)可以在包括速度測量等的其他領(lǐng)域中得到應(yīng)用。
三維信息可以通過使用手持成像儀/相機(jī)/掃描儀來獲得。有時(shí),要掃描的主體大于掃描儀的視場,和/或?qū)⒃撝黧w從不同的有利位置進(jìn)行掃描。為捕獲這種信息,掃描儀裝置的姿態(tài)在不同的時(shí)刻改變。然后,可以與跨越任意數(shù)量的圖像場景,在空間相關(guān)的基礎(chǔ)上確定相機(jī)姿態(tài)相結(jié)合來準(zhǔn)備組合或聚集的圖像場景。在給定相機(jī)姿態(tài)確定的保真度的情況下,其在下文中稱為相機(jī)的“真實(shí)姿態(tài)”。
用于通過比較場景來確定相機(jī)位置操作的這種實(shí)現(xiàn)是潛在可匹配的,對于該場景,指示場景的信息已經(jīng)被確定。(其中匹配可以通過各種技術(shù)執(zhí)行,包括互相關(guān)、最小均方、超分辨率piv或下文進(jìn)一步詳細(xì)闡述的包括扭曲/反扭曲的方法)。最終或?qū)嶋H(即,出于組合用于系統(tǒng)輸出的數(shù)據(jù)集的目的)的相機(jī)位置的真實(shí)姿態(tài)的確定在圖像捕獲后的后處理設(shè)定中執(zhí)行。
基于在圖像捕獲過程中(即,如以“實(shí)時(shí)”)執(zhí)行的粗略精確的相機(jī)位置確定(即“粗略姿態(tài)”),場景被指示為潛在可匹配的。執(zhí)行以“實(shí)時(shí)”進(jìn)行的處理和其他行動,使得用戶無法識別系統(tǒng)性能中的滯后。當(dāng)可能時(shí),通過匹配(如上述)基于數(shù)據(jù)集的給定暫定姿態(tài)信息來生成粗略姿態(tài)。
要在確定粗略姿態(tài)(并不再依賴)方面使用的初始相機(jī)位置信息(即,“暫定姿態(tài)”)可以以多種方式被生成。一般地,采用穩(wěn)健的過程來找到暫定姿態(tài)。一種方法是使用將得自于一幀的可易識別特征的簡化數(shù)據(jù)集與來自后繼幀的可易識別特征的簡化數(shù)據(jù)集進(jìn)行比較的標(biāo)準(zhǔn)技術(shù)。例如,參見在?0010處的美國專利公開2008/0201101(描述申請優(yōu)先權(quán)日之前的本領(lǐng)域技術(shù)現(xiàn)狀)。然而,通過將當(dāng)前幀中的這種特征與從先前(例如,20至100)幀累積或聚集的那些特征進(jìn)行比較,這樣的方法可以被改變和增強(qiáng)。
在任何情況下,暫定姿態(tài)本身不以任何方式被使用于所述的方法中以用于組合主體數(shù)據(jù)以產(chǎn)生掃描儀輸出。對于按需要提供用于牙冠產(chǎn)生和/或其他高精度輪廓測定應(yīng)用的可運(yùn)用圖像文件輸出,其分辨率遠(yuǎn)達(dá)不到本系統(tǒng)的要求。然而,在某些情況下,暫定姿態(tài)數(shù)據(jù)在通過空間/全局匹配執(zhí)行真實(shí)姿態(tài)確定方面可以替代粗略姿態(tài)數(shù)據(jù)。
使用一個(gè)比喻,暫定姿態(tài)提供位置數(shù)據(jù),類似于為美國郵遞指明州。更接近的位置—類似于調(diào)出區(qū)域的郵政編碼—通過粗略姿態(tài)過程進(jìn)行確定。真實(shí)姿態(tài)—類似于特定的郵政信箱位置—被單獨(dú)用于提供最終交付。
使用真實(shí)姿態(tài)用于圖像聚集,從而避免了誤差疊加以及與不精確地址信息相關(guān)聯(lián)的數(shù)據(jù)/包丟失。使用暫定或粗略姿態(tài)使得找到真實(shí)姿態(tài)在計(jì)算上是可行的(當(dāng)在較長掃描中—如在完整下頜的掃描中—采用粗略姿態(tài)時(shí)尤其如此,為此粗略姿態(tài)空間精度上的增強(qiáng)更加明顯)。
更直接地,“暫定姿態(tài)”是暫時(shí)被使用的位置信息,但是其是相當(dāng)不確定和初步的?!按致宰藨B(tài)”仍是不確定的,但在描述相機(jī)位置方面是更加精確的(粗略精確)。“真實(shí)姿態(tài)”是相機(jī)位置的確定,其精確到為出于預(yù)期目的而滿足系統(tǒng)規(guī)范所需的程度。作為一個(gè)例子,此精度是這樣的,使得其可以提供具有以下規(guī)范的輪廓測定輸出文件:對于單個(gè)牙齒約35微米或更好的rms誤差,以及對于3個(gè)牙齒約40微米或更好的rms誤差。
在提供這種結(jié)果方面,于此的發(fā)明人已發(fā)現(xiàn),當(dāng)可能時(shí),對于在確定真實(shí)姿態(tài)方面進(jìn)一步利用,改進(jìn)暫定姿態(tài)以生成粗略姿態(tài)是重要的,因?yàn)閷Π错樞?時(shí)間生成的位置信息(即,暫定姿態(tài))的依賴導(dǎo)致誤差的疊加或積累。當(dāng)掃描重要/相關(guān)區(qū)域(如在用于牙冠產(chǎn)生的掃描中)時(shí),生成的誤差可能太大以至于無法精確地聚集信息以產(chǎn)生相關(guān)模型。
這里考慮的另一方面是執(zhí)行匹配本身的方式。采用了各種技術(shù)。這些技術(shù)包括如下所述的互相關(guān)技術(shù),以及在總體“基于姿態(tài)匹配”的過程中可選地結(jié)合旋轉(zhuǎn)元件。旋轉(zhuǎn)一幀以更緊密地匹配具有某種程度上已知的(即,暫定或粗略了解的)空間關(guān)系的另一幀允許了互相關(guān),此互相關(guān)不能以其他方式發(fā)生。
就有優(yōu)勢的硬件實(shí)現(xiàn)而言,在進(jìn)行所引用的方法時(shí),其采用具有多孔徑的單鏡頭。優(yōu)選的實(shí)施例,采用了商業(yè)上可獲得的傳感器的不同顏色通道,以利用簡化的硬件來捕獲不同波長的光(可選地由諸如led的單色光源所發(fā)射)。如此,不需要額外的光束分離器、帶鎖定的對準(zhǔn)控制器或其他繁瑣的硬件,從而允許產(chǎn)生高度緊湊和穩(wěn)?。ǚ勒饎?、熱循環(huán)等)的成像儀機(jī)頭。
本發(fā)明包括主體裝置和方法,包括體現(xiàn)了其的硬件和軟件。更詳細(xì)的討論結(jié)合下文中的附圖來呈現(xiàn)。
此申請要求2010年9月3日提交的標(biāo)題為“具有多次確定的三維圖像系統(tǒng)”的美國臨時(shí)專利申請61/380094的權(quán)益,該申請通過引用在其整體上被結(jié)合到本文中。
附圖說明
本文所提供的附圖不一定按比例繪制,為清晰放大了某些組件和特征。從所描繪的實(shí)施例可以想到本發(fā)明的變形。因此,附圖中本發(fā)明的方面和元件的描繪并不意在限制本發(fā)明的范圍。
在附圖中,圖1a示出了實(shí)施例的硬件的框圖,以及圖1b說明了與商業(yè)上可獲得的顏色傳感器相關(guān)聯(lián)的過濾器特性;圖2示出了概要流程圖;圖3a-3c示出了圖2中實(shí)時(shí)活動的更詳細(xì)的流程圖;圖4a和4b詳細(xì)描述了互相關(guān)匹配;圖4c是說明3-d點(diǎn)位置確定的流程圖;圖5圖解說明了掃描過程;圖6說明了結(jié)合獲取主體牙齒的圖像的多個(gè)不同庫的使用;圖7示出了執(zhí)行全局匹配的方式;圖8說明了在參考圖3c和圖7時(shí)基于姿態(tài)的扭曲的過程中的幀查找和平移;以及圖9在功能上詳細(xì)描述了基于姿態(tài)的扭曲的技術(shù)。
具體實(shí)施方式
本發(fā)明的各種示例性實(shí)施例在以下被描述。以非限制性的意義來對這些示例做出引用。它們被提供來說明本發(fā)明的更廣泛可適用的方面。在不脫離本發(fā)明的真實(shí)精神和范圍的情況下,可對所描述的發(fā)明做出各種改變以及可替換等同物。此外,可以做出許多修改,來針對本發(fā)明的一個(gè)或多個(gè)目標(biāo)、精神或范圍,適應(yīng)特定的情況、材料、物質(zhì)的組成、過程、一個(gè)或多個(gè)過程動作或步驟。這種修改意在處于本文所做出的權(quán)利要求的范圍之內(nèi)。
成像硬件
圖1a示出了硬件實(shí)施例的框圖。手持式掃描儀??100被用于對對象99成像。掃描儀100具有容納多個(gè)光學(xué)和電氣物品的外部殼體102。掃描儀可包括任何類型的相機(jī)140或接收光學(xué)信息并將該光學(xué)信息轉(zhuǎn)換成電信息的任何其他裝置。例如,這可能包括ccd相機(jī)、cmos圖像傳感器或?qū)⒖梢姽庾愚D(zhuǎn)換成電信號的任何其他種類的光電傳感器。相機(jī)140產(chǎn)生指示二維信息和/或三維信息中其一或二者的輸出信息。二維信息可指的是x和y坐標(biāo),被定義為垂直于在成像裝置和正被成像的對象之間的z軸方向111的坐標(biāo)。第三維信息可以包括正交于x和y坐標(biāo)并指示相機(jī)110與正被成像的對象之間的距離的z軸坐標(biāo)。如常規(guī)一樣,坐標(biāo)軸也可以被傾斜和/或反轉(zhuǎn),因?yàn)椴灰鈭D限于此特定的坐標(biāo)布局。
圖像信息可被存儲為x、y和z坐標(biāo),或可以按照任何其他形式被存儲,諸如三維點(diǎn)云、三維網(wǎng)格或可以表示二維和/或三維信息的任何其他形式。
窗口105被形成于允許掃描三維對象99的掃描儀100的一部分中。在一個(gè)實(shí)施例中,這可以被用于掃描牙科對象,例如牙齒,以形成牙齒圖。雖然實(shí)施例描述掃描牙齒,但被成像的對象99可以是任何對象、對象的集合、對象的部分或其他標(biāo)的物。例如,在牙科成像應(yīng)用中,對象99可以包括牙齒、牙齒的四分之一圓周、或從其期望虛擬牙印模的牙齒的完整集合。在其他實(shí)施例中,對象可能是某些其他醫(yī)療主體,例如,眼、鼻、頭、耳或其他。
包括不同顏色光元件115、116的照明器將光提供到牙齒99上。被照明對象的圖像同樣通過窗口105被接收。隅角鏡120將所接收的輻射反射到光學(xué)系統(tǒng)125。在其他實(shí)施例中,系統(tǒng)可以在沒有隅角鏡的情況下進(jìn)行操作。
光學(xué)系統(tǒng)可以包括透鏡130,以及具有多個(gè)孔徑135的掩模。孔徑135可以被顏色編碼,即一個(gè)孔徑可以僅傳遞或主要傳遞藍(lán)顏色的光,而另一個(gè)孔徑可僅傳遞其中具有紅顏色的光。照明115、116可提供匹配掩模顏色的顏色,這里藍(lán)色照明來自115而紅色照明來自116。這產(chǎn)生信息的兩個(gè)不同通道,各通過兩個(gè)孔徑中的每個(gè)。本文所描述的在這兩個(gè)不同通道之間進(jìn)行區(qū)分,以獲得來自兩個(gè)通道的不同信息。
通過孔徑135的光被提供給電子相機(jī)140,其產(chǎn)生指示通過孔徑所接收的光的電輸出。相機(jī)通過電纜145被連接到包括用于驅(qū)動相機(jī)和分析信息的軟件的計(jì)算裝置150。電線145可以包括用于驅(qū)動相機(jī)的電力,并且還可以接收來自相機(jī)的信息。
計(jì)算裝置150可以是具有根據(jù)所存儲的程序進(jìn)行操作的微處理器153的通用處理器,該程序根據(jù)本申請的技術(shù)而被描述。計(jì)算裝置還可以或可替代地包括圖形處理單元或gpu155,例如,在驅(qū)動顯示器160的視頻卡中。例如,gpu155可以是ati或nvidia的視頻卡。計(jì)算裝置還可以或可替代地包括現(xiàn)場可編程存儲器(例如門陣列)或任何定制的硬件或定制的邏輯。
在一個(gè)實(shí)施例中,圖1a中的便攜手持式掃描儀可以被移動,同時(shí)仍獲得關(guān)于被掃描區(qū)域的信息。由于相機(jī)在多個(gè)不同時(shí)刻中每一個(gè)移動,所以獲得了關(guān)于該新相機(jī)位置的新信息。這允許了最終被成像的總體對象99大于窗口105。
相機(jī)140可以是標(biāo)準(zhǔn)彩色相機(jī)(例如,microntechnology,inc所生產(chǎn)的1/3-英寸soc百萬像素cmos數(shù)字圖像傳感器),其使用已經(jīng)是相機(jī)140內(nèi)的圖像傳感器的一部分的顏色過濾器陣列來分離顏色。相機(jī)140的顏色過濾器陣列部分上的過濾器在彩色射線(此處為紅色和藍(lán)色通道)之間進(jìn)行分離,以獲取信息并在由孔徑135上的顏色過濾器所傳遞的彩色射線之間進(jìn)行區(qū)分。來自每一個(gè)顏色過濾孔徑的信息僅由相機(jī)140的適當(dāng)?shù)倪^濾器部分所拾取。
顏色過濾器陣列可以是bayer過濾器,例如在編號為3,971,065的美國專利中所描述的,或者可替代地可以是不同種類的顏色過濾,例如cygm過濾器和rgbe過濾器或定制的過濾器陣列(例如,如果存在被編碼為藍(lán)色和紅色的兩個(gè)孔徑,則該過濾器陣列將具有藍(lán)色和紅色的交替過濾器)。結(jié)合定制的兩色過濾器的相機(jī)將具有結(jié)合兩色兩孔徑系統(tǒng)使用全部可用傳感器區(qū)域的優(yōu)點(diǎn)。
然而,在這種標(biāo)準(zhǔn)成像儀的使用中,僅使用了三個(gè)通道顏色(rgb)中的兩個(gè)(r,b)。這意味著光電傳感器的部分資源實(shí)質(zhì)上被浪費(fèi)了:未使用的顏色所處的區(qū)域。理論上,這樣的方法將系統(tǒng)的動態(tài)范圍減少了相當(dāng)于不能被使用的光電傳感器表面的量的比率。對于傳統(tǒng)的bayer過濾器,這粗略地總計(jì)為傳感器面積的一半。
令人驚訝的是,這樣的方法還是被有利地實(shí)現(xiàn)了。記錄次優(yōu)數(shù)據(jù)集的傳統(tǒng)顧慮不會有問題地阻礙系統(tǒng)實(shí)體。事實(shí)上,從處理的觀點(diǎn)來看,通過僅選擇紅色和藍(lán)色通道,比如果記錄第三個(gè)綠色編碼孔徑和綠色通道的情況引入了更少的噪聲。參照圖1b來說明此事實(shí)。即,所說明用于傳感器的紅色(r)和藍(lán)色(b)過濾器的分離本質(zhì)上確保(對于給定的強(qiáng)度截止或閾值而言)穿過紅色編碼孔徑的光只被記錄在傳感器的紅色通道上,而對于藍(lán)色反之亦然。如果引入綠色通道,來自綠色孔徑的光將被紅色和藍(lán)色傳感器通道中的每個(gè)更容易地吸收,并且由于透射光譜重疊,綠色傳感器通道(g)將更容易吸收(再次,在給定的閾值下)來自紅色和藍(lán)色編碼孔徑中的每個(gè)的光。
已經(jīng)發(fā)現(xiàn),避免這種“串音”是為了相比對像素計(jì)數(shù)中的(有效)減少進(jìn)行補(bǔ)償?shù)母蓛舻膫鞲衅鲾?shù)據(jù)。基本上,通道的次選擇能夠產(chǎn)生具有低成本(因?yàn)樗鼈兪乾F(xiàn)成可獲得的)傳感器組件的高質(zhì)量圖像系統(tǒng)。
雖然發(fā)明的硬件方面集中在上文,但應(yīng)當(dāng)理解,發(fā)明性軟件和相關(guān)聯(lián)的方法可以采用不同數(shù)量的孔徑和/或顏色。無論哪種情況下,都可以采用復(fù)合顏色(例如琥珀色或白色),即使上文討論了謹(jǐn)慎著色的發(fā)射器。值得注意的是,放棄使用綠色通道,以實(shí)現(xiàn)最終被使用的顏色通道之間的進(jìn)一步分離,可能在此最后階段具有更加顯著的好處。
散焦
如本文中一般所提及的,許多參考文獻(xiàn)(包括對于gharib所提到的專利)討論了“散焦”的概念。在最廣泛的意義上,“散焦”涉及通過已知空間關(guān)系的多個(gè)針孔相機(jī)類型的孔徑來進(jìn)行成像??讖较拗屏擞上鄼C(jī)傳感器系統(tǒng)所接收的圖像。無論使用單一傳感器還是多個(gè)協(xié)調(diào)傳感器,比較從通過每個(gè)孔徑所接收到的圖像所識別出的特征的x,y坐標(biāo)中的差異,以確定那些特征的z坐標(biāo)值。
將被記錄在距被掃描對象的某一距離處的特征之間的標(biāo)量差,與在另一距離處的那些標(biāo)量差進(jìn)行比較。例如,通過孔徑的三角形布置成像所得的三角形圖案之間的差異,被用于確定z軸的差異。另外,校準(zhǔn)集可以被用于改善結(jié)果的精度。通過對已知的網(wǎng)格圖案進(jìn)行成像,并存儲校準(zhǔn)表,所記錄圖像數(shù)據(jù)的非線性可由“反扭曲”圖像特征位置說明。
邊緣定義
在掃描不規(guī)則體(例如,一個(gè)或多個(gè)牙齒)以產(chǎn)生三維數(shù)據(jù)輸出文件(例如,用于牙冠制造中使用的stl文件)時(shí),定義填充三維掃描數(shù)據(jù)所到達(dá)的邊界是有用的。這樣的邊界(或“邊緣”)定義,可能有助于定義將用戶注意力集中在區(qū)域上的掃描活動以生成完整掃描的程度。而且,在某些情況下,其中掃描是未完成的,但邊緣已經(jīng)被定義,可以通過插值對未掃描區(qū)域的近似值替代地進(jìn)行填充。更進(jìn)一步,良好定義的邊界有助于離群點(diǎn)過濾(pointoutlierfiltering)(即,表面內(nèi)側(cè)的計(jì)算中不考慮邊緣視圖之外的點(diǎn))。
對邊緣的用戶定義提供了某些好處。當(dāng)通過在正被掃描或已被掃描的對象的數(shù)字表示上(使用指揮棒、觸摸屏界面或其他裝置)數(shù)字化繪制線或線段來執(zhí)行時(shí),用戶可以基于觀察和經(jīng)驗(yàn)做出判斷呼叫。以這種方式利用人的能力,可以幫助避免對昂貴或繁瑣植入設(shè)計(jì)的需要和/或引入用戶的定性的“眼睛”可能以其他方式避免的誤差。
在如上所述的用戶產(chǎn)生的邊緣定義的方法中,x和y坐標(biāo)信息被記錄在屏幕的參考平面中。在這樣做時(shí),一條或多條線或曲線由用戶繪制在所顯示(已被掃描或?qū)⒈粧呙璧模?shí)體的圖像上。因此,此平面中的每個(gè)(比方說,藍(lán)色通道)x、y點(diǎn)與多個(gè)潛在的z值相交。然后,結(jié)合來自掃描和校準(zhǔn)集的密集點(diǎn)云/集信息,真實(shí)的x、y、z可以被確定。因此,活動基于用戶輸入的二維信息來生成三維特征。
圖像確定軟件綜述
圖2示出了圖像確定和處理的操作的一般流程圖。在200處,系統(tǒng)獲得在第一時(shí)間t1的圖像信息。
在一個(gè)實(shí)施例中,此信息是以允許在孔徑之間進(jìn)行區(qū)分的方式,通過多個(gè)孔徑來對多個(gè)圖像的捕獲。在以上所說明的實(shí)施例中,顏色過濾器被用于在通道之間進(jìn)行分離??讖街械囊粋€(gè)可與紅色過濾器相關(guān)聯(lián),以僅傳遞或主要傳遞紅色光,以及另一個(gè)孔徑可與藍(lán)色過濾器相關(guān)聯(lián),以僅傳遞或主要傳遞藍(lán)色光。這種方法形成信息的兩個(gè)通道,各已穿過兩個(gè)分離孔徑中的每個(gè)。根據(jù)另一個(gè)實(shí)施例,不是按顏色來分離通道,而是將孔徑以特定的布置(諸如等邊三角形)進(jìn)行布置,并且處理器153在最終圖像中識別出該等邊三角形,以找到可因孔徑導(dǎo)致的圖像部分。根據(jù)另一個(gè)實(shí)施例,不同通道可以通過修改不同通道的偏振而形成,通過將不同的偏振置于不同的孔徑和相機(jī)傳感器上,從而在孔徑和相機(jī)二者上使用偏振。此實(shí)施例使用那些不同的偏振作為不同的通道??梢酝ㄟ^提供不同的物理掩模形狀(有形孔徑),或通過按時(shí)間分割改變孔徑(例如,通過將其從一處移動到另一處),來以不同的方式形成通道。
不管實(shí)現(xiàn)方式,在205處,穩(wěn)健的特征檢測器(例如,穩(wěn)健的特征檢測器可以使用現(xiàn)成的“sift”軟件或簡單實(shí)現(xiàn)的定制軟件)被用于通過使用(在此示例中)來自藍(lán)色通道的簡化數(shù)據(jù)集,來確定對當(dāng)前圖像幀的參考。注意到,在任何一次所獲得的圖像幀都將小于總的圖像幀。該參考在本文中被稱為“關(guān)鍵點(diǎn)”,但可以使用在不同圖像中可被識別的任何參考。穩(wěn)健的特征檢測器找到關(guān)鍵點(diǎn)位置的二維信息(x,y)以及用于那些關(guān)鍵點(diǎn)的特征向量樣式描述符。該特征向量樣式描述符在對點(diǎn)的任何尺度的旋轉(zhuǎn)和照明下將保持不變。
特征向量樣式描述符可以通過提取對象上的感興趣點(diǎn)來獲得,以提供對象的“特征描述”。此描述具有足夠的信息,當(dāng)試圖在包含其他對象的其他圖像中定位對象時(shí)和/或當(dāng)從不同的視點(diǎn)/有利位置進(jìn)行成像時(shí),該足夠的信息可被用于識別該對象。從訓(xùn)練圖像所提取的特征被選擇為對于圖像尺度、噪聲、照明中的變化以及局部幾何失真是穩(wěn)健的,以執(zhí)行可靠的識別。例如,這可以使用編號為6,711,293的美國專利中所述的技術(shù)。商業(yè)上可獲得的尺度不變特征變換(sift)軟件可被用于這種檢測。通過使用本文所描述的和美國專利no.6,278,847和7,006,132中所描述的類型的散焦原理和方程,對于每個(gè)關(guān)鍵點(diǎn)的三維點(diǎn)信息也被確定。
在210處,獲得下一幀,其中下一幀可以是在t2時(shí)刻的第2號幀。通常,幀可以被遞增以獲得下一幀。
在215處,由不同ts形成暫定姿態(tài)圖。它匹配了與關(guān)鍵點(diǎn)相對應(yīng)的三維信息的不同部分,以便獲得t's之間的變換t(平移和旋轉(zhuǎn))。這表示核心時(shí)刻t與任何其他時(shí)刻tn之間的變換,通過被組合的信息,tn可包括多個(gè)n,例如,(tn1,tn2...)。
在220處,獲得針對每個(gè)所獲得的幀tn的密集點(diǎn)云。通過使用應(yīng)用了上文所述的技術(shù)的散焦,密集點(diǎn)云可以獲得三維圖像信息??梢圆⑿写_定密集集合的查找(點(diǎn)及其位置)和穩(wěn)健特征的識別。穩(wěn)健特征的3d坐標(biāo)的查找可以在其他信息已被確定之后完成。
在225處,與不同時(shí)刻之間的暫定姿態(tài)相關(guān)聯(lián)的線性變換t被用于在圖像的16x16像素窗口之間進(jìn)行變換和/或互相關(guān),這些像素窗口圍繞在不同時(shí)刻所獲得的密集點(diǎn)云,以獲得粗略姿態(tài)。這通過將當(dāng)前的密集點(diǎn)集(例如,圍繞中心點(diǎn)的16x16像素窗口)與先前的密集點(diǎn)集進(jìn)行互相關(guān),或通過在稀疏點(diǎn)集(例如,藍(lán)色通道)上使用穩(wěn)健特征檢測來匹配幀的先前集合以找到匹配,而被完成。因此,在225處,3d信息和粗略姿態(tài)兩者都已被獲得。
基于粗略姿態(tài),在230處,確定當(dāng)前信息是否足夠接近于使兩幀互相關(guān)的參考幀。如果是這樣,則執(zhí)行互相關(guān)。如果沒有幀是足夠接近的,則當(dāng)前幀被拒絕。如果當(dāng)前信息足夠接近于使兩幀互相關(guān)的參考幀,但在235處,新幀在某閾值距離之外,則其同樣被拒絕,但作為新參考幀而被添加。然后,姿態(tài)恢復(fù)操作可被用于建立或改善暫定姿態(tài)。
在操作中,處理器被編程為與散焦方程一起處理點(diǎn)集合以獲得3-d圖像。如本文所述,將紅色和藍(lán)色通道用多網(wǎng)格進(jìn)行互相關(guān)。在226處,按位置對幀進(jìn)行組織。
在227處,表示掃描儀的粗略姿態(tài)的變換信息通過后處理而被確定,以便獲得不同的和更精確的信息位置信息(即,“真實(shí)姿態(tài)”)。相比對于先前的姿態(tài)確定中任一種所采用的技術(shù),后處理可以使用較不穩(wěn)健但更精確的技術(shù)。例如,較不穩(wěn)健的技術(shù)可能使得匹配超過一定量的像素差異在計(jì)算上更昂貴,但可能提供關(guān)于該匹配的更多信息。
發(fā)明人發(fā)現(xiàn),互相關(guān)技術(shù)可以是極為穩(wěn)健的,并且可以提供不同變換之間的非常精確的值。然而,使用這種更穩(wěn)健的技術(shù)來恢復(fù)在姿態(tài)之間具有大像素偏移的姿態(tài)(由此是使用粗略姿態(tài)對比純暫定姿態(tài)的值)在計(jì)算上是不可行的。使用當(dāng)前的nvidiagpu,在姿態(tài)之間超過64個(gè)或128個(gè)像素的偏移將在實(shí)時(shí)計(jì)算上將是不可行的。
在227處的后處理認(rèn)識到,一旦這些幀“被變換”以具有偏移,使得存在很少的像素偏移,則更精確的技術(shù)可被用于后處理。因此,在一個(gè)實(shí)施例中,步驟200至225被實(shí)時(shí)執(zhí)行,以及226和227是非實(shí)時(shí)的,其在實(shí)時(shí)粗略姿態(tài)已被計(jì)算后。這樣,操作的第一部分實(shí)時(shí)計(jì)算出暫定姿態(tài)和粗略姿態(tài),而下一部分改善那些姿態(tài)估計(jì)。
互相關(guān)
整個(gè)說明書中所引用的互相關(guān)或“cc”操作在圖4a中被圖示。這可以是穩(wěn)健的互相關(guān)操作(例如,當(dāng)使用穩(wěn)健特征時(shí)),或者其可被用來匹配點(diǎn)云數(shù)據(jù)。例如,可以在諸如微處理器153或gpu155的處理器中,執(zhí)行圖4a的操作。
在415中的第一時(shí)刻/姿態(tài)以及416中的第二時(shí)刻/姿態(tài)示出項(xiàng)目400。例如,不同的時(shí)刻/姿態(tài)可以是相同幀的不同顏色通道,或可以使用其他通道分離技術(shù)。點(diǎn)可以是自然點(diǎn),或例如可以由固定的照明器所施加,或可以通過使用造影劑所施加。這同樣可以研究任意位置,其是具有一定亮度、對比度和外表的表面的區(qū)域。
每一幀415、416被細(xì)分成多個(gè)子部分,諸如401。415中的子部分401被示出與416中的另一子部分411進(jìn)行比較。圖4a中示出了正被比較時(shí)的這兩個(gè)子部分401/411,但應(yīng)當(dāng)理解,為多個(gè)子部分中的每一個(gè)都執(zhí)行此操作。
在420處,兩個(gè)子部分401、411被相關(guān)。每一個(gè)相關(guān)表示圖像的多個(gè)不同移位。每一個(gè)相關(guān)在425處創(chuàng)建包括多個(gè)像素的相關(guān)圖像。相關(guān)圖像中的每一個(gè)像素表示一個(gè)相關(guān)移位的結(jié)果。例如,將401和411進(jìn)行互相關(guān)給出表示所有移位的單個(gè)cc圖像425。注意,所使用的互相關(guān)技術(shù)可以是任何種類的互相關(guān)類型,包括圓形、零填塞的、基于快速傅立葉變換(fft)的或任何其他種類。
例如,像素427表示在x方向上移位為零,但向下的移位(在y方向上)為3的像素。相關(guān)圖像中的每一個(gè)像素值表示一個(gè)整體移位以及相關(guān)圖像中的像素位置中乘以該量的一個(gè)整體倍增。這些值中的每一個(gè)都可以例如在gpu的著色器中或在處理器中,或在諸如門陣列或定制硬件的專用邏輯中被計(jì)算。
相關(guān)平面中的最亮像素被找到。這是通過研究該像素所完成的,并且周圍像素被用于找到峰值的子像素位置。以這種方式,可以使用多種不同峰值擬合技術(shù)中的任意。最常見的峰擬合假設(shè)了gausssian形狀。
可以使用子像素gausssian峰值擬合。圖4b示出如何使用此技術(shù)來找到藍(lán)色通道中的點(diǎn)與第二通道中其對應(yīng)點(diǎn)的網(wǎng)格對應(yīng)性。
在445處,相關(guān)圖像的網(wǎng)格中最亮的像素表示圖像之間最佳匹配的位置。此匹配被用于表示圖像之間的偏移。雙三次樣條可被用于在網(wǎng)格點(diǎn)之間插值。
在450處,粗偏移(在445處)的集合已被找到。圖像之一(例如,紅色)然后在450處基于該偏移而被扭曲以看起來像其他圖像(例如,藍(lán)色)。這創(chuàng)建復(fù)合圖像455。
在460處,圖像已被扭曲為更接近彼此。獲得了更精細(xì)的細(xì)分網(wǎng)格。然后,重復(fù)相關(guān)操作420、425,以得到用于更精細(xì)網(wǎng)格的圖像之間的新扭曲。
接著再次形成表示更精細(xì)的細(xì)分的新網(wǎng)格。完成該過程一定次數(shù)(例如4),在本實(shí)施例中,這反映了與在465處可獲得的計(jì)算精度相平衡的期望精度?;蛘撸梢葬槍σ恍┢渌麛?shù)量的迭代(例如,直到達(dá)到16x16像素大小為止)而繼續(xù)。在這點(diǎn)上,在470處,獲得最終圖像信息。它包括x、y(或表達(dá)為用于藍(lán)色通道信息的位置信息的“bx、by”)和dx、dy(藍(lán)色和紅色通道之間在位置上的移位)。
3-d點(diǎn)位置分辨率
在一個(gè)實(shí)施例中,結(jié)合互相關(guān)技術(shù)(由圖3a中的325)生成3-d點(diǎn)云。通常,在藍(lán)色和紅色通道之間采用互相關(guān)來找到這些通道之間的大量對應(yīng)圖像像素。利用通過互相關(guān)(例如,按照上述)所獲得的點(diǎn)位置信息,結(jié)合掃描儀校準(zhǔn)信息可以獲得對應(yīng)的3-d點(diǎn)位置。
對于校準(zhǔn)過程,執(zhí)行初始操作以基于校準(zhǔn)網(wǎng)格定義校準(zhǔn)集或表。更具體而言,對于在多個(gè)“z值”的每一個(gè)處被成像的校準(zhǔn)網(wǎng)格,將藍(lán)色通道中的值與紅色通道中的值進(jìn)行比較。例如,藍(lán)色通道中的位置0,0將具有在紅色通道中的對應(yīng)位置。此校準(zhǔn)集/表表示從藍(lán)色通道到紅色通道的偏移。
這些偏移dx和dy(其為對于紅色通道的偏移)在475處已知。對于每一個(gè)值,到x、y、z位置的平移從校準(zhǔn)過程中同樣是已知的。因此,對于任何bx,by(即,藍(lán)色通道中的x和y)和dx,dy,通過應(yīng)用線性代數(shù)使用校準(zhǔn)表來確定對應(yīng)的x、y、z值。除非另有說明,采用(bx,by,dx,dy),由圖4b中480,可以通過回溯追蹤用于匹配藍(lán)色和紅色圖像的變形來確定z。
即,在圖4b中,每一個(gè)扭曲/變形迭代(450至465)表示從先前圖像到下一個(gè)變形的差異。這些變形被添加到彼此,以在470處獲得最終圖像信息(可選地按照x、y、dx、dy進(jìn)行表達(dá))。在480處,校準(zhǔn)集被用作應(yīng)用于此信息的函數(shù),以獲得定義密集點(diǎn)云中的x、y和z位置信息。從而,通過使用校準(zhǔn)信息從四維降低到三維,提高了精度,該校準(zhǔn)信息對于特定相機(jī)是個(gè)別的。
基于姿態(tài)的扭曲
互相關(guān)技術(shù)還提供結(jié)合“投影平面”特征的工具?!盎谧藨B(tài)的扭曲”可被視為對平面進(jìn)行投影并然后進(jìn)行互相關(guān)的動作。
當(dāng)圖像由于重大移動(例如,巨大的平面內(nèi)/外的旋轉(zhuǎn)和/或平移)而不能被直接互相關(guān)時(shí),使用互相關(guān)或其他類似的圖像匹配算法來恢復(fù)姿態(tài)在計(jì)算上變得不可行。利用r和t的某些知識(例如,當(dāng)前方法中依賴于實(shí)現(xiàn)點(diǎn)的暫定或粗略姿態(tài)),即使當(dāng)偏移大于64像素時(shí),在調(diào)整圖像之一為互相關(guān)之后,互相關(guān)也是可能的。
結(jié)合圖8描述用于執(zhí)行調(diào)整的投影平面特征。在800處,臨近的向量被識別。在802處,識別盡可能遠(yuǎn)的向量用于互相關(guān)。在805處,基于較少改善的姿態(tài)信息,一幀被移位(平移/旋轉(zhuǎn))以看起來像途中的其他幀,以確定更加改善的姿態(tài)信息。
更具體來說,對于第一和第二圖像(i1、i2),生成圖像i2'作為對i2在i1的平面中看起來將像什么的預(yù)測。所以,在i2'中取一個(gè)代表點(diǎn),其在三維空間中(使用校準(zhǔn)集、可用姿態(tài)信息和密集點(diǎn)云信息)被平移和旋轉(zhuǎn)(即,被投影),以在i2中找到其位置。對于所考慮的全部整數(shù)點(diǎn),f(x,y)表示作為連續(xù)函數(shù)的這種活動。
最終,可選地被用于確定粗略和真實(shí)姿態(tài)的基于姿態(tài)的扭曲中的投影平面操作,具有的目標(biāo)是從看起來彼此更相像的多個(gè)不同圖像創(chuàng)建數(shù)據(jù)以用于互相關(guān)。例如,看圖6,相機(jī)的不同姿態(tài)可以是正在看同一物品和甚至該物品上的同一位置,但是從不同的視點(diǎn)。例如,姿態(tài)1(r1,t1)處的圖像l可能已在650處被找到。然而,姿態(tài)2(r2,t2)處的圖像2可能已在652處被找到。雖然這些可能都在看同一實(shí)際物品,但650可能看起來如651中所示,而652看起來如653中所示。在這點(diǎn)上,這些值可能差別太大和相距太遠(yuǎn)以至于無法互相關(guān)。
由圖9,函數(shù)f(x,y)被用于將圖像2'映射到圖像2中,其中圖像2'具有與圖像1相似的姿態(tài)參數(shù)(如投影平面過程800中所表示的)。然后,通過互相關(guān)過程400,流程圖單元900找到將圖像2'扭曲到圖像1的坐標(biāo)系中的函數(shù),以將圖像1和圖像2'兩者提供在同一坐標(biāo)系中。
在依照單元905的注釋中,在將圖像1互相關(guān)到圖像2'時(shí),圖像2'已經(jīng)被反轉(zhuǎn),所以無需為此函數(shù)尋找逆函數(shù)。這創(chuàng)建簡化的扭曲。這樣的扭曲假定所有的z值都為零。
然而,由于通常不是這種情況,在900處f(x,y)的計(jì)算也可以通過將最小二乘平面擬合到變換f(x,y)->(x',y',z')來說明不同的z軸深度,其中
x'i;=axxi;+bxyi;+cx
y'i;=ayxi;+byyi;+cy
z'i;=...
這可被寫成矩陣形式。
然后,通過使用新的x、y、z對應(yīng)性創(chuàng)建點(diǎn)的新網(wǎng)格,形狀可以被平滑?;跇訔l(“sp”)解釋,點(diǎn)的新網(wǎng)格創(chuàng)建f(x,y)與(x,y,z)之間的關(guān)系。這使用該關(guān)系
(x,y)->xspx
(x,y)->yspy
(x,y)->zspz
因此,平面映射為被平滑的3-d樣條。
正如上文所引用的,使用針對相機(jī)所獲得校準(zhǔn)集,用于藍(lán)色通道的點(diǎn)可被轉(zhuǎn)換為x、y、z。由于姿態(tài)隨著x、y、z改變而改變放大倍率,該變換不是完全線性的函數(shù)。通過以矩陣形式計(jì)算這些值,可以以這種方式對非線性的量進(jìn)行補(bǔ)償。
圖像捕獲和實(shí)時(shí)姿態(tài)確定細(xì)節(jié)
圖3a至3c定義了在處理器153和/或gpu155上運(yùn)行的程序的實(shí)現(xiàn)方式中的流程圖或?qū)崟r(shí)活動。在300處,在時(shí)間幀t0處,系統(tǒng)在那一個(gè)時(shí)間幀t0中捕獲兩個(gè)圖像。這兩個(gè)圖像形成本文中所使用的兩個(gè)通道。在獲得兩個(gè)圖像(在此情況下,是顏色編碼的)后,處理的兩個(gè)并行路徑305和306被執(zhí)行。路徑305被用于(按照圖3b)確定相機(jī)姿態(tài)和執(zhí)行相機(jī)信息的粗略確定,并因此找到初步的平移信息(即,暫定姿態(tài))。路徑306被用于確定密集3-d信息。盡管本申請將這些計(jì)算描述為被并行執(zhí)行,但應(yīng)當(dāng)理解這些計(jì)算可以在任何時(shí)間被執(zhí)行。
在310處,使用更穩(wěn)健但較不精確的技術(shù),例如上面提到的尺度不變特征變換“sift”軟件或其他手段,來獲得關(guān)鍵點(diǎn)。無論如何,通常為多個(gè)關(guān)鍵點(diǎn)中的每一個(gè)確定特征向量描述符。該特征向量描述符描述了關(guān)鍵點(diǎn)看起來像什么。所選擇的特征對于圖像平移、縮放和旋轉(zhuǎn)是不變的,對于照明改變是部分不變的,且對于局部幾何失真是穩(wěn)健的。例如,這可以通過使用在尺度空間中應(yīng)用于一系列被平滑和重采樣圖像的gaussians函數(shù)的差值結(jié)果的最大值和最小值來被完成。
在一個(gè)實(shí)施例中,成像可以通過使用著色(painted-on)特征來執(zhí)行,例如利用對比度而被應(yīng)用的特征。在一個(gè)實(shí)施例中,對比度可以為利用氣霧劑噴灑的白色和黑色粒子所使用。
在一個(gè)實(shí)施例中,在藍(lán)色通道圖像上執(zhí)行關(guān)鍵點(diǎn)的提取。然后,在315處,來自其他顏色通道(這里是紅色通道)的信息可被用于找到對應(yīng)的特征。這種特征查找可以采用如本文所述的互相關(guān)。
在320處,已按照這種方式獲得的關(guān)鍵點(diǎn)具有關(guān)于使用散焦在當(dāng)前時(shí)間幀中所確定的它們3-d位置的信息。因此,處理每一個(gè)關(guān)鍵點(diǎn),以獲得與該關(guān)鍵點(diǎn)相對應(yīng)的三維信息,以及與其相關(guān)聯(lián)的描述符。此信息形成具有針對時(shí)間幀t0的描述符的一組稀疏關(guān)鍵點(diǎn)。
與暫定姿態(tài)確定路徑305并行,執(zhí)行密集點(diǎn)云路徑306來確定密集3-d信息,然而沒有描述符。對于時(shí)間段t0,步驟325通過使用被散焦的信息確定密集3-d點(diǎn)云開始。這可通過在330處的藍(lán)色和紅色通道之間進(jìn)行互相關(guān),以找到這些通道之間的許多對應(yīng)點(diǎn)或圖像像素來完成。在335處獲得這些點(diǎn)的3-d位置。來自兩個(gè)通道的被散焦信息被用于確定此3d信息。
在340處,姿態(tài)和3-d點(diǎn)云確定都已被執(zhí)行。在時(shí)間幀t0處,現(xiàn)在有兩組3-d點(diǎn)云:具有描述符的稀疏集(來自路徑305)以及沒有描述符的密集云(來自路徑306)。
在345處,操作的下一部分進(jìn)行,其找到下一個(gè)t,稱為t1。此過程繼續(xù)迭代以在多個(gè)不同的時(shí)間幀處找到多個(gè)不同的值。
根據(jù)該操作,對于總體對象,存在多個(gè)不同的密集和稀疏點(diǎn)集的庫。例如,圖6示出了這將如何被用于獲得掃描主體的牙齒的圖像,例如600、602、604、606及其他。在610處的第一庫l表示可以根據(jù)單個(gè)掃描從掃描儀所獲得的視場。這可以對例如牙齒600、602進(jìn)行成像。然而,牙齒604不在庫1(610)內(nèi)的掃描儀的視場內(nèi)。因此,如620所示的庫2可被用于捕獲牙齒604、606的圖像。不同的庫均可代表不同的參考。
姿態(tài)方法概述
初始相機(jī)位置確定(產(chǎn)生“暫定姿態(tài)”)提供了在t維度中實(shí)時(shí)匹配的旋轉(zhuǎn)和平移r&t。這采用了接受點(diǎn)間差異的一個(gè)或多個(gè)穩(wěn)健匹配技術(shù)(例如,通過如上文所述的互相關(guān)和/或通過比較關(guān)鍵點(diǎn)而執(zhí)行)。在此活動之后,可選地,特征匹配通過基于姿態(tài)的扭曲來改善可匹配幀之間的姿態(tài)(產(chǎn)生粗略姿態(tài))。后處理通常使用該粗略姿態(tài)信息。粗略姿態(tài)通過到一個(gè)或多個(gè)空間相關(guān)幀的基于姿態(tài)的扭曲,提供關(guān)于所選幀的更多信息,并再次—可選地,允許完全匹配,以通過利用附加的先驗(yàn)知識來確定更精確的姿態(tài)點(diǎn)(產(chǎn)生“真實(shí)姿態(tài)”)。
暫定姿態(tài)確定
在圖3b中,開始了確定暫定姿態(tài)的操作。在350處,通過互相關(guān)技術(shù)將當(dāng)前點(diǎn)集與先前的點(diǎn)集進(jìn)行比較。在355處,如果點(diǎn)集之間存在互相關(guān)或“cc”匹配,則做出確定。如果是這樣,那么360確定存在兩個(gè)匹配的密集點(diǎn)云,且將控制傳遞給節(jié)點(diǎn)3c,步驟390,其執(zhí)行如圖3c中所示的表示庫的比較和形成的處理操作。
如果在355處沒有cc匹配,則將控制傳遞以便在365處使用先前幀組的穩(wěn)健描述符(例如,sift描述符),其中幀組可以在,例如,20幀和100幀之間。在370處,如果對先前的20至100幀和當(dāng)前幀存在匹配,則確定。如果是這樣,則其在375處的稀疏點(diǎn)云之間建立匹配,并且將控制傳遞給庫節(jié)點(diǎn)3c(圖3c)。
如果當(dāng)前幀和先前20至100幀之間不存在匹配,則使用所存儲的關(guān)鍵點(diǎn)庫上的描述符在380處執(zhí)行姿態(tài)恢復(fù)。這將穩(wěn)健的描述符與已被創(chuàng)建的整個(gè)關(guān)鍵點(diǎn)庫進(jìn)行比較。如果存在匹配,則其被取作暫定姿態(tài),且將控??制傳遞到3c處的庫確定。如果在385處不存在匹配,這意味著在386處所有參考幀都與當(dāng)前幀距離太遠(yuǎn)。在這點(diǎn)上,當(dāng)前幀被拒絕(即,被丟棄)。
粗略姿態(tài)確定
圖3c通過使用在圖3b中已找到的暫定姿態(tài)來繼續(xù)姿態(tài)確定。這開始于步驟391,其獲得暫定姿態(tài)信息,并然后在392處確定是否存在接近的cc幀。如果392處的動作的結(jié)果是不存在足夠接近的cc幀,則所有幀都距離太遠(yuǎn)且該幀被丟棄?;蛘?,它可以作為庫參考被添加以用于未來的cc活動。然而,如果存在足夠接近的cc幀,則它在393處被獲取且新幀被扭曲到較舊的幀(即,在393處投影該幀并在394處對其進(jìn)行互相關(guān))。
一般地,該操作試圖找到,對于多個(gè)不同向量(場景位置值),哪個(gè)向量最接近。目的是互相關(guān)距離盡可能遠(yuǎn)的向量,只要它們?nèi)匀豢尚?zhǔn)。圖8以圖形化方式詳細(xì)說明如上文所引用的在對平面進(jìn)行投影中所涉及的幀查找和平移。
返回到圖3c,在393處投影后,r0、t0被用于將當(dāng)前幀互相關(guān)到所找到的幀。這被用于找到新的姿態(tài)(粗略姿態(tài))r和t。如果在395處可以找到r和t,則出于在用戶接口裝置(例如,計(jì)算機(jī)監(jiān)視器)上顯示的目的,此更加改善的姿態(tài)可被用于在399處聚集3-d點(diǎn)云數(shù)據(jù)。不然的話,則在396處將當(dāng)前幀與sift參考進(jìn)行比較。如果在此階段397處未找到r和t,則其在398處作為sift參考被添加。否則,處理被完成,并且操作進(jìn)行以獲取步驟3a處的下一個(gè)點(diǎn)。
上文中提到,當(dāng)前幀中的三維點(diǎn)和關(guān)鍵點(diǎn)通過描述符與在多個(gè)不同先前時(shí)間幀中的關(guān)鍵點(diǎn)相匹配。也就是說,對于每一個(gè)核心幀tn,每一個(gè)關(guān)鍵點(diǎn)與多個(gè)先前幀t(n-x)中的每一個(gè)相匹配,其中x可以是集合編號。例如,取決于可用的處理能力和存儲器,x可被設(shè)置為0到10000之間的任何數(shù)。在該實(shí)施例中,其被描述為處于20和100幀之間。這從而將多個(gè)幀中的每一幀與核心幀相匹配。
在350處,該匹配被用于查找從當(dāng)前幀到先前幀的變換。此操作確定幀n與將與幀n進(jìn)行比較的所有其他幀之間的變換tn(平移和旋轉(zhuǎn))。此相同信息也表示用于密集點(diǎn)的變換。以這種方式,所有幀最后處于被稱為參考坐標(biāo)系的單個(gè)坐標(biāo)系中。參考坐標(biāo)系是任意的,但一般來說遍及所有參考幀保持相同。如本文所述,當(dāng)相機(jī)的運(yùn)動導(dǎo)致主體的圖像已經(jīng)從其最初位置移動太遠(yuǎn)時(shí),參考幀可以不時(shí)改變。
根據(jù)另一個(gè)實(shí)施例,許多不同幀可以被用作基本幀/參考幀,使得存在許多不同的變換。例如,每個(gè)指定時(shí)間都可以有新的基本幀。在又一實(shí)施例中,變換可以被找到,以便可以存在中間幀。在又一實(shí)施例中,可以使用變換的平均來代替將變換進(jìn)行組合。
在360(圖3b中),在參考幀與任何其他幀tn之間進(jìn)行變換。這形成全部在相同坐標(biāo)系中的數(shù)據(jù)的庫。所有數(shù)據(jù)都在單個(gè)坐標(biāo)系中,其中該坐標(biāo)系在本質(zhì)上是隨機(jī)選擇的。
這種系列變換可以最小化針對給定幀而被組合的變換的數(shù)量,以便從而最小化誤差傳播。
在密集集合已被變換以能夠產(chǎn)生圖3a至3c中的全分辨率圖像之后(例如,出于顯示的目的僅在掃描期間當(dāng)用戶在處理期間反饋時(shí)),如圖7中所示執(zhí)行姿態(tài)的后處理。當(dāng)最小化誤差傳播以找到如上文所定義的真實(shí)姿態(tài),并提供最終掃描輸出產(chǎn)品(例如,包含在計(jì)算機(jī)可讀介質(zhì)中的stl文件)時(shí),該后處理可使用“全局匹配技術(shù)”來允許更好的幀匹配,以用于通過cnc或其他生產(chǎn)技術(shù)從代表數(shù)據(jù)產(chǎn)生物理對象。
進(jìn)一步改善的/真實(shí)姿態(tài)確定
作為描述這種全局匹配方法的開端,圖5示出當(dāng)相機(jī)對更大的區(qū)域成像時(shí),相機(jī)如何可以在不同的位置之間被移動。圖5中的頂部部分示出了在方向500上移動的相機(jī),而所示的底部部分在方向505上行進(jìn)。按所示順序獲得幀:1,2,3,...254,255,256。當(dāng)相機(jī)正在順序地通過圖像時(shí),其可以按每秒10次來取得圖像。雖然幀1和2在時(shí)間上接近,但實(shí)際上幀1和256之間可能有更多相似之處。例如,相機(jī)在1/256中可能比在1/2在空間上更接近。
本方法說明了通過在比較圖像數(shù)據(jù)方面追求最佳的空間匹配,以確定用來組合圖像的相機(jī)姿態(tài)信息的這種可能性。在確定姿態(tài)方面,其他系統(tǒng)(例如,zhang)聚焦于最接近時(shí)間匹配(即,相繼幀)。
在實(shí)際實(shí)踐中,發(fā)明人發(fā)現(xiàn),確實(shí)無法提前預(yù)測不同幀中的哪一個(gè)會產(chǎn)生最佳的空間匹配。最佳信息實(shí)際上是通過找到暫定/臨時(shí)匹配,并接著將該暫定匹配改善為不同幀的集合來獲得的。
認(rèn)識到此問題時(shí),全局地執(zhí)行所引用的后處理。本實(shí)施例的處理查看不同幀的整個(gè)庫,而不是自動地將一幀與下一幀進(jìn)行比較。例如,你可以從舊幀得到關(guān)于當(dāng)前幀的更多信息,因?yàn)樗诳臻g上更接近。
發(fā)明人發(fā)現(xiàn)了意料之外的結(jié)果,即與多個(gè)幀同時(shí)進(jìn)行匹配比與連續(xù)幀進(jìn)行匹配產(chǎn)生更好的結(jié)果。本質(zhì)上,這種全局匹配系統(tǒng)查看整個(gè)點(diǎn)庫,以保持追蹤跨越多個(gè)幀的相同點(diǎn)直到可被完成,并對該信息進(jìn)行平均??梢詫υ撜麄€(gè)庫中的所有描述符進(jìn)行比較,以找到“最佳描述符”來比較具有那些最佳描述符的點(diǎn)。由于該點(diǎn)在正被成像的物品上,因此對跨越多個(gè)幀的點(diǎn)進(jìn)行平均提供了關(guān)于該點(diǎn)的更多信息。因?yàn)檫M(jìn)行平均,多個(gè)幀均貢獻(xiàn)姿態(tài)信息給其他空間上鄰近的幀。通過消除各種種類的隨機(jī)噪聲,平均也可以被用于更精確地找到它們的真實(shí)位置。
后處理在來自盡可能遠(yuǎn)的不同幀之間使用全局匹配。包含相同點(diǎn)的不同視圖的不同幀表示該相同點(diǎn)。由于那些點(diǎn)總是相同的,在它們之間進(jìn)行平均將增加它們的精度。根據(jù)本系統(tǒng),在沒有積累幀之間的點(diǎn)位置的誤差的情況下,對點(diǎn)進(jìn)行平均。
參照圖7的流程圖詳細(xì)示出了這種后處理。在700處,最佳的現(xiàn)有旋轉(zhuǎn)和平移r,t(通常是粗略姿態(tài))已被獲得。這已創(chuàng)建了在所有時(shí)刻相機(jī)所在的所有位置的圖。每個(gè)時(shí)刻處的每個(gè)位置都與特定的3d姿態(tài)相對應(yīng)。
在705處,選擇姿態(tài)作為用于該庫的根節(jié)點(diǎn)。本質(zhì)上這可以被隨機(jī)選擇,例如通過選擇列表中的第一個(gè)姿??商娲?,可以選擇標(biāo)準(zhǔn),例如通過把質(zhì)心點(diǎn)視為根節(jié)點(diǎn)姿態(tài)。
在710處,操作繼續(xù)為找到靠近所選姿態(tài)的所有近鄰。該操作創(chuàng)建表示基于接近度的所有3d姿態(tài)的圖表的信息。
首先,在706處執(zhí)行基于姿態(tài)的扭曲,來使姿態(tài)扭曲以便看上去更像彼此。參照本文中的圖9詳細(xì)描述了基于姿態(tài)的扭曲。
進(jìn)行扭曲后,在710處找到在起始姿態(tài)的t1內(nèi)的所有近鄰姿態(tài)。這些近鄰姿態(tài)中的每個(gè)都被移除和標(biāo)記。t1是被選擇為最大的可用距離以減少誤差傳播的值,但是仍然被計(jì)算的可行性所限制。
在715處,在近鄰姿態(tài)已被移除后,第二閾值t2被用于查找子女姿態(tài)。余下的所有姿態(tài)都不是根節(jié)點(diǎn)的近鄰。閾值t2是這樣的,使得在不同參考平面中的圖像之間存在最小重疊或沒有重疊。t2大于t1,且被選擇為你可以通過基于姿態(tài)的扭曲找到姿態(tài)的最大距離。到根節(jié)點(diǎn)的在t2之內(nèi)的點(diǎn)被稱為子女節(jié)點(diǎn)。超過t1+t2的任何點(diǎn)都離根節(jié)點(diǎn)太遠(yuǎn),并且因而子女的t1將不會受到親體的影響。
所有點(diǎn)都以這種方式進(jìn)行分析。流程圖單元720表示繼續(xù)此操作,直到所有子女都被找到。在725處,庫內(nèi)的所有節(jié)點(diǎn)或者是子女或者是近鄰。在這點(diǎn)上,此子過程被稱作“完成”。
在730處,將對于根節(jié)點(diǎn)的近鄰中的每個(gè)都與根節(jié)點(diǎn)中進(jìn)行平均。對于子女的近鄰中的每個(gè)也都與它的所有子女進(jìn)行平均。這創(chuàng)建了已與形成平均姿態(tài)值的多個(gè)不同的近鄰進(jìn)行平均的高權(quán)重(heavyweight)節(jié)點(diǎn)。
這時(shí),子女和根節(jié)點(diǎn)之間的平移被確定。子女被平移以確定子女節(jié)點(diǎn)在親代節(jié)點(diǎn)中的何處。然后,高權(quán)重子女節(jié)點(diǎn)被平移并與親代節(jié)點(diǎn)進(jìn)行平均。該動作形成了基于許多不同姿態(tài)的非常高權(quán)重的節(jié)點(diǎn)。以這種方式被平均的姿態(tài)提供了已通過進(jìn)行平均而被改進(jìn)的非常精確的根節(jié)點(diǎn)描述。在735處所獲得的新r,t是如705的所選根節(jié)點(diǎn)與它的所有近鄰和子女之間的高權(quán)重平均。
該新r和t被用作被后處理的姿態(tài)(最改善的,真實(shí)姿態(tài)),以重新計(jì)算具有更高精度的3-d值。
此系統(tǒng)的優(yōu)點(diǎn)是,在沒有由時(shí)間技術(shù)將可能發(fā)生的誤差疊加的情況下,來自多個(gè)幀的相同點(diǎn)可以與彼此進(jìn)行平均。而且,僅一層深地執(zhí)行該操作,因此誤差不會層層傳播。這意味著互相關(guān)點(diǎn)識別誤差不會傳播。
變化形式
一個(gè)實(shí)施例執(zhí)行圖像處理的某些部分,包括通過使用雙三次樣條函數(shù)在值之間進(jìn)行插值。根據(jù)一個(gè)實(shí)施例,雙三次樣條函數(shù)形成一組樣條系數(shù)。每個(gè)系數(shù)都被用于計(jì)算下一個(gè)系數(shù)。系數(shù)列表是有因果關(guān)系的,因?yàn)橐粋€(gè)系數(shù)影響其他系數(shù)的值。
根據(jù)一個(gè)實(shí)施例,通過僅使用一些先前數(shù)量的系數(shù)的作為跨越樣條系數(shù)的滑動窗口,來簡化雙三次樣條函數(shù)。發(fā)明人發(fā)現(xiàn),可以將該滑動窗口(此處由16塊)選擇為不影響雙三次樣條計(jì)算的值。例如,通過使用16塊,系數(shù)中的誤差可以小于浮點(diǎn)變量的精度。然而,通過以這種方式簡化結(jié)果,可以在gpu的著色器中同時(shí)計(jì)算每一個(gè)項(xiàng)目。這允許大規(guī)模并行處理,使得每個(gè)單個(gè)著色器可以以這種方式僅使用16個(gè)系數(shù)來計(jì)算一部分,因此,允許每個(gè)著色器為一個(gè)像素計(jì)算一個(gè)值。
重要的是,發(fā)明人發(fā)現(xiàn),當(dāng)諸如此的過程在gpu上被完成時(shí),將所有值保持在著色器中是重要的。例如,諸如雙三次樣條的某些計(jì)算可以在著色器上被更快地執(zhí)行,但諸如分類和比較的其他計(jì)算可以在處理器上被更快地執(zhí)行。然而,發(fā)明人發(fā)現(xiàn),著色器和主處理器之間的寫入消耗更多時(shí)間,并因而在著色器中做每件事情都更快,即使是在著色器中執(zhí)行起來效率較低的那些事情。根據(jù)一個(gè)實(shí)施例,基于姿態(tài)的扭曲使用如上所述的雙三次樣條計(jì)算,且此計(jì)算的部分或全部也可以在gpu中被更有效地執(zhí)行。
在cc操作之前被執(zhí)行的另一個(gè)操作,可以相比其他值對中心、左側(cè)和右側(cè)的值更多地加權(quán)。
另一個(gè)操作可以作為互相關(guān)操作的一部分而執(zhí)行來取得最終16×16正方形中的所有值的標(biāo)準(zhǔn)偏差。高于圖像的規(guī)定峰值的任何標(biāo)準(zhǔn)偏差值都被截去,使得那些峰值不對數(shù)據(jù)產(chǎn)生偏向。這移除了異常明亮的像素以避免對數(shù)據(jù)產(chǎn)生偏向。
另一個(gè)操作可以利用藍(lán)色/紅色孔徑僅以一維進(jìn)行移位的已知數(shù)值。因此,對于互相關(guān)細(xì)分,這種一維移位可以表示可能發(fā)生的最大位移。比此更大的任何位移都可以在互相關(guān)細(xì)分中被檢測到,并被用來對最終值加權(quán)。
雖然只有幾個(gè)一些實(shí)施例已在上文中被詳細(xì)公開,但其他實(shí)施例是可能的,并且發(fā)明人意在將這些實(shí)施例包括在此說明書之內(nèi)。說明書描述特定示例來實(shí)現(xiàn)可以按照另一種方式被實(shí)現(xiàn)的更一般的目標(biāo)。本公開意在是示例性的,并且權(quán)利要求意在覆蓋對于本領(lǐng)域一般技術(shù)人員而言可以預(yù)測的任何修改或替代。例如,可以使用除互相關(guān)外的其他形式的匹配。
所屬領(lǐng)域的技術(shù)人員將進(jìn)一步了解,結(jié)合本文中公開的實(shí)施例所描述的各種說明性的邏輯塊、模塊、電路以及算法步驟,可以被實(shí)現(xiàn)為電子硬件,計(jì)算機(jī)軟件或二者的組合。為了清楚說明硬件和軟件的這種可交換性,上文已經(jīng)在其功能性方面一般性地對各種說明性的組件、塊、模塊、電路和步驟進(jìn)行了描述。這種功能性被實(shí)現(xiàn)為硬件還是軟件取決于特定的應(yīng)用以及施加在整個(gè)系統(tǒng)上的設(shè)計(jì)約束。本領(lǐng)域技術(shù)人員可以針對每個(gè)特定的應(yīng)用以變化方式來實(shí)現(xiàn)所描述的功能性,但這種實(shí)現(xiàn)決策不應(yīng)被解釋為導(dǎo)致了脫離本發(fā)明的示例性實(shí)施例的范圍。
結(jié)合本文中公開的實(shí)施例所描述的各種說明性的邏輯塊、模塊和電路,可以利用被設(shè)計(jì)來執(zhí)行本文所描述的功能的通用處理器、數(shù)字信號處理器(dsp)、特定應(yīng)用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或其他可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件或它們的任何組合,來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替代方案中,處理器可以是任何傳統(tǒng)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器可以是計(jì)算機(jī)系統(tǒng)的一部分,該計(jì)算機(jī)系統(tǒng)還具有與用戶接口進(jìn)行通信的用戶接口端口,且該計(jì)算機(jī)系統(tǒng)接收由用戶輸入的命令,具有至少一個(gè)存儲器(例如,硬盤驅(qū)動器或其他相當(dāng)?shù)拇鎯ρb置,以及隨機(jī)存取存儲器),其存儲電子信息,包括在處理器控制下進(jìn)行操作并通過用戶接口端口進(jìn)行通信的程序,以及該計(jì)算機(jī)系統(tǒng)具有視頻輸出,其通過任何種類的視頻輸出格式(例如,vga、dvi、hdmi)、顯示端口或任何其他形式產(chǎn)生其輸出。
處理器也可以被實(shí)現(xiàn)為計(jì)算裝置的組合,例如:dsp與微處理器的組合、多個(gè)微處理器、結(jié)合dsp核心的一個(gè)或多個(gè)微處理器,或任何其他此類配置。這些裝置也可以被用來為如本文中所描述的裝置選擇值。
結(jié)合本文中公開的實(shí)施例所描述的方法或算??法的步驟,可被直接體現(xiàn)在硬件中、由處理器所執(zhí)行的軟件模塊中、或二者的組合中。軟件模塊可駐留在隨機(jī)存取存儲器(ram)、閃速存儲器、只讀存儲器(rom)、電可編程rom(eprom)、電可擦除可編程rom(eeprom)、寄存器、硬盤、可移除磁盤、cd-rom、或本領(lǐng)域中已知的任何其他形式的存儲介質(zhì)中。示利性存儲介質(zhì)被耦合到處理器,使得處理器可以從存儲介質(zhì)讀取信息,并將信息寫入到存儲介質(zhì)。在替代方案中,存儲介質(zhì)可以與處理器一體。處理器和存儲介質(zhì)可以駐留在asic中。asic可駐留在用戶終端中。在替代方案中,處理器和存儲介質(zhì)可以作為分立組件駐留在用戶終端中。
在一個(gè)或多個(gè)示例性實(shí)施例中,所描述的功能可以在硬件、軟件、固件或其任何組合中被實(shí)現(xiàn)。如果被實(shí)現(xiàn)在軟件中,則功能可以作為一個(gè)或多個(gè)指令或代碼被存儲在計(jì)算機(jī)可讀介質(zhì)上或通過其傳送。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)兩者,該通信介質(zhì)包括有助于從一個(gè)位置到另一個(gè)位置傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲介質(zhì)可以是可由計(jì)算機(jī)訪問的任何可用介質(zhì)。作為示例,而非限制,這種計(jì)算機(jī)可讀介質(zhì)可以包括ram、rom、eeprom、cd-rom或其他光盤存儲裝置、磁盤存儲裝置或其他磁性存儲裝置,或者任何其他介質(zhì),這些介質(zhì)可以被用來攜帶或存儲以指令或數(shù)據(jù)結(jié)構(gòu)形式的所期望的程序代碼,并可以由計(jì)算機(jī)所訪問。存儲器儲存裝置也可以是旋轉(zhuǎn)磁性硬盤驅(qū)動器、光盤驅(qū)動器或基于閃速存儲器的存儲驅(qū)動器或其他這種固態(tài)、磁性或光學(xué)存儲裝置。而且,任何連接都可以適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。例如,如果軟件是通過使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線路(dsl)或諸如紅外、無線電和微波的無線技術(shù)來從網(wǎng)站、服務(wù)器或其他遠(yuǎn)程來源所傳送的,那么所述同軸電纜、光纖電纜、雙絞線、dsl或諸如紅外、無線電和微波的無線技術(shù)被包括在介質(zhì)的定義中。如本文所使用的磁盤和光盤包括致密盤(cd)、激光盤、光盤、數(shù)字多功能盤(dvd)、軟盤和藍(lán)光盤,其中磁盤通常磁性地再現(xiàn)數(shù)據(jù),而光盤利用激光來光學(xué)地再現(xiàn)數(shù)據(jù)。上述的組合也應(yīng)當(dāng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
如本文中所描述的操作可以在網(wǎng)站上或通過網(wǎng)站而執(zhí)行。網(wǎng)站可以在服務(wù)器計(jì)算機(jī)上操作,或例如通過被下載到客戶端計(jì)算機(jī)而在本地操作,或通過服務(wù)器場進(jìn)行操作。網(wǎng)站可以通過移動電話或pda或任何其他客戶端進(jìn)行訪問。網(wǎng)站可以使用以任何形式的html代碼,例如,mhtml或xml,以及通過諸如級聯(lián)樣式表(“css”)或其他的任何形式使用。
同樣,發(fā)明人意在的是,只有使用詞語“裝置用于”的那些權(quán)利要求旨在根據(jù)35usc112的第六段進(jìn)行解釋。而且,沒有來自說明書中的限制意在被加上另外的意思于任何權(quán)利要求中,除非那些限制被明確地包括在權(quán)利要求書中。本文中所描述的計(jì)算機(jī)可以是任何種類的計(jì)算機(jī),或是通用計(jì)算機(jī),或是某些專用計(jì)算機(jī),例如工作站。程序可以以c、java、brew或任何其他編程語言進(jìn)行編寫。程序可以駐留在存儲介質(zhì)上,例如,磁性或光光學(xué)的,例如,計(jì)算機(jī)硬盤驅(qū)動器、可移除盤或介質(zhì),諸如記憶棒或sd介質(zhì)或其他可移除介質(zhì)。程序也可以通過網(wǎng)絡(luò)運(yùn)行,例如,利用服務(wù)器或其他機(jī)器發(fā)送信號到本地機(jī)器,這允許該本地機(jī)器執(zhí)行本文中所描述的操作。
在特定數(shù)值在本文中被提及之處,應(yīng)當(dāng)認(rèn)為該值可以被增加或減少20%,而仍保留在本申請的教導(dǎo)之內(nèi),除非特別提及某些不同的范圍。盡管這些實(shí)施例中的許多討論了64位,但可以替代地使用128或256位的處理器或處理。在使用指定的邏輯意義之處,也意在包括相反的邏輯意義。
提供對所公開的示例性實(shí)施例的先前描述,以使任何本領(lǐng)域技術(shù)人員能夠制造或使用本發(fā)明。對這些示例性實(shí)施例的各種修改對本領(lǐng)域技術(shù)人員來說是顯而易見的,并且在不脫離本發(fā)明的精神或范圍的情況下,本文中所定義的一般原理可被應(yīng)用于其他實(shí)施例。因此,本發(fā)明并不意在被限于本文中所示出的實(shí)施例,而是被給予與本文中所公開的原理和新穎性特征相一致的最廣范圍。