本發(fā)明涉及光學及電子技術領域,尤其涉及一種基于vcsel陣列光源的深度相機。
背景技術:
3d成像特別是應用于消費領域中的3d成像技術將不斷沖擊傳統(tǒng)的2d成像技術,3d成像技術除了擁有對目標物體進行2d成像能力之外還可以獲取目標物體的深度信息,根據(jù)深度信息可以進一步實現(xiàn)3d掃描、場景建模、手勢交互等功能。深度相機特別是結構光深度相機或tof(時間飛行)深度相機是目前普遍被用來3d成像的硬件設備。
深度相機中的核心部件是激光投影模組,按照深度相機種類的不同,激光投影模組的結構與功能也有區(qū)別,比如專利cn201610977172a中所公開的投影模組用于向空間中投射斑點圖案以實現(xiàn)結構光深度測量,這種斑點結構光深度相機也是目前較為成熟且廣泛采用的方案。隨著深度相機應用領域的不斷擴展,光學投影模組將向越來越小的體積以及越來越高的性能上不斷發(fā)展。
vcsel(垂直腔面發(fā)射激光器)陣列光源由于體積小、功率大、光束發(fā)散角小、運行穩(wěn)定等諸多優(yōu)勢將成深度相機激光投影模組的光源的首選。vcsel光源陣列可以在一個極其小的基底上通過布置多個vcsel光源的方式來進行激光投影,比如在2mmx2mm的半導體襯底上布置100甚至更多個vcsel光源。對于結構光深度相機的投影模組特別是基于散斑圖案的投影模組而言,vcsel不僅提供了照明,其排列形式也會直接影響到最終投向目標的結構光散斑圖案,進一步將會影響到深度相機的測量精度與速度。
已有方案中采用較多的是不規(guī)則排列的vcsel陣列光源,其中排列密度也會影響結構光投影的圖案。比如排列稀疏的vcsel陣列光源相對于排列密集的而言,產生的圖案密度也相對較小,得到的深度圖像的精度也較低;而利用密集結構光圖案獲取的深度圖像的精度相對比較高,盡管如此,在利用結構光三角法對密集結構光圖案進行深度計算時,所需要的計算時間也較長,這樣也就降低了深度圖像輸出的幀率??傮w來說,目前的方案中,深度圖像的精度與幀率是一個矛盾體,難以同時獲取高精度以及高幀率的深度圖像。
技術實現(xiàn)要素:
本發(fā)明為了解決現(xiàn)有技術中難以同時獲取高精度以及高幀率的深度圖像的問題,提供一種基于vcsel陣列光源的深度相機。
為了解決上述問題,本發(fā)明采用的技術方案如下所述:
本發(fā)明提供一種基于vcsel陣列光源的深度相機,包括:結構光投影模組,包括vcsel陣列光源,用于向空間中發(fā)射結構光圖案;所述結構光圖案包括稀疏結構光圖案、密集結構光圖案中的一種或組合;采集模組,用于采集由目標反射的所述結構光圖案;處理器,用于根據(jù)所述結構光圖案計算深度圖像。
在一些實施方案中,所述處理器利用包含稀疏結構光圖案的所述結構光圖案以第一窗口進行匹配計算,得到粗略偏離值和/或粗略深度圖像;再利用包含密集結構光圖案的所述結構光圖案以第二窗口進行匹配計算,得到精細偏離值和/或精細深度圖像。
在一些實施方案中,所述結構光圖案包括由稀疏結構光圖案與密集結構光圖案組成的混合結構光圖案。所述處理器為利用所述混合結構光圖案并以第一窗口進行匹配計算,得到粗略偏離值和/或粗略深度圖像;所述處理器再利用所述混合結構光圖案并以第二窗口進行匹配計算,得到精細偏離值和/或精細深度圖像。
在一些實施方案中,所述結構光圖案包括稀疏結構光圖案和密集結構光圖案。所述處理器根據(jù)所述稀疏結構光圖案并以第一窗口進行匹配計算,得到粗略偏離值和/或粗略深度圖像;所述處理器再利用所述密集結構光圖案并以第二窗口進行匹配計算,得到精細偏離值和/或精細深度圖像。
在一些實施方案中,所述結構光圖案包括稀疏結構光圖案和由稀疏結構光圖案與密集結構光圖案組成的混合結構光圖案。所述處理器利用所述稀疏結構光圖案并以第一窗口進行匹配計算,得到粗略偏離值和/或粗略深度圖像;所述處理器再利用所述混合結構光圖案,并以第二窗口進行匹配計算,得到精細偏離值和/或精細深度圖像。
在一些實施方案中,所述結構光圖案包括由稀疏結構光圖案與密集結構光圖案組成的混合結構光圖案和密集結構光圖案。所述處理器利用所述混合結構光圖案,并以第一窗口進行匹配計算,得到粗略偏離值和/或粗略深度圖像;所述處理器再利用所述密集結構光圖案組成的混合結構光圖案,并以第二窗口進行匹配計算,得到精細偏離值和/或精細深度圖像。
在一些實施方案中,所述稀疏結構光圖案中圖案單元的亮度大于所述密集結構光圖案中圖案單元的亮度。
在一些實施方案中,所述第一窗口大于第二窗口。在一些實施方案中,所述精細偏離值以及精細深度圖像是以第二窗口結合所述粗略偏離值或粗略深度圖像進行匹配計算得到的。
本發(fā)明的有益效果為:本發(fā)明提供一種基于vcsel陣列光源的深度相機,可以通過vcsel陣列光源向空間中發(fā)出包括稀疏結構光圖案、密集結構光圖案中的一種或組合的結構光圖案,通過采集所訴結構光圖案并對其進行匹配計算,可以獲得高精度以及高幀率的深度圖像,從而使深度相機有更廣泛的應用。
附圖說明
圖1是本發(fā)明實施例的結構光深度相機系統(tǒng)的側視圖。
圖2是本發(fā)明實施例的結構光投影模組的側視圖。
圖3是本發(fā)明實施例的結構光投影裝置的示意圖。
圖4是本發(fā)明實施例的稀疏結構光圖案的示意圖。
圖5是本發(fā)明實施例的密集結構光圖案的示意圖。
圖6是本發(fā)明實施例的組合結構光圖案的示意圖。
圖7是本發(fā)明實施例的一種結構光投影模組與采集模組的控制時序圖。
圖8是本發(fā)明實施例的又一種結構光投影模組與采集模組的控制時序圖
圖9是本發(fā)明實施例的一種深度圖像獲取步驟。
圖10是本發(fā)明實施例的再一種構光投影模組與采集模組的控制時序圖。
圖11是本發(fā)明實施例的又一種深度圖像獲取步驟。
圖12是本發(fā)明實施例的第四種結構光投影模組與采集模組的控制時序圖。
圖13是本發(fā)明實施例的再一種深度圖像獲取步驟。
圖14是本發(fā)明實施例的第五種結構光投影模組與采集模組的控制時序圖。
圖15是本發(fā)明實施例的第四種深度圖像獲取步驟。
圖16是本發(fā)明實施例的結構第六種光投影模組與采集模組的控制時序圖。
其中,101-深度相機、102-處理器、103-電路板、104-結構光投影模組、105-采集模組、106-接口、107-rgb相機、108-進光/出光窗口、201-襯底、202-光源、203-透鏡單元、204-斑點圖案生成器、301-vcsel陣列光源、302-子陣列、303-又一子陣列、304-衍射光學元件、305-衍射光學元件單元、306-又一衍射光學元件單元、307-投影區(qū)域、308-散斑圖案、309-又一散斑圖案、401-較大的窗口、501-較小的窗口、601-混合散斑圖案。
具體實施方式
下面結合附圖通過具體實施例對本發(fā)明進行詳細的介紹,以使更好的理解本發(fā)明,但下述實施例并不限制本發(fā)明范圍。另外,需要說明的是,下述實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構思,附圖中僅顯示與本發(fā)明中有關的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的形狀、數(shù)量及比例可為一種隨意的改變,且其組件布局形態(tài)也可能更為復雜。
圖1所示的基于結構光的深度相機側面示意圖。深度相機101主要組成部件有結構光投影模組104、采集模組105、電路板103以及處理器102,在一些深度相機中還配備了rgb相機107。結構光投影模組104、采集模組105以及rgb相機107一般被安裝固定支架上并處在同一個深度相機平面上,另外三者一般處于同一條基線上,每個模組或相機都對應一個進光/出光窗口108。一般地,處理器102被安裝在電路板103上,而結構光投影模組104與采集模組105分別通過接口106與主板連接,接口可以為dvp接口、mipi接口等等。電路板103可以為pcb等電路板,也可以是半導體基板。其中,結構光投影模組104用于向目標空間中投射經編碼的結構光圖案,采集模組105采集到該結構光圖像后通過處理器的處理從而得到目標空間的深度圖像。在一個實施例中,結構光圖像為紅外激光散斑圖案,圖案顆粒分布相對均勻但具有很高的局部不相關性,這里的局部不相關性指的是圖案中沿某一個方向維度上(一般指沿著激光投影模組與采集模組連線所在的方向)各個子區(qū)域都具有較高的唯一性。對應的采集模組105為與結構光投影模組104對應的紅外相機。利用處理器獲取深度圖像具體地指接收到由采集模組采集到的散斑圖案后,通過計算散斑圖案與參考散斑圖案之間的偏離值來進一步得到深度圖像。處理器102除了用于深度計算,還用于控制各個部件的運作,比如以特定的頻率同步打開各模組。
圖1所示的深度相機可以為獨立的深度相機裝置,也可以是嵌入式的深度相機。深度相機還包含有輸出接口(圖中未示出),比如usb、mipi等接口,輸出接口與處理器連接,用于將深度圖像輸出到其他的主機設備或同一設備中的其他模塊。
結構光投影模組
圖2是圖1中結構光投影模組104的一種實施例。結構光投影模組104包括襯底201、光源202、透鏡203以及斑點圖案生成器204。襯底201一般為半導體襯底,比如晶圓,在其上布置多個光源202,襯底201與光源202共同構成了激光陣列,例如vcsel陣列芯片。光源202包含多個子光源用于發(fā)射多個子光束,光源可以是可見光、不可見光如紅外、紫外等激光光源,光源的種類可以是邊發(fā)射激光器也可以是垂直腔面激光發(fā)射器(vcsel),為了使得整體的投影裝置體積較小,最優(yōu)的方案是選擇垂直腔面激光發(fā)射器陣列(vcsel陣列)作為光源。另外,同一個襯底上也可布置不同種類的vcsel陣列光源,比如vcsel陣列光源的形狀、大小、亮度均可以有差別。圖中為了方便示意,僅在一維上列出3個子光源,事實上vcsel陣列光源是以固定二維圖案排列的二維光源。vcsel陣列芯片可以是裸片也可以經過封裝后的芯片,兩者的區(qū)別在于,裸片擁有更小的體積和厚度,而封裝芯片則具有更好的穩(wěn)定性以及更方便的連接。
為了使得結構光投影裝置104發(fā)射出的圖案具有均勻、不相關等特性,要求vcsel陣列芯片的排列圖案為不規(guī)則圖案,即光源并非以規(guī)則陣列排列,而是以一定的不規(guī)則圖案排列。在一種實施例中,vcsel陣列芯片整體大小僅在毫米量級,比如2mmx2mm大小,上面排列了幾十個甚至上百個光源,各個光源之間的距離處于微米量級,比如30μm。
透鏡單元203用于接收由vcsel陣列光源202發(fā)射的光束,并對光束進行匯聚,在一種實施例中,將發(fā)散的vcsel陣列光源的光束準直成平行光束,以確保發(fā)射出的斑點能量更加集中。除了用單個透鏡之外,在另外一個實施例中也可以采用微透鏡陣列(mla),微透鏡陣列中每一個微透鏡單元與每個光源202對應,也可以一個微透鏡單元與多個光源202對應;在另一實施例中也可以采用透鏡組來實現(xiàn)光束匯聚。
斑點圖案生成器204用于接收透鏡光束并向外發(fā)射能形成斑點圖案的光束,在一種實施例中,斑點圖案生成器204是衍射光學元件(doe),doe起到分束的作用,比如當光源202數(shù)量為100時,即經由透鏡傳輸?shù)絛oe上的光束為100,doe可以將透鏡光束以某一數(shù)量(比如200)的倍率進行擴束,最終向空間中發(fā)射20000個光束,理想情況下將會看到有20000個斑點(在一些情況下會有一些斑點重疊的情形,導致斑點數(shù)量減少)。除了doe之外,也可以采用其他任何可以形成斑點的光學元件,比如mla、光柵或者多種光學元件的組合。
透鏡單元203與斑點圖案生成器204在一些實施例中可以被制作在同一個光學元件上,以達到縮小體積的效果。
圖3是根據(jù)本發(fā)明又一實施例的結構光投影模組104的示意圖。與圖2相比,圖3將更加直觀地說明本發(fā)明的原理。結構光投影模組104由vcsel陣列光源301及衍射光學元件304組成,一般地,還包括有透鏡,為了清晰起見,在圖中未示出透鏡,透鏡可以像圖2所示的被放置在光源301與衍射光學元件304之間,用于準直光源光束;另外,透鏡也可以被放置在外側,即位于衍射光學元件304背向光源301的一側,此時透鏡起到投射作用,即將doe304光束投射到目標空間中。
在本實施例中,vcsel陣列光源301是通過將多個vcsel光源以不規(guī)則圖案排列在半導體襯底上形成的。另外,vcsel陣列光源301被分成子陣列302、又一子陣列303,子陣列之間在空間中被分隔開,比如圖中兩個子陣列被左右分開,在圖中中間部位示出了分隔線,該分隔線僅僅為了示意作用,不一定存在于vcsel陣列光源中。在其他實施例中,也可以擁有超過2個數(shù)量的子陣列。又一子陣列303相對于子陣列302而言擁有數(shù)量更多、更加密集的vcsel光源,另外,不同的子陣列也可以在波長、光源形狀、發(fā)光功率等方面有所差異。
衍射光學元件304也由子單元305、又一子單元306組成,并且各個子單元與子陣列一一對應,在本實施例中子單元305、又一子單元306分別與子陣列302及又一子陣列303對應,子單元分別將對應的子陣列發(fā)射的光束以一定的倍數(shù)復制(分束)后向空間區(qū)域投射。這里所說的一一對應指的是子單元與相應的子陣列所發(fā)射的光束之間的對應,即子單元305僅對子陣列302所發(fā)射出的光束進行分束,而子單元306僅對子陣列303所發(fā)射的光束進行分束。在圖3中,與光源301類似,子單元305與又一子單元306在物理上以左右形式分開,以便于接收子陣列302與又一子陣列303的光束。盡管如此,并不排除衍射光學元件304可以有其他形式的物理或非物理形式的排列方式。
在本實施例的變通實施例中,vcsel陣列光源可以有多種不規(guī)則圖案排布組合而成,每種圖案排布之間有分隔;衍射光學元件的子單元與每種光源排布一一對應。結構光投影模組104的投影區(qū)域307內被散斑圖案308及又一散斑圖案309覆蓋,換句話說,子單元305與又一子單元306擁有近乎相同的投影視場可以使得所投射出的散斑圖案在投影區(qū)域307上重疊。其中,散斑圖案308、又一散斑圖案309分別是子陣列302與又一子陣列303經由子單元305與又一子單元306所形成的。在一個實施例中,子陣列302是由50個vcsel光源不規(guī)則排列而成,對應的衍射光學元件子單元305的復制倍數(shù)為100倍,這樣由50個vcsel光源組成的不規(guī)則排列圖案被復制成100個相同的不規(guī)則排列圖案,該100個不規(guī)則排列圖案根據(jù)衍射光學元件304的性能可以鄰近或重疊分布以形成散斑圖案308,原則上散斑圖案308中將含有5000個散斑顆粒,但不排除當不規(guī)則排列圖案進行重疊分布時少數(shù)顆粒會重合導致總數(shù)會有少許減少。同樣地,又一子陣列303是由200個vcsel光源不規(guī)則排列而成,對應衍射光學元件的子單元306的復制倍數(shù)為200倍,所形成的又一散斑圖案309中將含有40000個散斑顆粒,同樣不排除當不規(guī)則排列圖案進行重疊分布時少數(shù)顆粒會重合導致總數(shù)會有少許減少。
若vcsel光源的功率相同,衍射光學元件304復制的倍數(shù)越小,所形成的散斑圖案亮度將會越高,圖3所示的實施例中衍射光學元件子單元305的復制倍數(shù)小于又一子單元306的復制倍數(shù),因此散斑圖案308將會擁有比又一散斑圖案309強的亮度,在圖3中用較大的圓形區(qū)域來表示高亮度。一種優(yōu)選的實施例中,vcsel光源中光源數(shù)量少的子陣列對應的doe子單元的復制倍數(shù)也較少,這樣可以使得散斑圖案308密度小、亮度大,而vcsel光源中光源數(shù)量多的子陣列形成的散斑圖案309的密度高、亮度小,這樣處理的原因在于當密度過高時,若亮度過大將會影響散斑圖案的對比度,從而影響深度計算精度。進一步的原因是可以通過多重窗口的匹配計算以提高深度計算精度,這將在下文中予以描述。在其他實施例中,對于數(shù)量多的vcsel光源,對應的doe子單元的復制倍數(shù)小時也可以產生密度小、亮度大的散斑圖案。
在一種實施例中,子陣列302中各vcsel光源的發(fā)光功率大于又一子陣列303中各vcsel光源的功率,由此也可以獲取高亮度散斑圖案308與低亮度散斑圖案309。
vcsel光源子陣列302、又一子陣列303可以單獨或同步控制,當子陣列302獨立打開時,投影區(qū)域307中的散斑圖案如圖4所示;當又一子陣列303獨立打開時,投影區(qū)域307中的散斑圖案如圖5所示;當子陣列302與303同步打開時可以得到如圖6所示的混合散斑圖案601。
根據(jù)以上說明,圖3所述的實施例的結構光投影模組104,至少可以以三種模式進行工作,即分別獨立以及同時打開兩個光源子陣列,可以形成高亮度但密度低、低亮度但密度高、以及混合的散斑圖案。這三種模式可以分別適用于不同的應用中,比如對于圖5所示的散斑圖案或者圖6所示混合散斑圖案,由于其密度大,在進行深度計算時,可以選擇較小的窗口501進行匹配計算,從而獲取高精度以及高分辨率的深度圖像,但這種深度計算方式的缺點在于,在進行匹配計算時,每個像素都要經過多次迭代以尋找最佳匹配,一般地,窗口越小迭代的次數(shù)也越多,因此難以實現(xiàn)高幀率的深度圖像輸出;而對于圖4所示的散斑圖案而言,由于顆粒稀疏,需要選擇足夠大的窗口401才能保證窗口內的散斑子圖案具備不相關性,此時進行的匹配計算往往更加簡單和快速,所得到的深度圖像的精度較低,有時分辨率也會下降。
深度圖像計算
利用上述結構光投影模組104的多種模式,結合采集模組105,可以實現(xiàn)高精度的深度測量。以下將結合圖7~圖15進行詳細說明。
圖7所示的根據(jù)本發(fā)明一個實施例的一種結構光投影模組104與采集模組105的控制時序圖。圖中橫坐標代表時間t,k表示采集模組的采集幀率,該幀率也可以是深度相機的深度圖像輸出幀率,每一幀所需要的時間為1/k。比如k=30fps,那么每一幀的周期為1/30s??v坐標中cexpo表示采集模組的曝光時間,vcsel1、vcsel2分別代表結構光投影模組104中的vcsel光源子陣列302、又一子陣列303,各自對應的線條表示各自隨時間的控制時序圖,高位表示相機曝光以及vcsel光源打開、低位則表示關閉。
根據(jù)圖7所示的時序圖,采集模組105在每幀的周期內都會曝光從而采集一幅圖像,一般地曝光的時間要小于幀周期,這是由于在每幀的周期內除了要進行曝光外,還需要進行信號的傳輸,圖中示意性將曝光時間設在每一幀周期的中間,曝光時間也可以設在其他位置。
根據(jù)圖7所示的時序圖,子陣列302與又一子陣列303在每個幀周期內都同步被打開(圖中僅示意性地畫出6個幀周期),因此采集模組105每一幀都將采集如圖6所示的混合散斑圖案。事實上當目標空間中存在物體時,混合散斑圖案將因為物體的存在被調制(或者說產生變形),采集到的將是變形的混合散斑圖案。
在圖7所示的時序圖中,子陣列302與又一子陣列303屬于持續(xù)發(fā)光,然而實際上僅需要在采集模組105的曝光時間內打開即可,由此便有另一種控制情形,即脈沖發(fā)光。如圖8所示,本發(fā)明實施例的又一種結構光投影模組與采集模組的控制時序圖。在每個幀周期內,子陣列302與303同步發(fā)出與曝光時間一致的脈沖,兩個子陣列脈沖的時長應不低于曝光時間,不同的子陣列脈沖時長可以相同也可以不同。在圖8所示的脈沖同步發(fā)光情形下,采集模組105每一幀采集到的也是如圖6所示的混合散斑圖案。
脈沖發(fā)光與持續(xù)發(fā)光相比有明顯的優(yōu)勢,一方面在光源功率相同的情況下,脈沖發(fā)光的功耗更低;若在相同功耗的情形下,脈沖發(fā)光可以有更大的功率以使得照明的距離更長,有利于提高測量精度及距離。在后面實施例中,將都以脈沖發(fā)光為例進行說明,可以理解的是,每一種情形同樣適用于持續(xù)發(fā)光情形。
圖9所示的是本發(fā)明的實施例的一種深度圖像獲取步驟,是在圖8所示的情形下深度圖像的獲取步驟??梢岳斫獾氖牵恳徊襟E都是由深度相機中處理器102發(fā)出相應的控制信號或直接由處理器接收保存在存儲器中的程序來執(zhí)行的,在以下的闡述中將省略處理器的相關說明。
步驟901中同步打開vcsel陣列光源中的稀疏及密集子陣列302與303,此時結構光投影模組104向投影區(qū)域307中投射散斑圖案308與又一散斑圖案309。這里所說的同步指在采集模組105每一幀的曝光時間內子陣列302與303均被打開??梢岳斫獾氖?,打開方式可以是脈沖發(fā)光也可以持續(xù)發(fā)光。
步驟902中混合散斑圖案被采集模組105采集,一般地,采集到的圖像是被目標中物體調制過的變形的混合散斑圖像。
步驟903中根據(jù)采集到的混合散斑圖像,并利用圖6中的大窗口401(mxm像素)進行匹配計算,這里所說的匹配計算指的是將混合散斑圖案與混合參考散斑圖案進行匹配計算,以獲取每個像素或部分像素的粗略偏離值。
步驟904中根據(jù)采集到的混合散斑圖像,進一步利用圖6中的小窗口501(nxn像素)并直接將粗略偏離值作為匹配計算的搜索初始值,以獲取每個像素或部分像素的精細偏離值,最后根據(jù)精細偏離值結合三角法計算出高精度的深度值。部分或所有像素的深度值即構成了深度圖像,在后文中為方便起見將用深度圖像來進行說明。
在以上的步驟中,步驟903的匹配速度較快,得到的偏離值不精確,其次再由步驟904中進行進一步的匹配計算獲取高精度的偏離值,從而得到高精度的深度圖像。這一方法相對于直接利用小窗口進行計算不僅可以加快計算速度,計算精度將得到更大的保證,這是一方面由于散斑圖案308保證了大窗口的高度不相關性,從而使得匹配計算快速且準確。進一步的小窗口匹配計算時直接基于上一步中得到的粗略偏離值作為初始值,此時的匹配計算會得到快速收斂,從而實現(xiàn)高精度計算。
另一方面,若直接對于亮度均勻的密集散斑圖案,如又一散斑圖案309,同樣利用先大窗口再小窗口的深度計算方案則難以實現(xiàn)。主要原因在于,當圖案中散斑顆粒較為密集時,大窗口的不相關性會降低,從而導致在利用大窗口匹配計算時難以達到高效,容易出現(xiàn)誤匹配的問題。而利用混合散斑圖案則可以實現(xiàn)高效且高精度測量,這是由于圖6中的大窗口401內的高亮度散斑顆粒保證了大窗口的高度不相關性。
另外,為了進一步降低結構光投影模組105的功耗,本發(fā)明提供了又一種控制時序圖,將子陣列302、303以一定的頻率間隔開關。如圖10所示,是本發(fā)明實施例的再一種結構光投影模組與采集模組的控制時序圖。在采集模組105的第一個幀周期內,子陣列302在曝光時間內發(fā)出脈沖(也可以在周期內持續(xù)發(fā)光),因此這一幀采集到的將是如圖4所示的稀疏結構光圖案308;在下一幀周期內,又一子陣列303在曝光時間內發(fā)出脈沖,這時采集到的是如圖5所示的密集結構光圖案309。
在圖10所示的控制時序下,深度相機獲取深度圖像的步驟如圖11所示,圖11是本發(fā)明實施例的又一種深度圖像獲取步驟。步驟中實際上還涉及到對光源子陣列的控制開關,但這在控制時序圖已經明確示意出,因此這里為清晰起見予以省略。
如圖11所示,步驟1101中是在子陣列302單獨發(fā)光下,利用采集模組105采集一幀被目標物體調制過的變形的稀疏結構光圖案308。
步驟1102中根據(jù)稀疏結構光圖案308以及參考稀疏散斑圖像進行匹配計算,選取子窗口mxm進行匹配搜索,可以得到粗略的像素偏離值,進一步地也可以根據(jù)三角法計算出粗略深度圖像(三角法計算原理為已有技術,在此不進行詳細介紹)。這一步驟中由于是稀疏散斑圖案,窗口內的散斑顆粒形狀較少,因此匹配計算的精度也較低,但這一步驟擁有非常高的計算速度。
步驟1103中,在子陣列303單獨發(fā)光下,利用采集模組105采集一幀被目標物體調制過的變形的密集結構光圖案309。
步驟1104中根據(jù)密集結構光圖案309以及參考密集結構光圖案進行匹配計算,選取子窗口nxn進行匹配搜索,并直接將步驟1102中得到的粗略偏離值作為匹配計算的搜索初始值,以獲取每個像素或部分像素的的精細偏離值,最后根據(jù)精細偏離值結合三角法計算出高精度的精細深度值。
根據(jù)圖11所示的實施例中,在步驟1102中獲取的是粗略深度圖像,在步驟1104中獲取的是精細深度圖像,與圖9所示的實施例相比,在采集模組幀率相同的前提下,精細深度圖像的幀率下降了一倍。
圖12是本發(fā)明實施例的第四種結構光投影模組與采集模組的控制時序圖。與圖10相比,稀疏子陣列302在采集模組的每個幀周期內都脈沖發(fā)光(持續(xù)發(fā)光),而密集子陣列303則是間隔一個幀周期脈沖發(fā)光(持續(xù)發(fā)光)。由此在第一幀周期內,采集模組105采集到的將是稀疏結構光圖案308,在下一幀周期內,采集模組106采集到的將是稀疏結構光圖案308與密集結構光圖案309組成的混合結構光圖案。
在圖12所示的控制時序下,深度相機獲取深度圖像的步驟如圖13所示,圖13是本發(fā)明的實施例的再一種深度圖像獲取步驟。
步驟1301中是在子陣列302單獨發(fā)光下,利用采集模組105采集一幀被目標物體調制過的變形的稀疏結構光圖案308。
步驟1302中根據(jù)稀疏結構光圖案308以及參考稀疏散斑圖像進行匹配計算,選取子窗口mxm進行匹配搜索,可以得到粗略的像素偏離值,進一步地也可以根據(jù)三角法計算出粗略深度圖像。
步驟1303中,在子陣列302與又一子陣列303同步發(fā)光下,利用采集模組105采集一幀被目標物體調制過的變形的混合結構光圖案。
步驟1304中根據(jù)混合結構光圖案以及參考混合結構光圖案進行匹配計算,選取子窗口nxn進行匹配搜索,并直接將步驟1302中得到的粗略偏離值作為匹配計算的搜索初始值,以獲取每個像素或部分像素的的精細偏離值,最后根據(jù)精細偏離值結合三角法計算出高精度的精細深度值。
圖14是本發(fā)明實施例的第五種結構光投影模組與采集模組的控制時序圖。密集子陣列303在采集模組的每個幀周期內都脈沖發(fā)光(持續(xù)發(fā)光),而稀疏子陣列302則是間隔一個幀周期脈沖發(fā)光(持續(xù)發(fā)光)。由此在第一幀周期內,采集模組105采集到的將是混合結構光圖案,在下一幀周期內,采集模組106采集到的將是密集結構光圖案309。
在圖14所示的控制時序下,深度相機獲取深度圖像的步驟如圖15所示,圖15是本發(fā)明實施例的第四種深度圖像獲取步驟。
步驟1501中是在子陣列302與303同步發(fā)光下,利用采集模組105采集一幀被目標物體調制過的變形的混合結構光圖案。
步驟1502中根據(jù)混合結構光圖案以及參考混合結構光圖案進行匹配計算,選取子窗口mxm進行匹配搜索,可以得到粗略的像素偏離值,進一步地也可以根據(jù)三角法計算出粗略深度圖像。
步驟1503中,在子陣列303單獨發(fā)光下,利用采集模組105采集一幀被目標物體調制過的變形的密集結構光圖案309。
步驟1504中根據(jù)密集結構光圖案以及參考密集結構光圖案進行匹配計算,選取子窗口nxn進行匹配搜索,并直接將步驟1502中得到的粗略偏離值作為匹配計算的搜索初始值,以獲取每個像素或部分像素的的精細偏離值,最后根據(jù)精細偏離值結合三角法計算出高精度的精細深度值。
圖10~圖15所示的實施例中,相鄰兩幀分別用于計算粗略偏離值以及精細偏離值,不斷循環(huán),計算粗略偏離值與精細偏離值的幀數(shù)比為1:1。事實上,若采集幀率足夠高時,可以提高精細偏離值的幀數(shù),比如先采集一幀用于計算粗略偏離值,在接下來的2幀甚至更多幀中采集到的結構光圖案,在進行匹配計算時均用該粗略偏離值做為搜索初始值。圖16是本發(fā)明實施例的第六種結構光投影模組與采集模組的控制時序圖,與圖10所示的實施例相比,粗略偏離值與精細偏離值的幀數(shù)比為1:2。
以上各實施例各有優(yōu)點,適用于多種應用。比如要獲取高精度、高幀率的深度圖像,適用采用圖8及圖9所示的實施例。而當對幀率要求不高,但想達到低功耗就可以采取圖10~圖15所示的實施例,其中當稀疏與密集子陣列的亮度相差過大,在利用混合結構光圖案進行匹配計算時,圖案中的密集部分信息被稀疏部分亮度所覆蓋,則適宜采用圖10與圖11所示的實施例,而當相差不大時,采用圖12~圖15所示的實施例均可。事實上,可以根據(jù)不同的應用對各個實施例可以進行評估,以找到最適宜的方案。
這里需要注意的是,在圖7~圖15所述的實施例中,為了提高粗略偏離值獲取的速度,可以通過降低分辨率來實現(xiàn),即在計算粗略偏離值/深度圖像時適當?shù)亟档头直媛?。另外,在計算粗略偏離值時由于窗口選取較大,區(qū)域307邊緣位置處無法計算得到偏離值。因此,后續(xù)在計算精細偏離值過程中利用粗略偏離值時,當某些像素上沒有值時,可以通過插值方式獲取,插值方式有多種,比如中值、均值、樣條插值等等。
上面說明中所述的參考結構光圖案是在指定距離上放置一個平板,并將深度相機中結構光投影模組104投影出結構光圖案,用采集模組105采集到的結構光圖案即為參考結構光圖案。文中提到的參考稀疏結構光圖案、參考密集結構光圖案以及參考混合結構光圖案均是通過此方法獲取的,即是在結構光投影模組104投射稀疏結構光圖案、密集結構光圖案以及混合結構光圖案下利用采集模組105分別獲取的。這些參考結構光圖案一般被保存在深度相機的存儲器內,在計算時被處理器調用。
以上實施例中,均是以vcsel陣列光源中含有兩個子陣列為例進行說明,在其他實施例中子陣列數(shù)量也可以為3個或3個以上,此時相應的doe子單元也可以有多個,結構光投影模組的工作模式的種類會更多,但均可以通過2個子陣列的形式延伸而成,因此都被包含在本發(fā)明的范圍內。
以上內容是結合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術領域的技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干等同替代或明顯變型,而且性能或用途相同,都應當視為屬于本發(fā)明的保護范圍。