本申請是申請?zhí)枮?01380016493.1、申請日為2013年3月15日、發(fā)明名稱為“用于深度圖的低等待時間變形的系統(tǒng)、方法和計算機程序產(chǎn)品”的發(fā)明專利申請的分案申請。
本文中描述的實施例一般涉及圖像處理。
背景技術:
深度圖和圖像一起可以構成許多應用的主輸入,諸如視頻監(jiān)控、視頻游戲(例如,微軟的體感器(kinect))、手勢解釋和從非儀表化的用戶不顯眼地獲取輸入的其它應用。采用深度圖和圖像作為輸入的其它有關應用可以包含:分析傳感器附近的3d環(huán)境的那些應用,例如用于機器人或車輛的自主控制或安全監(jiān)測系統(tǒng)。
在一些情況下,就深度圖是或被制作地好像是由被放置在與產(chǎn)生圖像的成像傳感器相同的物理位置處的深度傳感器產(chǎn)生的意義而言,如果深度圖和圖像被配準或?qū)R,則此類應用的設計可能很容易。當是這種情況時,深度圖的像素可能與圖像的像素對應,以及反之亦然。
然而,在實際中,深度圖和圖像常常由不同的傳感器產(chǎn)生,以及因此可能從不同的物理位置來成像。幸運地,能夠以使得深度圖或圖像幾乎好像是從不同的投影中心看到的方式來變形深度圖或圖像。
技術實現(xiàn)要素:
本申請?zhí)峁┮环N用于圖像處理的系統(tǒng),包括:第一電路邏輯單元,其被配置為讀取來自原始的深度圖的像素坐標;以及第二電路邏輯單元,其被配置為基于原始的深度圖來計算變形的深度圖,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖。
本申請還提供一種圖像處理的方法,包括:讀取來自原始的深度圖的像素坐標;以及基于原始的深度圖,計算變形的深度圖,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖,其中由可編程的處理器來執(zhí)行讀取和計算。
本申請又提供一種用于圖像處理的計算機程序產(chǎn)品,計算機程序產(chǎn)品包含至少一個非短暫性的計算機可讀介質(zhì),計算機可讀介質(zhì)具有存儲在其中的計算機程序邏輯,計算機程序邏輯包含:使得處理器讀取來自原始的深度圖的像素坐標的邏輯;以及使得處理器基于原始的深度圖,計算變形的深度圖的邏輯,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖。
附圖說明
圖1說明了深度圖變形過程的實施例的結果。
圖2是說明根據(jù)實施例的深度圖變形過程的流程圖。
圖3說明根據(jù)實施例的深度圖變形過程的時間線。
圖4是說明根據(jù)實施例的減少等待時間的深度圖變形的流程圖。
圖5說明根據(jù)實施例的減少等待時間的深度圖變形過程的時間線。
圖6是說明根據(jù)實施例的處理遮擋的減少等待時間的深度圖變形過程的流程圖。
圖7是說明根據(jù)實施例的矯正稀疏性條件的減少等待時間的深度圖變形過程的流程圖。
圖8說明了根據(jù)實施例的稀疏性矯正。
圖9是說明根據(jù)實施例的當應用可以利用變形的深度圖的數(shù)據(jù)時的流程圖。
圖10是說明根據(jù)實施例的減少等待時間的深度圖變形過程的時間線。
圖11是說明根據(jù)實施例的系統(tǒng)的示例的框圖,在該系統(tǒng)中可以實現(xiàn)減少等待時間的深度圖變形。
圖12是說明實施例的軟件或固件實施例的框圖。
圖13說明了可以實現(xiàn)實施例的信息系統(tǒng)。
圖14說明了可以實現(xiàn)實施例的移動信息設備。
在附圖中,參考標記中的最左邊的數(shù)字(多個)標識參考標記首次出現(xiàn)的附圖。
具體實施方式
現(xiàn)在參照附圖來描述實施例,其中相同的參考標記指示同一元素或功能上類似的元素。雖然論述了特定的配置和布置,但是應當理解的是,這樣做僅是出于說明性的目的。相關領域的技術人員將認識到的是,在不背離本說明書的范圍的情況下,能夠使用其它配置和布置。對于相關領域的技術人員來說將明顯的是,除了本文中描述的系統(tǒng)和應用之外,還能夠在各種各樣的其它系統(tǒng)和應用中使用這些配置和布置。
本文中公開的是方法、系統(tǒng)和計算機程序產(chǎn)品以將深度圖變形成與圖像對齊,其中負責圖像的圖像傳感器(例如,相機)以及負責原始的深度圖的深度傳感器在空間上是分離的。在實施例中,在原始的深度圖已經(jīng)完全讀取之前,可以啟動深度圖的變形。此外,在已經(jīng)完全生成整個變形的深度圖之前,可以使應用可以利用來自變形的深度圖的數(shù)據(jù)。此類方法和系統(tǒng)可以改進整個過程的速度,和/或降低存儲器的需求。
變形強度圖以匹配深度圖的視角可能比將深度圖映射到圖像的視角顯著地困難:如果在所有像素處有可靠的深度圖的值,則此類變形將產(chǎn)生圖像,該圖像好像是從與深度圖相同的物理位置產(chǎn)生的。然而,對于許多深度傳感器,可能有不具有可靠的測量的像素位置。當三維(3d)場景信息不能利用時,可以基于從其它位置確定的深度的估計來進行強度像素的變形。例如,常見的估計技術可以是假設該區(qū)域是平面的,以及從附近或甚至全局圖像值來得出3d平面的參數(shù)。當估計不對應于真實的3d結構時,它們可能導致變形圖像中的誤差或人工痕跡,其中在變形后,對象可能表現(xiàn)出被撕裂或伸展。相比之下,用于將深度圖變形成圖像的方法和系統(tǒng)可以產(chǎn)生改進的結果,因為只有具有已知3d位置的值可以被變形,因此輸出值可以表現(xiàn)為維持來自原始的未變形視圖的它們的形狀和大小。另一個優(yōu)點是,將深度圖變形成強度圖可能不會造成強度圖中的人為痕跡,因為沒有改變強度圖。
在圖1中說明了根據(jù)實施例的變形深度圖的結果。在(a)處示出了原始的深度圖,以及在(b)處示出了使用附近的相機獲取的圖像。在(c)處示出了直接在圖像(b)上覆蓋深度圖(a)的結果。注意的是,深度圖和圖像未對齊。在(d)處示出了在圖像(b)上的變形版本的深度圖(a)的覆蓋。注意的是,有較小的不重合以及其它小的人為痕跡,但是深度圖和圖像相對較好地對齊。
變形深度圖
深度傳感器
深度傳感器可以產(chǎn)生在它的視野內(nèi)的空間的物理測量。它可以周期地產(chǎn)生深度圖,或深度測量的集合。每個測量可以指示沿著物理線到這個線上的第一物理占用點的距離。深度傳感器的示例可以包含但不限于:立體相機、飛行時間激光掃描儀、結構光3d傳感器、雷達、激光雷達和聲納傳感器。深度圖可以被描述為測量的集合(x(n),y(n),z(n)),1≤n≤n,其中n是將被映射的像素的數(shù)量。
測量可以被認為在雙索引數(shù)組(x(i,j),y(i,j),z(i,j))中,1≤i≤w以及1≤j≤h,其中w和h表示圖的寬度和高度,對(i,j)可以定義2d像素位置,以及z(i,j)可以定義在這個位置處的像素的深度。
可以從深度傳感器輸出這個2d數(shù)組,作為光柵順序中的像素的測量流,在左上角的像素處開始數(shù)據(jù)輸出,并跨越頂行從左到右進行,然后返回到下一行的開始,等等,直達到達右下角像素。
可以沿著發(fā)源于被稱為傳感器的投影中心的單個3d點的有規(guī)律地間隔開的射線來進行測量??梢赃x擇坐標系,使得投影中心具有坐標(0,0,0)。在這種情況下,測量可以具有特定的形式(x(i,j),y(i,j),z(i,j))=z(i,j)?(i/gu-u0,j/gv–v0,1),其中(u0,v0)可以被稱為深度圖的主點,以及gu和gv是深度圖的焦距(以像素為單位)。在這種情況下,深度圖可以由值w,h,u0,v0,gu,gv和測量z(i,j),1≤i≤w和1≤j≤h,來表示。在一些傳感器中,深度測量可以由被稱為視差(d)的量來表示,視差(d)與深度的倒數(shù)成比例,d(i,j)=k/z(i,j),其中k是已知的常量。
相機
相機可以在它的視野內(nèi)產(chǎn)生空間的輻射測量。它可以周期性地產(chǎn)生圖像或這些測量的集合。每個輻射測量可以提供關于沿著物理線(在測量時從該線上的點向著相機)行進的電磁波的強度、頻率和/或極化的一些信息。例如,彩色相機可以產(chǎn)生沿著光線行進的可見光的各自的紅、綠和藍成分的測量r、g和b。
相機可以以光柵順序產(chǎn)生數(shù)據(jù),在左上角的像素處開始數(shù)據(jù)輸出,并跨越頂行從左到右進行,然后返回到下一行的開始,等等,直達到達右下角像素。光柵順序中的這個像素序列可以被稱為像素的流或像素流。
i(i,j)可以指在像素位置(i,j)處的相機測量。能夠高效地計算3d場景點(x,y,z)投影的圖像位置(u,v)。在透視相機的情況下,例如,具有坐標(x,y,z)的3d點(在中心位于主點以及具有與圖像平面的x軸和y軸平行的x軸和y軸的參考系中)可以投影到圖像位置(u,v)=(x/z,y/z)。(u,v)可以被稱為(x,y,z)的投影。
對應于(u,v)的像素位置(i,j)可以由(i,j)=(fu(u+u0),fv(v+v0))給出,其中fu和fv是相機的x焦距和y焦距,以及(u0,v0)是相機的主點。在實施例中,在通過索引對來近似真值對(fu(u+u0),fv(v+v0))時,可以發(fā)生一些取整。
在這個文檔中注意的是,出于說明的目的,描述了透視相機,但是本文中的描述可以應用于能夠容易地計算3d點的2d投影的任何相機,諸如反射折射相機。
變形操作
在實施例中,變形操作可以將由在一個位置處的傳感器產(chǎn)生的深度圖變換成與由在不同位置(t)處觀看相同場景的傳感器產(chǎn)生的深度圖相似的深度圖。對于在具有測量的原始的深度圖中的每個像素,可以遵從類似的流程。首先,由像素表示的世界點的3d坐標可以從深度圖中的行索引和列索引、該像素的深度測量以及傳感器的參數(shù)(如果需要)(例如,主點和焦距)來計算。接著,可以計算中心位于t的坐標系中的相同3d點的坐標。然后,可以計算在新的深度圖中的變換的3d點的投影的2d坐標。然后,可以在新的深度圖中適當?shù)男兴饕土兴饕幋鎯π碌淖鴺讼抵械纳疃戎怠R愿_的記法,傳感器位于(0,0,0),以及原始的深度圖可以被變形到如從位于t=(tx,ty,tz)的傳感器的視角看到的深度圖。變換的深度值可以被寫成坐標(xt(i’,j’),yt(i’,j’),zt(i’,j’))的一部分,深度為zt(i’,j’),i’在1,..w’中以及j’在1,..h’中。
在圖2中說明了變形過程的實施例??梢詫τ诰哂猩疃葄(i,j)的原始的深度圖中的每個像素來執(zhí)行這個過程。在210,可以從原始的深度圖讀取3d點(x(i,j),y(i,j),z(i,j))。在220,可以計算原點為t的坐標系中的對應坐標,(x’,y’,z’)=(x(i,j)-tx,y(i,j)-ty,z(i,j)-tz)。在230,可以計算變形的深度圖像中的投影的位置。在傳感器具有單個投影中心以及具有與深度傳感器相同的取向的情況下,這可以被計算為(u’,v’)=(x’/z’,y’/z’)。在240,在變形的深度圖中對應于(u’,v’)的索引(i’,j’)可以被計算為(i’,j’)=(f’u(u’+u’0),f’v(v’+v’0))。在250,如果1≤i’≤w’以及1≤j’≤h’,則zt(i’,j’)可以被設置為z’。
在以上變形過程中描述的計算是出于說明的目的而給出的,以及可以由其它類似的計算來替換。例如,在深度傳感器和相機類似于先前說明,但是具有不同的定向,跟3乘3旋轉(zhuǎn)矩陣r相關的情況下,可以通過r?(x(i,j)-tx,y(i,j)-ty,z(i,j)-tz)計算坐標(x’,y’,z’),其中“.”表示3乘3矩陣與三維向量的乘積。例如,在深度傳感器和相機都具有唯一的投影中心以及具有相同的成像平面(物理的或校正的)的情況下,在視差空間中,能夠放棄3d計算以及完全由更簡單的計算來替換3d計算。
降低等待時間
從原始的深度圖來構建變形的深度圖
在常規(guī)的深度映射系統(tǒng)中,可以在開始變形過程前,完成原始的深度圖的讀取。一旦完成變形過程以及生成變形的深度圖,則能夠使應用可以利用變形的深度圖中的數(shù)據(jù)。在以上方法中,在應用能夠開始使用變形的深度圖之前,可能需要等待處理整個原始的深度圖。在圖3中說明了這個過程。在310,可以將原始的深度圖從深度傳感器讀取到存儲器。在320,可以計算變形的深度圖。在330,可以使應用可以利用變形的深度圖。在原始的深度圖的捕獲的開始和變形進程開始的時刻之間的持續(xù)時間被示出為twarp。在原始的深度圖的捕獲的開始和應用進程能夠開始讀取變形的深度圖的時刻之間的持續(xù)時間被示出為tapp。
深度傳感器可以以先后順序產(chǎn)生它們的輸出,以便能夠從深度傳感器直接讀取原始的深度圖。在實施例中,變形過程可以在正在產(chǎn)生原始的深度圖時,或使用其它降低等待時間的方式,來讀取原始的深度圖。因此,在此類實施例中,可能不需要存儲整個原始的深度圖,因此降低了系統(tǒng)的存儲器需求;與其它方式相比,變形過程可以更早地開始,以及從而更早地終止。
在實施例中,可以僅從原始的深度圖的有界限的區(qū)域內(nèi)的像素來計算變形的深度圖中的像素的最終深度值。因此,一旦可以已經(jīng)處理了原始的深度圖的這個有界區(qū)域中的所有像素,則在變形的圖像中的考慮的像素的值可能不會再被改變。因此,使用變形的深度圖的應用可以在該時刻開始處理考慮的像素。因此,應用可以在完全計算變形的深度圖之前,開始處理變形的深度圖。根據(jù)實施例,以下給出有界區(qū)域的大小的計算的更詳細的論述。
更準確地說,對于在變形的深度圖中的任何像素n’,其中1≤n’≤n’以及n’是變形的深度圖的大小,在原始的深度圖中有像素的集合a(n’),其中這些像素可以影響n’的最終深度值z(n’)。也就是說,在這個集合a(n’)外的像素可能不會影響變形的深度圖的像素n’的最終值。在本文中,這個集合可以被稱為原始的深度圖中考慮的像素n’的起源的界限區(qū)域。在實施例中,一旦已經(jīng)處理了該有界區(qū)域中的所有像素,則可以輸出變形的深度圖的相關聯(lián)像素n’。在一些情況下,不會同時處理原始的深度圖的a(n’)中的所有像素n。相反,可以以預定的順序(諸如光柵順序)來處理它們。對于原始的深度圖的任何特定處理順序而言以及對于變形的深度圖的任何像素n’而言,有a(n’)中的“最后”像素l(n’),使得一旦已經(jīng)處理了l(n’),則已經(jīng)處理了a(n’)中的所有像素,以及從而可能不會由變形過程進一步修改變形的深度圖的像素n’的最終值。
相反地,對于原始的深度圖的任何像素n,在變形的深度圖中有像素s(n)的集合,該集合s(n)由像素n’組成,使得n是可以影響n’處的變形的深度圖的值(即l(n’)=n)的最后的像素。換句話說,s(n)={n’|l(n’)=n}。
如以下將進一步詳細論述的,可以基于描述深度傳感器的真實3d方位和強度相機視圖的3d方位之間的關系的轉(zhuǎn)換、深度傳感器的操作范圍以及算法(諸如插值法和鄰居填充)的其它參數(shù)來計算有界區(qū)域??梢栽谧冃伍_始之前,計算對于任何輸出的深度像素的有界區(qū)域。在變形操作期間的任何點處指示輸出深度圖中的什么像素是準備好的結果可以被存儲在查詢表中。如本文中使用的,詞語“準備好”可以指變形的深度圖中的像素或行的狀態(tài)為已經(jīng)完全被確定。
將這些結果存儲在更大的聚合組(例如,通過行來聚合)中可能更加實用。在實施例中,可以創(chuàng)建具有h個條目的查詢表,其中h是輸入深度圖中的行的數(shù)目。在每個條目處,這個表可以含有輸出深度圖的對應的行,該對應的行在完成處理給定輸入行時將是準備好的。根據(jù)實施例,在圖4中對這種情況進行了說明。在410,可以開始讀取新的(至今未處理)原始的深度圖。在420,可以做出關于是否已經(jīng)處理了原始的深度圖的所有的確定。如果沒有,則在430,可以處理原始的深度圖的下一個可以利用的像素。在440,可以做出關于是否已經(jīng)到達輸入行的末端的確定,以及如果沒有,則過程可以在420處繼續(xù),或可替代地在430繼續(xù)。如果到達輸入行的末端,則在450,可以訪問查詢表以確定輸出行是否準備好;然后任何完成的準備好的行可以被輸出給應用和/或使應用可以利用,以及過程可以在420處繼續(xù)。如果在420,確定已經(jīng)完全地處理了原始的深度圖,則可以終止變形過程,以及如果需要的話,可以開始下一個深度圖的處理。
使用此類實施例,可以得到具有如在圖5中示出的時間圖的過程。這個圖示出了重疊讀?。?10)、計算(520)和應用(530)過程如何可以減少處理圖像花費的時間。在實施例中,只要計算了原始的深度圖的第一像素(在這種情況下,twarp可以接近于0)或此后不久就可以利用原始的深度圖的第一像素。特別地,可以降低數(shù)據(jù)開始可以從深度傳感器利用的時刻和應用可以開始處理變形的深度圖的時刻之間的等待時間,因為在開始變形之前,原始的深度圖的讀取不需要完全完成。注意的是,在這個圖中概念性地示出了讀取過程510和變形計算520之間的重疊的量。在不同的實施例中,等待時間中減少的量可能變化。
以下將論述在變形計算520和應用530中的重疊。
考慮遮擋
在上述實施例中,變換的深度值可以被存儲在輸出的變形的深度圖中。替代僅重寫可能已經(jīng)被存儲在那個位置處的任何值,變化可以被引入(憑借該變化,可以首先讀取新的深度值)以及用于在新的值更接近于相機(即,具有較小的深度值)時重寫在輸出的變形的深度圖中的先前存在的值。在圖6中說明了此類變形過程的實施例。在實施例中,這個過程類似于圖2的過程,如此處描述的最后的元素被替換。如在圖2中,可以對于具有深度測量的原始的深度圖中的每個像素(i,j)來執(zhí)行圖6的過程。在610,可以從原始的深度圖讀取3d點(x(i,j),y(i,j),z(i,j))。在620,可以計算原點為t的坐標系中的對應坐標,(x’,y’,z’)=(x(i,j)-tx,y(i,j)-ty,z(i,j)-tz)。在630,可以計算在變形的深度圖像中的投影的位置。在傳感器具有單個投影中心的情況下,這可以被計算為(u’,v’)=(x’/z’,y’/z’)。在640,在變形的深度圖中對應于(u’,v’)的索引(i’,j’)可以被計算為(i’,j’)=(f’u(u’+u’0),f’v(v’+v’0))。
在650,可以做出關于是否是1≤i’≤w’以及1≤j’≤h’的確定。如果是,則在660,可以做出關于是否先前已經(jīng)設置了深度測量zt(i’,j’)的確定。如果是,則在670,可以做出關于是否是zt(i’,j’)>z’的確定。如果是,則在680,zt(i’,j’)被改變成值z’。如果在660,確定還沒有設置zt(i’,j’),則在680,zt(i’,j’)被設置成值z’。注意的是,使用這個改變,所生成的深度圖可以被視為用作z-緩沖器(z-buffer)。
降低結果的深度圖的稀疏性
在實施例中,使用目前為止描述的過程,可能沒有完全地填充變形的深度圖。這種情況能夠出現(xiàn)是由于許多原因??赡軟]有被完全地填充原始的深度圖。此外,變形可以使得原始的深度圖的多個像素再現(xiàn)到新的深度圖的單個像素中;由于視點改變,或僅由于在計算中的取整,所以這種情況能夠發(fā)生。這可能讓其它像素沒有測量值。此外,可以設置變形的深度圖的至多w*h個像素,以便,如果變形的深度圖具有比原始的深度圖更多的像素,則將不設置變形的深度圖中的一些像素。
根據(jù)實施例,可以執(zhí)行在變形的深度圖中“洞”的填充,作為變形算法的一部分。以下描述填充此類洞的各種方法。
填充洞的一種方法可以涉及在映射像素被再現(xiàn)到深度圖(如上所述)后,在它們被輸出到接收應用之前,增加明確的填充步驟。輸出被延遲,直到輸出像素附近的小范圍鄰居被認為準備好。在實施例中,能夠通過考慮周圍的有效(即,沒有丟失)深度值來填充不具有深度值的任何像素。有許多用于填充此類洞的方法,包含但不限于:重復有效的最近的鄰居的值;基于若干最近的周圍有效值來內(nèi)插值(例如,假設平面表面),或基于最近的有效鄰居的平均值、中位數(shù)或眾數(shù)進行填充。在其它實施例中,填充過程可以估計場景中的可能的不連續(xù),以及不包含跨越不連續(xù)的深度鄰居。在這個步驟中,還可以執(zhí)行噪聲降低。例如,在各個方面在一段距離內(nèi)由空深度像素包圍的單個深度值可以被認為是噪聲值并且被移除。
根據(jù)實施例,空洞填充的另一個方法可以臨時地存儲新的傳感器坐標系中每個映射的像素的變形的位置和深度,而不是直接將它再現(xiàn)到新的深度圖中。當已經(jīng)計算了來自原始像素的周圍的小范圍鄰居的像素的映射的坐標時,這些3d坐標可以用于定義多邊形,以及被投影到新的深度圖中。內(nèi)插法可以用于再現(xiàn)由映射的多邊形覆蓋的輸出像素值。例如,可以在輸出深度圖的大小大于原始圖的情況下,使用這個方法。如下,更詳細地描述這個方法。
在此類實施例中,可以存儲映射的值z’(以及,如果需要,還有x’和y’)的鄰居,以及變形的深度圖中的真值的像素的位置(a’(i,j),b’(i,j))。出于注釋的目的,x’,y’和z’是基于原始的深度圖的像素(i,j)計算的各自值x’(i,j),y’(i,j)和z’(i,j)。
在這個方法中,可以內(nèi)插結果的的深度圖中的值:在變形的深度圖中的像素(i’,j’)處的值可以從在圍繞(i’,j’)的鄰居位置(u’(i,j),v’(i,j))處的值(x’(i,j),y’(i,j),z’(i,j))來內(nèi)插。在實施例中,內(nèi)插的鄰居可以具有fxg像素的大小。
在圖7中說明了這個方法的實施例。這個過程可以在原始的深度圖中的像素上一行一行(或一列一列)的循環(huán)。在710,可以從原始的深度圖讀取3d點(x(i,j),y(i,j),z(i,j))。在720,可以計算原點為t的坐標系中的對應坐標,(x’,y’,z’)=(x(i,j)-tx,y(i,j)-ty,z(i,j)-tz)。在730,可以計算變形的深度圖像中的投影的位置。在傳感器具有單個投影中心的情況下,投影的位置可以被計算成(u’,v’)=(x’/z’,y’/z’)。在740,像素(a’(i,j),b’(i,j))可以被計算為(f’u(u’+u’0),f’v(v’+v’0))。在750,如果i>f并且j>g,則在能夠從像素位置(a’(i-c,j-d),b’(i-c,j-d))處(所有c在0和f之間,以及所有d在0和g之間)的值進行內(nèi)插的每個位置(i’,j’)處,可以計算內(nèi)插值(xt(i,j),yt(i,j),zt(i,j)。
圖8說明了在f=g=2的情況下可以在750處發(fā)生的示例性內(nèi)插。實數(shù)值像素位置(a’(i-c,j-d),b’(i-c,j-d))被示出為在多邊形的拐角處的點,而值(i’,j’)(在該值處,能夠確定內(nèi)插值)被示出為在該多邊形內(nèi)部的點。從右下角開始以及順時針移動,在多邊形的拐角處的位置被示出為(a’(i,j),b’(i,j)),(a’(i-1,j),b’(i-1,j)),(a’(i-1,j-1),b’(i-1,j-1))和(a’(i,j-1),b’(i,j-1))。
在各種實施例中,可以使用本領域的普通技術人員已知的任何適當?shù)膬?nèi)插方法來實現(xiàn)這個過程。例如,使用f=g=1,能夠使用最近鄰居內(nèi)插;使用f=g=2,能夠使用雙線性內(nèi)插;使用f=g=4,能夠使用雙三次內(nèi)插。如果值的一部分丟失,則不同的內(nèi)插機制可以用于計算內(nèi)插值。例如,使用f=g=2,如果一個值、兩個值或三個值丟失,則仍然可以使用最近鄰居內(nèi)插找到值。
在實施例中,可能僅需要存儲變形的深度圖的值(x’(i,j),y’(i,j),z’(i,j))和位置(u’(i,j),v’(i,j))的g行(如果該深度圖是一行一行掃描的)或f列(如果該深度圖是一列一列掃描的)。
注意的是,在各種實施例中,可以結合用于處理變形的深度圖中的遮擋的上述過程來使用降低稀疏性的上述方法。
確定變形的深度圖的讀取何時可以開始
如上所述,在實施例中,在已經(jīng)由變形過程處理原始的深度圖中的所有像素(i,j)之前,可以讀取或以其它方式使得應用可以利用像素(i’,j’)處的變形的深度圖的值。構思是確定對于給定的變形的深度圖像素(i’,j’),在原始的深度圖中可能影響變形算法的過程內(nèi)的z’(i’,j’)的值的像素的區(qū)域a(i’,j’)??梢杂捎薪缇匦蝃cmin(i’,j’),cmax((i’,j’)]x[rmin(i’,j’),rmax(i’,j’)]來表示這個區(qū)域,其中cmin和cmax可以表示該區(qū)域的列邊界,以及rmin和rmax可以表示該確定的行邊界。
為了確定區(qū)域a(i’,j’),注意的是,所有的深度傳感器可以具有可能的測量z的有界范圍??梢源嬖谝阎吔鐉min<zmax≤∞,使得在任何像素(i,j)處,zmin≤z(i,j)≤zmax。因此,在變形的深度圖中的z’值也將由z’min=zmin–tz和z’max=zmax–tz來約束。
在變形的深度圖中的像素(i’,j’)可以對應于位于3d線段{z’(i’/f’x-u0’,j’/f’y-v0’,1)+t|z’min≤z’≤z’max}上的3d點。在原始的深度圖中,在這個3d線段上的點的投影一般可以形成曲線。可以基于zmin和zmax來確定用于這個曲線的邊界框。在深度傳感器具有透視投影模式的情況下,這個曲線可以是由3d線段的極點(在z’=z’min和z’=zmax處的點)的投影限定的2d線段??梢杂蛇@個線段的極點來限定這個2d線段的緊邊界框。
在實施例中,只要在變形的深度圖的行j’中的所有像素準備好被讀取時就開始讀取該行j’常常是便利的:可以只要已經(jīng)處理了原始的深度圖中的行max{rmax(i’,j’)|1≤i’≤w’},就開始讀取行j’,憑借此進一步降低等待時間。根據(jù)實施例,在圖9中說明了這種情況。在910,可以做出關于是否已經(jīng)處理了在原始的深度圖中的行max{rmax(i’,j’)|1≤i’≤w’}的確定。如果是,則在930,可以讀取行j’。如果否,則處理可以返回910。注意的是,變形過程可以繼續(xù)貫穿所說明的操作,以便當監(jiān)測到910中闡明的條件時,處理另外的像素。
當變形算法能夠在有界的時間中來處理原始的深度圖中的每個像素時,可能是便利的是,在由開始偏移(相對于變形算法的開始而取該開始偏移)限定的固定的時間表和讀取像素的速度上來讀取變形的深度圖。如本領域的普通技術人員將知道的是,能夠確定確保不過早地讀取值的偏移和讀取速度。
確定何時能夠讀取變形的深度圖的示例
在實施例中,可以在深度傳感器和相機彼此接近的情況下,來做出這種確定。在這個示例中,可以假設的是,距離zmin是深度傳感器和相機之間的距離的5倍或大于5倍,可以通過使當前的深度傳感器和相機并列來得到這種情形??梢约僭O的是,深度傳感器和相機指向同一方向。
在這種情況下,在無窮遠處的點可以出現(xiàn)在相機的圖像平面中以及在深度傳感器的圖像平面中的相同位置中,以便深度傳感器和相機之間的最小視差是零。
約束深度圖和圖像之間的總視差可能是期望的。在這個相同的傳感器配置中,以及假設用于兩個傳感器的45度的現(xiàn)實視野,則可以示出的是,深度傳感器和相機之間的最大視差將是深度的圖或圖像的大小的至多四分之一。如果視野更大,如許多傳感器的情況,則這個最大視差可以變得更小。
約束垂直視差可能也是期望的。如果,例如相機位于在深度傳感器的左面或右面(如與上或下相對),則它們視圖之間的垂直視差可以僅是它們視圖之間的總視差的一部分,以及因此是非常有限的??梢约僭O的是,垂直視差小于圖像的大小的八分之一。
另外,用于內(nèi)插的額外填充可能是有利的??梢约僭O的是,一行一行地讀出深度圖。考慮到用于深度內(nèi)插的g個像素(相對于圖像,g可以?。?,可以得出的結論是,對于變形的深度圖中的給定像素(i’,j’),在原始的深度圖中能夠影響在(i’,j’)中的變形的深度圖的值的像素的集合可以在不高于原始的深度圖的六分之一以及不寬于原始的深度圖的四分之一的區(qū)域中。因此,一旦已經(jīng)變形了原始的深度圖的四分之一,就能夠開始讀出變形的深度圖的第一像素。
出于說明的目的,在這個示例中使用的特定參數(shù)將示出的是,可以基于深度傳感器和相機的相對位置以及它們的視野來確定何時開始讀取深度圖。原始的深度圖的四分之一的圖可以略微更大或更小,但是一般地可以基本上小于完整深度圖的大小。特別地,如果使深度傳感器和相機良好地對齊,則垂直視差可以較小,以及因此在變形的深度圖中的像素可以與(在原始的深度圖中)的像素(從該像素來計算深度圖中的像素)幾乎在相同的行上,以及可以進一步降低在能夠開始讀取輸出深度圖之前的等待時間。
可以基于變形處理每個像素的速度以及基于應用處理每個像素的速度,來確定能夠讀取出變形的深度圖的速度。
示例實現(xiàn)方式的描述
圖10說明了根據(jù)實施例,以與圖像對齊的方式來變形深度圖的過程。如在1010處示出的,這個過程從時間t=0開始。在1020,可以開始從深度傳感器進行讀出。然后,在1030,過程可以等待,直到t=twarp。在該時間點,如在1040示出的,可以開始變形流程。此處,變形過程可以從第一存儲器緩沖器進行讀取,以及將生成的變形的深度圖寫入到第二存儲器緩沖器中。然后,在1050處,過程可以等待,直到t=tapp。然后,從1060開始,應用可以利用來自變形的深度圖的數(shù)據(jù)。
應用于三目系統(tǒng)
根據(jù)本發(fā)明的實施例,可以在如在圖11中說明的三目系統(tǒng)中實現(xiàn)本文中描述的方法和系統(tǒng)。一般地,此類系統(tǒng)可以包含:立體深度傳感器和相機。不管立體深度傳感器具有黑白相機,彩色相機,紅外線相機,近紅外線相機,紫外線相機、多譜線相機還是其它類型的相機,都可以實現(xiàn)上述方法和系統(tǒng)。相機可以是黑白的、色的、紅外線的、近紅外線的、紫外線的或其它形式的相機。出于說明的目的,以下論述的是彩色相機。
圖11的實施例示出了三目系統(tǒng)1100,在三目系統(tǒng)1100中,兩個相機1110和1120是立體深度傳感器的一部分,以及第三相機1130是彩色相機。左和右圖像預處理框(分別為1115和1125)可以校正圖像,以便移除鏡頭畸變,以及以便核線在左圖像和右圖像中是水平的以及符合逐行的。來自立體深度框1140可以從左和右校正圖像計算深度圖。彩色圖像處理框1150可以校正彩色圖像,以便移除鏡頭畸變,以及以便校正的彩色圖像的圖像平面與立體深度圖的圖像平面平行。深度圖變形框1160可以變形深度圖,以便深度圖看起來像具有與彩色相機相同的投影中心,以及可以并入以上圖2、4、6、7和圖9中的任何或所有圖的功能。如以下將論述的,可以在軟件、固件或硬件中,或在它們的組合中來實現(xiàn)深度圖變形框1160的處理。這個框的處理可以使用定制的或通用的計算設備。
注意的是,上述方法和系統(tǒng)可以應用于使深度圖與另一個深度圖而不是與圖像對齊。
而且,以上論述已經(jīng)假設的是,變形的深度圖被表示在具有與原始的深度圖相同的x、y和z軸的參考系中。當用于表示結果的參考系具有不同的基時,可以使用以上系統(tǒng)和方法。如果r用于指示3x3矩陣,該3x3矩陣用于將深度傳感器的參考系的軸映射到相機的參考系的軸,則可以由(x’,y’,z’)=r?(x(i,j)–tx,y(i,j)–ty,z(i,j)–tz)來替換圖2的220。
另外,在深度傳感器也產(chǎn)生圖像(例如,立體相機)的情況下,可以使用以上變形和用于變形深度圖的內(nèi)差過程來變形此類圖像。
在實施例中,本文中描述的處理中的一些或全部處理可以被實現(xiàn)成軟件,固件或硬件,或它們的任何組合。硬件實施例可以包含:離散的和集成的電路邏輯、專用集成電路(asic)邏輯以及微控制器,以及可以被實現(xiàn)成領域特定的集成電路封裝的一部分,或集成電路封裝的組合。
在圖12中的計算系統(tǒng)1200的情景中說明了軟件或固件的實施例。系統(tǒng)1200可以包含:一個或多個中央處理器(多個)(cpu)1220和存儲體1210,存儲體1210可以包含一個或多個短暫性的和/或非短暫性的計算機可讀介質(zhì),該計算機可讀介質(zhì)可以存儲計算機程序邏輯1240和在上述處理期間生成的數(shù)據(jù),該數(shù)據(jù)包含但不限于:例如,深度圖??梢詫⒋鎯w1210實現(xiàn)成一個或多個設備,該一個或多個設備包含:例如,只讀存儲器(rom)或隨機存取存儲器(ram)設備,或它們的組合。cpu1220和存儲器1210可以使用本領域的普通技術人員已知的若干技術(諸如總線或點到點互連)中的任何技術進行通信??梢杂蒫pu1220來讀取和執(zhí)行在存儲器1210中含有的計算機程序邏輯1240。在實施例中,一個或多個i/o端口和/或i/o設備(一起被示出為i/o1230)可以連接到cpu1220和存儲器1210。在實施例中,i/o1230可以包含:一個或多個輸入設備(諸如例如圖11的相機1110和1120),或用于捕獲圖像和原始的深度圖的其它設備。
在圖12的實施例,計算機程序邏輯1240可以包含:模塊1250,該模塊負責原始的深度圖的低等待時間變形以創(chuàng)建變形的深度圖。在實施例中,模塊1250可以并入上述的和在圖2、4、6和/或圖7中的任何或全部圖中說明的處理。計算機程序指令(被示出為邏輯1240)可以包含模塊1260,模塊1260被配置為處理變形的深度圖中的遮擋,如圖6中示出的。計算機程序邏輯1240可以包含模塊1270,模塊1270用于變形的深度圖中的稀疏性的矯正,如圖7中示出的。計算機程序邏輯1240可以包含應用訪問模塊1280,模塊1280負責使得另外的應用可以訪問來自變形的深度圖的數(shù)據(jù),如圖9中示出的。注意的是,雖然遮擋處理模塊1260、稀疏性矯正模塊1270和應用訪問模塊1280被示出為與變形模塊1250分離的模塊,但是在備選的實施例中,可以將這些模塊全部并入在單個模塊中。
上述的系統(tǒng)、方法和計算機程序產(chǎn)品可以是更大的信息系統(tǒng)的一部分。圖13將此類實施例說明成系統(tǒng)1300。在實施例中,系統(tǒng)1300可以是媒體系統(tǒng),但是系統(tǒng)1300不限制于這種情景。例如,系統(tǒng)1300可以并入到個人計算機(pc)、膝上型計算機、超級膝上型計算機、平板計算機、觸摸板、便攜型計算機、手持型計算機、掌上計算機、個人數(shù)字助理(pda)、蜂窩電話、組合的蜂窩電話/pda、電視、智能設備(例如,智能電話、智能平板計算機、智能手表或智能電視)、移動互聯(lián)網(wǎng)設備(mid)、消息傳送設備、數(shù)據(jù)通信設備等??梢詫⒕哂袑R的變形的深度圖的圖像(如上述生成的)提供給此類系統(tǒng),例如以用于用戶訪問或用于由在系統(tǒng)1300中執(zhí)行的硬件或軟件進一步進行處理。
在實施例中,系統(tǒng)1300包括:耦合到顯示器1320的平臺1302。平臺1302可以接收來自內(nèi)容設備(諸如內(nèi)容服務設備(多個)1330或內(nèi)容交付設備(多個)1340或其它類似的內(nèi)容源)的內(nèi)容。包括一個或多個導航特征的導航控制器1350可以用于與例如平臺1302和/或顯示器1320進行交互。以下將詳細地描述這些組件中的每個組件。
在實施例中,平臺1302可以包括以下中的任何組合:芯片組1305、處理器1310、存儲器1312、存儲設備1314、圖形子系統(tǒng)1315、應用1316和/或無線電1318。芯片組1305可以在處理器1310、存儲器1312、存儲設備1314、圖形子系統(tǒng)1315、應用1316和/或無線電1318之間提供內(nèi)部通信。例如,芯片組1305可以包含:能夠提供與存儲設備1314互通信的存儲設備適配器(未繪出)。
可以將處理器1310實現(xiàn)成復雜指令集計算機(cisc)或精簡指令集計算機(risc)處理器,x86指令集兼容處理器,多核心,或任何其它微處理器或中央處理器(cpu)。在實施例中,處理器1310可以包括:雙核處理器(多個)、雙核移動處理器(多個)等。
可以將存儲器1312實現(xiàn)成易失性存儲器設備,諸如但不限于隨機存取存儲器(ram)、動態(tài)隨機存取存儲器(dram)或靜態(tài)ram(sram)。
可以將存儲設備1314實現(xiàn)成非易失性存儲設備,諸如但與限于磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器、內(nèi)部存儲設備、附接的存儲設備、閃速存儲器、電池供電的sdram(同步dram)和/或網(wǎng)絡可以訪問的存儲設備。在實施例中,存儲設備1314可以包括:例如,在包含多個硬盤驅(qū)動器時,對于有價值的數(shù)字媒體提高存儲設備性能增強保護的技術。
圖形子系統(tǒng)1315可以執(zhí)行用于顯示的圖像(諸如靜態(tài)圖像或視頻圖像)的處理。圖形子系統(tǒng)1315可以是例如圖形處理器(gpu)或虛擬處理單元(vpu)。模擬或數(shù)字接口可以用于可通信地耦合圖形子系統(tǒng)1315和顯示器1320。例如,該接口可以是以下中的任何一個:高清晰度多媒體接口、顯示端口、無線hdmi和/或無線hd兼容技術。圖形子系統(tǒng)1315能夠被集成到處理器1310或芯片組1305中。圖形子系統(tǒng)1315能夠是可以通信地耦合到芯片組1305的獨立卡。
可以在各種硬件架構中實現(xiàn)本文中描述的圖形和/或視頻處理技術。例如,圖形和/或視頻功能可以被集成在芯片組中。可替代地,可以使用離散的圖形和/或視頻處理器。作為又一個實施例,可以由通用處理器(包含多核處理器)來實現(xiàn)圖形和/或視頻功能。在另一個實施例中,可以在消費電子設備中實現(xiàn)該功能。
無線電1318可以包含:能夠使用各種合適的無線通信技術來傳送和接收信號的一個或多個無線電。此類技術可以涉及跨域一個或多個無線網(wǎng)絡的通信。示例性無線網(wǎng)絡包含(但不限于):無線局域網(wǎng)(wlan)、無線個域網(wǎng)(wpan)、無線城域網(wǎng)(wman)、蜂窩網(wǎng)絡和衛(wèi)星網(wǎng)絡。在跨越此類網(wǎng)絡的通信中,無線電1318可以依照任何版本的一個或多個可以適用的標準來進行操作。
在實施例中,顯示器1320可以包括:被配置為顯示圖像(諸如由上述的處理單元處理的圖形)的任何電視類型的監(jiān)視器或顯示器。顯示器1320可以包括:例如計算機顯示屏、觸摸屏顯示器、視頻監(jiān)視器、類似電視的設備和/或電視。顯示器1320可以是數(shù)字的和/或模擬的。在實施例中,顯示器1320可以是全息顯示器。此外,顯示器1320可以是透明表面,該透明表面可以接收視像投影。此類投影可以傳遞各種形式的信息、圖像和/或?qū)ο?。例如,此類投影可以是用于移動增強現(xiàn)實(mar)應用的視像疊加。在一個或多個軟件應用1316的控制下,平臺1302可以在顯示器1320上顯示用戶界面1322。
在實施例中,內(nèi)容服務設備(多個)1330可以由任何國家的、國際的和/或獨立的服務來托管,以及因此平臺1302可以經(jīng)由例如互聯(lián)網(wǎng)來訪問內(nèi)容服務設備(多個)1330。內(nèi)容服務設備(多個)1330可以耦合到平臺1302和/或顯示器1320。平臺1302和/或內(nèi)容服務設備(多個)1330可以耦合到網(wǎng)絡1360以傳播(例如,發(fā)送和/或接收)往返于網(wǎng)絡1360的媒體信息。內(nèi)容交付設備(多個)1340也可以耦合到平臺1302和/或顯示器1320。
在實施例中,內(nèi)容服務設備(多個)1330可以包括:有線電視盒,個人計算機,網(wǎng)絡,電話,啟用互聯(lián)網(wǎng)的設備或能夠遞送數(shù)字信息和/或內(nèi)容的裝置,以及能夠經(jīng)由網(wǎng)絡1360或直接地在內(nèi)容提供商和平臺1302和/或顯示器1320之間單向或雙向地傳播內(nèi)容的任何其它類似的設備。將了解的是,可以經(jīng)由網(wǎng)絡1360單向地和/或雙向地往返于系統(tǒng)1300中的組件中的任何組件和內(nèi)容提供商來傳播內(nèi)容。內(nèi)容的示例可以包含任何媒體信息,媒體信息包含:例如,視頻、音樂、醫(yī)用和游戲信息等。
內(nèi)容服務設備(多個)1330接收諸如包含媒體信息的有線電視節(jié)目的內(nèi)容,數(shù)字信息和/或其它內(nèi)容。內(nèi)容提供商的示例可以包含任何有線電視或衛(wèi)星電視或無線電或互聯(lián)網(wǎng)內(nèi)容提供商。所提供的示例不是旨在限制本發(fā)明的實施例。
在實施例中,平臺1302可以接收來自具有一個或多個導航特征的導航控制器1350的控制信號。例如,控制器1350的導航特征可以用于與用戶界面1322進行交互。在實施例中,導航控制器1350可以是定位設備,該定位設備可以是允許用戶將空間數(shù)據(jù)(例如,連續(xù)的和多維的)輸入到計算機的計算機硬件組件(特別是人機接口設備)。許多系統(tǒng)(諸如,圖形用戶界面(gui)和電視以及監(jiān)視器)允許用戶使用物理手勢控制計算機或電視機,以及向計算機或電視劇提供數(shù)據(jù)。
可以通過移動顯示在顯示器(例如,顯示器1320)上的指針、光標、聚焦環(huán)或其它可視的指示符,來呼應控制器1350的導航特征的移動。例如,在軟件應用1316的控制下,可以將位于導航控制器1350上的導航特征映射到例如顯示在用戶界面1322上的虛擬導航特征。在實施例中,控制器1350可以不是單獨的組件而是被集成到平臺1302和/或顯示器1320中。然而,實施例不限制于這些元素或本文中示出或描述的情景。
在實施例,驅(qū)動器(未示出)可以包括:例如,使得用戶能夠在初始啟動后使用按鈕的觸摸,立即(當啟用該技術時)開啟或關閉如電視的平臺1302的技術。當“關閉”平臺時,程序邏輯可以允許平臺1302向媒體適配器或其它內(nèi)容服務設備(多個)1230或媒體交付設備(多個)1340流式傳輸內(nèi)容。另外,芯片組1305可以包括用于5.1環(huán)繞立體聲音頻和/或高清晰度7.1環(huán)繞立體聲音頻的硬件和/或軟件支持。驅(qū)動器可以包含用于集成圖形平臺的圖形驅(qū)動器。在實施例中,圖形驅(qū)動器可以包括外部設備互連(pci)總線圖形卡。
在各種實施例中,可以集成系統(tǒng)1300中示出的組件中的任何一個或多個組件。例如,可以集成平臺1302和內(nèi)容服務設備(多個)1330,或可以集成平臺1302和內(nèi)容交付設備(多個)1340,或例如,可以集成平臺1302、內(nèi)容服務設備(多個)1330和內(nèi)容交付設備(多個)1340。在各種實施例中,平臺1302和顯示器1320可以是集成單元。例如,可以集成顯示器1320和內(nèi)容服務設備(多個)1330,或可以集成顯示器1320和內(nèi)容交付設備(多個)1340。這些示例不意在限制本發(fā)明。
在各種實施例中,可以將系統(tǒng)1300實現(xiàn)成無線系統(tǒng)、有線系統(tǒng)或這兩者的組合。當被實現(xiàn)成無線系統(tǒng)時,系統(tǒng)1300可以包含:適用于通過無線共享介質(zhì)進行通信的組件和接口,諸如一個或多個天線、傳送器、接收器、收發(fā)器、放大器、濾波器、控制邏輯等。無線共享介質(zhì)的示例可以包含:無線頻譜的部分,諸如rf頻譜等。當被實現(xiàn)成有線系統(tǒng)時,系統(tǒng)1300可以包含:適用于通過有線通信介質(zhì)進行通信的組件和接口,諸如輸入/輸出(i/o)適配器、使用對應的有線通信介質(zhì)連接到i/o適配器的物理連接器、網(wǎng)絡接口卡(nic)、盤控制器、視頻控制器、音頻控制器等。有線通信介質(zhì)的示例可以包含:電線、電纜、金屬引線、印刷電路板(pcb)、背板、交換結構、半導體材料、雙絞線、同軸電纜、光纖等。
平臺1302可以建立一個或多個邏輯或物理信道以傳播信息。信息可以包含:媒體信息和控制信息。媒體信息可以指表示用于用戶的內(nèi)容的任何數(shù)據(jù)。內(nèi)容的示例可以包含:例如,來自語音會話的數(shù)據(jù)、視頻會議、流式傳輸?shù)囊曨l、電子郵件(“電子郵件”)消息、語音郵件消息、字母數(shù)字符號、圖形、圖像、視頻、文本等。來自語音會話的數(shù)據(jù)可以是例如話音信息、靜默周期、背景噪聲、舒適噪聲、聲調(diào)等。控制信息可以指表示用于自動系統(tǒng)的命令、指令或控制字的任何數(shù)據(jù)。例如,控制信息可以用于通過系統(tǒng)路由媒體信息,或指令節(jié)點以預定的方式來處理媒體信息。然而,實施例不限制于在圖13中示出或描述的元素或情景。
如上所述,可以在各種物理樣式或形狀因子中來具體化系統(tǒng)1300。圖14說明了可以具體化系統(tǒng)1300的小形狀因子設備1400的實施例。在實施例中,例如,可以將設備1400實現(xiàn)成具有無線能力的移動計算設備。例如,移動計算設備可以指具有處理系統(tǒng)和移動電源或電力供應(諸如,一個或多個電池)的任何設備。
如上所述,移動計算設備的示例可以包含:個人計算機(pc)、膝上型計算機、超級膝上型計算機、平板計算機、觸摸板、便攜性計算機、手持型計算機、掌上計算機、個人數(shù)字助理(pda)、蜂窩電話、組合的蜂窩電話/pda、電視、智能設備(例如,智能電話、智能平板計算機、智能手表或智能電視)、移動互聯(lián)網(wǎng)設備(mid)、消息傳送設備、數(shù)據(jù)通信設備等。
移動計算設備的示例還可以包含:被布置為由人穿戴的計算機。在實施例中,例如,可以將移動計算設備實現(xiàn)成能夠執(zhí)行計算機應用以及話音通信和/或數(shù)據(jù)通信的智能電話。盡管可以使用被實現(xiàn)成例如智能電話的移動計算設備來描述一些實施例,但是可以了解的是,也可以使用其它無線移動計算設備來實現(xiàn)其它實施例。在這點上,實施例沒有限制。
如在圖14中示出的,設備1400可以包括:殼體1402、顯示器1404、輸入/輸出(i/o)設備1406和天線1408。設備1400還可以包括導航特征1412。顯示器1404可以包括:適于移動計算設備的用于顯示信息的任何合適的顯示器。顯示的信息可以包括:由處理單元(例如,gpu)處理的圖形。i/o設備1406可以包括:用于將信息輸入到移動計算設備的任何合適的i/o設備。i/o設備1406的示例可以包含:字母數(shù)字鍵盤、數(shù)字小鍵盤、觸摸板、輸入鍵、按鈕、開關、搖臂開關、麥克風、揚聲器、語音識別設備和軟件等。還可以通過麥克風將信息輸入到設備1400??梢杂烧Z音設備將此類信息數(shù)字化。在這點上,實施例沒有限制。
以下示例關于進一步的實施例。
示例1是用于圖像處理的系統(tǒng),該系統(tǒng)包括:第一電路邏輯單元,第一電路邏輯單元被配置為讀取來自原始的深度圖的像素坐標,以及第二電路邏輯單元,第二電路邏輯單元被配置為基于原始的深度圖來計算變形的深度圖,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖。
在示例2中,示例1的變形的深度圖的計算可以非必須地包括:確定原始的深度圖中的有界區(qū)域,其中該有界區(qū)域含有像素,該像素的坐標影響變形的深度圖中的像素的值。
在示例3中,如果示例1的變形的深度圖的計算導致相同坐標處的多個像素,則該計算可以非必須地包含:在多個像素中選擇具有最小深度的像素,以供在變形的深度圖中使用。
在示例4中,示例1的變形的深度圖的計算可以非必須地包括:使用丟失值的位置附近的變形的深度圖的鄰居中的像素的深度值,通過內(nèi)插來填充變形的深度圖中的該丟失值。
在示例5中,示例4的內(nèi)插可以非必須地包括:向丟失值分配深度值,該深度值是以下中的一個:等于鄰居像素的深度值,以及等于多個各自鄰居像素的深度值的函數(shù)。
在示例6中,示例4的變形的深度圖的計算可以非必須地包括:對于原始的深度圖中的像素(i,j),計算和存儲變形的圖像中的位置(a’(i,j),b’(i,j))=(f’u(u’+u’0),f’v(v’+v’0)),其中f’u和f’v是焦距,以及(u’0,v’0)是原始的深度圖中的主點的坐標,(a’(i,j),b’(i,j))對應于變形的深度圖中的點(u’,v’)=(x’/z’,y’/z’);以及如果i>f和j>g,其中f和g是內(nèi)插鄰居的維度,則對于能夠從變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(其中,所有c在0和f之間,以及所有d在0和g之間)的值內(nèi)插的丟失值的變形的深度圖中的每個位置(i’,j’),使用變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(所有c在0和f之間,以及所有d在0和g之間)的深度值來計算內(nèi)插值(xt(i,j),yt(i,j),zt(i,j))。
在示例7中,示例6的內(nèi)插可以非必須地包括以下中的一個:
最近鄰居內(nèi)插;雙線性內(nèi)插;雙三次內(nèi)插。
在示例8中,示例1的主題還可以非必須地包括:第三電路邏輯單元,第三電路邏輯單元被配置為使得在完成變形的深度圖的計算之前,應用可以利用在變形的深度圖的計算期間生成的像素坐標。
在示例9中,使得示例8的應用可以利用所生成的像素坐標可以非必須地包括:當在變形的深度圖的計算期間已經(jīng)完全處理了原始的深度圖中的行max{rmax(i’,j’)|1≤i’≤w’}時,使得可以利用變形的深度圖的行j’,其中rmax是原始的深度圖的有界區(qū)域中的最高行,其中有界區(qū)域包含影響變形的深度圖中的像素(i’,j’)的最終值的像素,創(chuàng)建具有對于原始的深度圖的每個行的條目的查詢表,其中該表中的每個條目標識變形的深度圖的行,在完成對應于條目的原始的深度圖的行的計算時,該行將是準備好的,以及使用該表來查詢變形的深度圖的一個或多個行是否準備好。
示例10是圖像處理的方法,該方法包括:讀取來自原始的深度圖的像素坐標;以及基于原始的深度圖,計算變形的深度圖,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖,其中由可編程的處理器來執(zhí)行所述讀取和計算。
在示例11中,示例10的變形的深度圖的計算可以非必須地包括
確定原始的深度圖中的有界區(qū)域,其中該有界區(qū)域含有像素,該像素的坐標影響變形的深度圖中的像素的值。
在示例12中,示例10的主題還可以非必須地包括:在多個像素中選擇具有最小深度的像素,以供在變形的深度圖中使用,如果變形的深度圖的計算導致相同坐標處的多個像素,則在多個像素中選擇具有最小深度的像素,以供在變形的深度圖中使用。
在示例13中,示例10的變形的深度圖的計算可以非必須地包括:使用丟失值的位置附近的變形的深度圖的鄰居中的像素的深度值,通過內(nèi)插來填充變形的深度圖中的該丟失值。
在示例14中,示例13的內(nèi)插可以非必須地包括:向丟失值分配深度值,該深度值是以下中的一個:等于鄰居像素的深度值,以及等于多個各自鄰居像素的深度值的函數(shù)。
在示例15中,示例13的變形的深度圖的計算可以可選地包括:對于原始的深度圖中的像素(i,j),計算和存儲變形的圖像中的位置(a’(i,j),b’(i,j))=(f’u(u’+u’0),f’v(v’+v’0)),其中f’u和f’v是焦距,以及(u’0,v’0)是原始的深度圖中的主點的坐標,(a’(i,j),b’(i,j))對應于變形的深度圖中的點(u’,v’)=(x’/z’,y’/z’);以及如果i>f和j>g,其中f和g是內(nèi)插鄰居的維度,則對于能夠從變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(其中,所有c在0和f之間,以及所有d在0和g之間)的值內(nèi)插的丟失值的變形的深度圖中的每個位置(i’,j’),使用變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(所有c在0和f之間,以及所有d在0和g之間)的深度值來計算內(nèi)插值(xt(i,j),yt(i,j),zt(i,j))。
在示例16中,示例15的內(nèi)插可以可選地包括以下中的一個:
最近鄰居內(nèi)插;雙線性內(nèi)插;雙三次內(nèi)插。
在示例17中,示例10的主題還可以可選地包括:使得在完成變形的深度圖的計算之前,應用可以利用在變形的深度圖的計算期間生成的像素坐標。
在示例18中,使得示例17的應用可以利用所生成的像素坐標可以可選地包括:當在變形的深度圖的計算期間已經(jīng)完全處理了原始的深度圖中的行max{rmax(i’,j’)|1≤i’≤w’}時,使得可以利用變形的深度圖的行j’,其中rmax是原始的深度圖的有界區(qū)域中的最高行,其中有界區(qū)域包含影響變形的深度圖中的像素(i’,j’)的最終值的像素,創(chuàng)建具有對于原始的深度圖的每個行的條目的查詢表,其中該表中的每個條目標識變形的深度圖的行,在完成對應于條目的原始的深度圖的行的計算時,該行將是準備好的,以及使用該表來查詢變形的深度圖的一個或多個行是否準備好。
示例19是用于圖像處理的計算機程序產(chǎn)品,該計算機程序產(chǎn)品包含至少一個非短暫性的計算機可讀介質(zhì),該計算機可讀介質(zhì)具有存儲在其中的計算機程序邏輯,該計算機程序邏輯包含邏輯以使得處理器讀取來自原始的深度圖的像素坐標;以及邏輯以使得處理器基于原始的深度圖,計算變形的深度圖,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖。
在示例20中,示例19的變形的深度圖的計算可以可選地包括
確定原始的深度圖中的有界區(qū)域,其中該有界區(qū)域含有像素,該像素的坐標影響變形的深度圖中的像素的值。
在示例21中,如果示例19的變形的深度圖的計算導致相同坐標處的多個像素,則該計算可以可選地包含:在多個像素中選擇具有最小深度的像素,以供在變形的深度圖中使用。
在示例22中,示例19的變形的深度圖的計算可以可選地包括:使用丟失值的位置附近的變形的深度圖的鄰居中的像素的深度值,通過內(nèi)插來填充變形的深度圖中的該丟失值。
在示例23中,示例22的內(nèi)插可以可選地包括:向丟失值分配深度值,該深度值是以下中的一個:等于鄰居像素的深度值,以及等于多個各自鄰居像素的深度值的函數(shù)。
在示例24中,示例22的變形的深度圖的計算可以可選地包括:對于原始的深度圖中的像素(i,j),計算和存儲變形的圖像中的位置(a’(i,j),b’(i,j))=(f’u(u’+u’0),f’v(v’+v’0)),其中f’u和f’v是焦距,以及(u’0,v’0)是原始的深度圖中的主點的坐標,(a’(i,j),b’(i,j))對應于變形的深度圖中的點(u’,v’)=(x’/z’,y’/z’);以及如果i>f和j>g,其中f和g是內(nèi)插鄰居的維度,則對于能夠從變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(其中,所有c在0和f之間,以及所有d在0和g之間)的值內(nèi)插的丟失值的變形的深度圖中的每個位置(i’,j’),使用變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(所有c在0和f之間,以及所有d在0和g之間)的深度值來計算內(nèi)插值(xt(i,j),yt(i,j),zt(i,j))。
在示例25中,示例24的內(nèi)插可以可選地包括以下中的一個:
最近鄰居內(nèi)插;雙線性內(nèi)插;雙三次內(nèi)插。
在示例26中,示例19的主題還可以可選地包括邏輯以使得處理器使得在完成變形的深度圖的計算之前,應用可以利用在變形的深度圖的計算期間生成的像素坐標。
在示例27中,使得示例26的應用可以利用所生成的像素坐標可以可選地包括:當在變形的深度圖的計算期間已經(jīng)完全處理了原始的深度圖中的行max{rmax(i’,j’)|1≤i’≤w’}時,使得可以利用變形的深度圖的行j’,其中rmax是原始的深度圖的有界區(qū)域中的最高行,其中有界區(qū)域包含影響變形的深度圖中的像素(i’,j’)的最終值的像素,創(chuàng)建具有對于原始的深度圖的每個行的條目的查詢表,其中該表中的每個條目標識變形的深度圖的行,在完成對應于條目的原始的深度圖的行的計算時,該行將是準備好的,以及使用該表來查詢變形的深度圖的一個或多個行是否準備好。
示例28是用于圖像處理的裝置,該裝置包括:用于讀取來自原始的深度圖的像素坐標的構件;以及用于基于原始的深度圖,計算變形的深度圖的構件,其中在完成讀取來自原始的深度圖的所有像素之前,開始計算變形的深度圖。
在示例29中,示例28的用于計算的變形的深度圖的構件可以可選地包括:用于確定原始的深度圖中的有界區(qū)域的構件,其中該有界區(qū)域含有像素,該像素的坐標影響變形的深度圖中的像素的值。
在示例30中,示例28的主題還可以可選地包括:在多個像素中選擇具有最小深度的像素,以供在變形的深度圖中使用,如果變形的深度圖的計算導致相同坐標處的多個像素,則在多個像素中選擇具有最小深度的像素,以供在變形的深度圖中使用。
在示例31中,示例28的用于計算變形的深度圖的構件可以可選地包括:用于使用丟失值的位置附近的變形的深度圖的鄰居中的像素的深度值,通過內(nèi)插來填充變形的深度圖中的該丟失值的構件。
在示例32中,示例31的內(nèi)插可以可選地包括:向丟失值分配深度值,該深度值是以下中的一個:等于鄰居像素的深度值,以及等于多個各自鄰居像素的深度值的函數(shù)。
在示例33中,示例31的用于計算變形的深度圖的構件還可以可選地包括構件,該構件用于對于原始的深度圖中的像素(i,j),計算和存儲變形的圖像中的位置(a’(i,j),b’(i,j))=(fu(u+u0),f’v(v+v0)),其中fu和fv是焦距,以及(u0,v0)是原始的深度圖中的主點的坐標,(a’(i,j),b’(i,j))對應于變形的深度圖中的點(u’,v’)=(x’/z’,y’/z’);以及包括如下構件:如果i>f和j>g,其中f和g是內(nèi)插鄰居的維度,則對于能夠從變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(其中,所有c在0和f之間,以及所有d在0和g之間)的值內(nèi)插的丟失值的變形的深度圖中的每個位置(i’,j’),使用變形的深度圖中的像素位置(a’(i-c,j-d),b’(i-c,j-d))處(所有c在0和f之間,以及所有d在0和g之間)的深度值來計算內(nèi)插值(xt(i,j),yt(i,j),zt(i,j))。
在示例34中,示例33的內(nèi)插可以可選地包括以下中的一個:
最近鄰居內(nèi)插;雙線性內(nèi)插;雙三次內(nèi)插。
在示例35中,示例28的主題還可以可選地包括用于使得在完成變形的深度圖的計算之前,應用可以利用在變形的深度圖的計算期間生成的像素坐標的構件。
在示例36中,示例28的用于使得應用可以利用所生成的像素坐標的構件可以可選地包括:用于當在變形的深度圖的計算期間已經(jīng)完全處理了原始的深度圖中的行max{rmax(i’,j’)|1≤i’≤w’}時,使得可以利用變形的深度圖的行j’的構件,其中rmax是原始的深度圖的有界區(qū)域中的最高行,其中有界區(qū)域包含影響變形的深度圖中的像素(i’,j’)的最終值的像素,用于創(chuàng)建具有對于原始的深度圖的每個行的條目的查詢表的構件,其中該表中的每個條目標識變形的深度圖的行,在完成對應于條目的原始的深度圖的行的計算時,該行將是準備好的,以及用于使用該表來查詢變形的深度圖的一個或多個行是否準備好的構件。
在本文中借助于說明功能、特征和它們的組合的功能構建塊來公開了方法和系統(tǒng)。出于方便描述的目的,本文中已經(jīng)任意地定義了這些功能構建塊的邊界中的至少一些邊界。只要適當?shù)貓?zhí)行指定的功能和它們的關系,就可以定義可替代的邊界。此外,雖然本文中公開了各種實施例,但是應當理解的是,僅是通過示例而不是限制來呈現(xiàn)各種實施例。對于相關領域的技術人員而言將明顯的是,在不背離本文中公開的方法和系統(tǒng)的精神和范圍的情況下,可以對實施例在形式和細節(jié)上做出各種改變。因此,權利要求書的廣度和范圍不應當由本文中公開的示例性實施例中的任何示例性實施例來限制。