本發(fā)明涉及計算機(jī)和微電子領(lǐng)域,具體涉及一種多模式深度計算處理器以及一種3d圖像設(shè)備。
背景技術(shù):
深度相機(jī)用來獲取物體的三維深度信息,利用深度信息則可以進(jìn)行三維建模、識別、人機(jī)交互等應(yīng)用,進(jìn)一步被用來進(jìn)行3d打印、人臉識別支付、slam(simultaneouslocalizationandmapping即時定位與地圖構(gòu)建)、體感操控等。在已有的深度相機(jī)方案中,結(jié)構(gòu)光深度相機(jī)被普通采用,該方案的原理是:通過向目標(biāo)物體投射一定模式的結(jié)構(gòu)光,利用專用的深度計算芯片對采集到的結(jié)構(gòu)光圖案進(jìn)行分析得到目標(biāo)物體的深度信息,此處專用的深度計算芯片被設(shè)置成完成單一的深度數(shù)據(jù)計算及處理功能,具有高集成、低功耗等特點,從而使得深度相機(jī)可以實時地獲取高分辨率的目標(biāo)深度圖。
隨著深度相機(jī)的廣泛應(yīng)用,深度相機(jī)從單一的獨立設(shè)備逐漸向嵌入式設(shè)備轉(zhuǎn)變,例如將深度相機(jī)集成到電腦、平板、手機(jī)、機(jī)器人、無人機(jī)等主體設(shè)備中使得這些主體設(shè)備具有3d視覺,極大的拓展了主體設(shè)備的功能應(yīng)用。另外,深度相機(jī)的應(yīng)用場景也越來越廣泛,在室內(nèi)應(yīng)用方面比如基于深度相機(jī)的客廳娛樂以及具有3d視覺的服務(wù)機(jī)器人等,在室外應(yīng)用方面有無人機(jī)、手機(jī)等。
不同的主體設(shè)備以及應(yīng)用場景中,對深度相機(jī)的性能要求也不同,往往需要根據(jù)具體應(yīng)用進(jìn)行專門定制,深度相機(jī)中的投影儀和圖像采集單元的定制一般是比較容易實現(xiàn)且成本較低的,而深度計算處理芯片的定制則需要消耗極大的時間及資源成本?,F(xiàn)有技術(shù)中的深度計算處理芯片僅能適應(yīng)較少的主體設(shè)備,且只能執(zhí)行較少的功能,難以滿足多種應(yīng)用的需求。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提出一種可以適應(yīng)多種主體設(shè)備、具有多種工作模式、可實現(xiàn)多種功能的多模式深度計算處理器,以解決現(xiàn)有的深度計算處理芯片所存在的功能單一、適用范圍窄以及需要根據(jù)具體應(yīng)用進(jìn)行專門定制的技術(shù)問題。
本發(fā)明為解決上述技術(shù)問題所提供的技術(shù)方案如下:
一種多模式深度計算處理器,通過輸入端口接收彩色圖像數(shù)據(jù),對所述彩色圖像數(shù)據(jù)進(jìn)行第一計算處理后得到彩色圖像,并將所述彩色圖像經(jīng)由輸出端口輸出至主機(jī)設(shè)備,使得所述深度計算處理器工作于彩色圖像處理模式;通過輸入端口接收不可見光圖像數(shù)據(jù),對所述不可見光圖像數(shù)據(jù)進(jìn)行第二計算處理后得到不可見光圖像,并將所述不可見光圖像經(jīng)由輸出端口輸出至主機(jī)設(shè)備,使得所述深度計算處理器工作于不可見光圖像處理模式;通過輸入端口接收結(jié)構(gòu)光圖像,對所述結(jié)構(gòu)光圖像進(jìn)行深度計算處理后得到深度圖,并將所述深度圖經(jīng)由輸出端口輸出至主機(jī)設(shè)備,使得所述深度計算處理器工作于深度處理模式。
本發(fā)明提供的上述多模式深度計算處理器,通過輸入端口接收不同的圖像數(shù)據(jù)類型,并配置有多種工作模式對不同類型的數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)處理,多種模式可以并行執(zhí)行于深度計算處理器,也可單獨工作于某種工作模式,從而可以實現(xiàn)多種功能,適配不同的主體設(shè)備。
可見,本發(fā)明的多模式深度計算處理器可適應(yīng)多種主體設(shè)備,與內(nèi)置多個單一功能的處理器相比,可使主體設(shè)備的整體體積以及功耗得以降低。
本發(fā)明另還提供了一種3d圖像設(shè)備,包括前述的多模式深度計算處理器;投影儀,連接于所述深度計算處理器,并在所述深度計算處理器的控制下產(chǎn)生結(jié)構(gòu)光圖案以投射于目標(biāo)物體;第一圖像采集單元,連接于所述深度計算處理器,用于采集目標(biāo)物體的結(jié)構(gòu)光圖像并輸出至所述深度計算處理器,以通過所述深度計算處理器在所述深度處理模式下對結(jié)構(gòu)光圖像進(jìn)行處理生成深度圖。
附圖說明
圖1是本發(fā)明具體實施例提供的帶有深度相機(jī)的移動終端應(yīng)用場景示意圖;
圖2-1是本發(fā)明具體實施例提供的一種深度相機(jī)的結(jié)構(gòu)示意圖;
圖2-2是本發(fā)明具體實施例提供的另一種深度相機(jī)的結(jié)構(gòu)示意圖;
圖3是本發(fā)明具體實施例提供的多模式深度計算處理器的原理框圖;
圖4是本發(fā)明具體實施例提供的多模式深度計算處理器的細(xì)節(jié)架構(gòu)圖。
具體實施方式
下面結(jié)合附圖和具體的實施方式對本發(fā)明作進(jìn)一步說明。
圖1是根據(jù)本發(fā)明實施例的帶有深度相機(jī)的移動終端的應(yīng)用場景示意圖。在圖1中,用戶43手持手機(jī)41,并用手44在對手機(jī)41進(jìn)行操控。這里的手機(jī)41也可以是其他移動終端設(shè)備,比如平板、個人電腦等,更寬泛地可以是擁有獨立計算、顯示等功能的計算設(shè)備。手機(jī)41前置配備有相機(jī)42,這里的相機(jī)42指可以用來獲取目標(biāo)深度信息的深度相機(jī)。
深度相機(jī)42通過向目標(biāo)空間中投射結(jié)構(gòu)光圖案(結(jié)構(gòu)光圖案指的是經(jīng)特殊編碼的固定圖案,一般為不可見光圖案,比如紅外激光圖案、紫外激光圖案等),隨后深度相機(jī)42利用自身的圖像傳感器采集到被目標(biāo)調(diào)制過的結(jié)構(gòu)光圖案后,經(jīng)由內(nèi)部深度計算芯片處理后得到目標(biāo)的深度圖像。深度圖像中各個像素值代表的是目標(biāo)的點相對于圖像傳感器的距離。進(jìn)一步地,根據(jù)圖像傳感器的內(nèi)部參數(shù)以及各個像素的深度信息,可以獲取各個像素在圖像傳感器坐標(biāo)系中的三維坐標(biāo)信息,即目標(biāo)的點云數(shù)據(jù)。根據(jù)點云數(shù)據(jù)可以用于進(jìn)行三維重建、人體識別、骨架提取、姿勢動作識別等基于3d圖像的功能,比如圖1中用戶43利用手44與手機(jī)41進(jìn)行手勢隔空操控。
深度相機(jī)42除可以獲取深度圖像之外,在一實施例中還需要獲取目標(biāo)的rgb圖像,以滿足一些基于rgb圖像的應(yīng)用,比如自拍等。另外,深度相機(jī)42還被配置為提供諸如紅外圖像的不可見光圖像,由于紅外圖像具有對環(huán)境光的抗干擾性,可以讓主體設(shè)備具有非常穩(wěn)健的基于紅外圖像的人臉識別功能。在一些應(yīng)用中,還需要將深度圖像、rgb圖像、紅外圖像進(jìn)行配準(zhǔn),比如利用rgbd圖像可以使得三維模型具有顏色信息,比如利用ird(紅外-深度)圖像實現(xiàn)對人臉二維及三維的特征識別等。
深度相機(jī)本身屬于3d圖像設(shè)備,由于配置了深度相機(jī),移動終端可以基于深度相機(jī)的輸出實現(xiàn)例如上述提到的3d圖像功能,因此總體上看,該移動終端也可視作一3d圖像設(shè)備。
本發(fā)明的具體實施方式中提出了一種3d圖像設(shè)備,包括多模式深度計算處理器(后述簡稱深度計算處理器)、投影儀以及第一圖像采集單元,所述投影儀連接于所述深度計算處理器,并在所述深度計算處理器的控制下產(chǎn)生結(jié)構(gòu)光圖案以投射于目標(biāo)物體;所述第一圖像采集單元連接于所述深度計算處理器,用于采集目標(biāo)物體的結(jié)構(gòu)光圖像并輸出至所述深度計算處理器。如前所述,此處的3d圖像設(shè)備既可以是深度相機(jī),也可以是帶有深度相機(jī)的移動終端,當(dāng)該3d圖像設(shè)備是移動終端時,該3d設(shè)備還包括應(yīng)用處理器。
作為3d圖像設(shè)備的一種具體形式的深度相機(jī)可以被用于如圖1所示的移動終端41中,并且可以有兩種不同的模式,如圖2-1和圖2-1分別示例性地繪示了兩種不同模式的深度相機(jī),但這只是示例性的,并不代表本發(fā)明的深度相機(jī)只有圖中所示的兩種模式。
圖2-1所示的深度相機(jī)20包括深度計算處理器100、第一圖像采集單元21、第二圖像采集單元22、投影儀23、存儲器24以及傳輸接口25,深度計算處理器100連接于第一圖像采集單元21、第二圖像采集單元22、投影儀23和存儲器24。其中,投影儀23用于向目標(biāo)物體投射結(jié)構(gòu)光圖案,其中含有光源230、透鏡以及結(jié)構(gòu)光圖案生成器件231,其中光源230可以為面發(fā)射激光、垂直腔面激光(vcsel)陣列,圖案生成器件231可以為毛玻璃、衍射光學(xué)元件(doe)或兩者組合。
其中,如圖3所示,深度計算處理器100包括至少兩個輸入端口(圖中所示的輸入端口1、2、3等)、輸入開關(guān)器、數(shù)據(jù)處理引擎以及至少一個輸出端口。其中,輸入端口1、2、3等用于接收第一圖像數(shù)據(jù),具體地每個輸入端口接收來自一對應(yīng)的圖像傳感器的第一圖像數(shù)據(jù),例如輸入端口1接收第一圖像采集單元中的圖像傳感器1采集的第一圖像數(shù)據(jù),輸入端口2對應(yīng)地接收第二圖像采集單元中的圖像傳感器2采集的第二圖像數(shù)據(jù)(第一圖像數(shù)據(jù)可以包括多種類型)。其中所述第一圖像數(shù)據(jù)至少包括在結(jié)構(gòu)光投影下采集的結(jié)構(gòu)光圖像。所述輸入開關(guān)器連接于所述輸入端口,用于供來自于所述輸入端口的全部或部分第一圖像數(shù)據(jù)通過,即該輸入開關(guān)器可以允許全部輸入端口的第一圖像數(shù)據(jù)通過,也可以選擇性地只允許其中部分輸入端口的第一圖像數(shù)據(jù)通過。所述數(shù)據(jù)處理引擎,連接于所述輸入開關(guān)器,用于對經(jīng)由所述輸入開關(guān)器輸出的第一圖像數(shù)據(jù)進(jìn)行計算處理以輸出第二圖像數(shù)據(jù),其中第二圖像數(shù)據(jù)至少包括深度圖,所述數(shù)據(jù)處理引擎至少包括深度處理引擎,該深度處理引擎用于對輸入的結(jié)構(gòu)光圖像進(jìn)行深度計算處理,以得到所述深度圖。所述深度處理引擎被配置為用于執(zhí)行一計算機(jī)程序以實現(xiàn)對結(jié)構(gòu)光圖像進(jìn)行深度計算處理并生成深度圖的步驟,使得深度計算處理器可工作于深度處理模式。
在一種具體的實施例中,投影儀23向目標(biāo)空間投射一結(jié)構(gòu)光圖案例如散斑顆粒圖案,該散斑顆粒圖案預(yù)先向距深度相機(jī)已知距離的平面上投射,被第一圖像采集單元21采集后作為參考散斑圖像并保存到存儲器24中,這里的存儲器為非易失性存儲器,比如閃存。閃存可以被包含在深度計算處理器100中,也可以作為外圍設(shè)備通過閃存接口與深度計算處理器連接,內(nèi)部保存的參考散斑圖像被讀取后經(jīng)由輸入開關(guān)器進(jìn)入到深度處理引擎或不經(jīng)由輸入開關(guān)器直接進(jìn)入深度處理引擎。當(dāng)目標(biāo)空間中有人體或其他目標(biāo)物體時,所投射的散斑顆粒圖案被人體調(diào)制,調(diào)制后的散斑顆粒圖案被第一圖像采集單元21采集后得到目標(biāo)物體的目標(biāo)散斑圖像(即第一圖像數(shù)據(jù)中的結(jié)構(gòu)光圖像),該目標(biāo)散斑圖像與參考散斑圖像對應(yīng)的各像素之間會存在橫向偏移,深度計算處理器100接收來自第一圖像采集單元21的該目標(biāo)散斑圖像并從存儲器24中提取參考散斑圖像,將這兩幅圖像進(jìn)行偏離量的計算,根據(jù)偏離量可以進(jìn)一步計算出目標(biāo)散斑圖像中各像素對應(yīng)的空間點距離深度相機(jī)的深度值zd,計算公式如下:
其中,b是第一圖像采集單元21與投影儀23之間的距離,z0為參考散斑圖像采集時已知平面距離深度相機(jī)的深度值,f為第一圖像采集單元21中透鏡的焦距。經(jīng)過上述公式計算出目標(biāo)散斑圖像的各像素點的zd后,即可得到對應(yīng)的深度圖,并經(jīng)過深度計算處理器的輸出端口(相當(dāng)于深度相機(jī)20的傳輸接口25)向主體設(shè)備輸出。
一般而言,圖像采集單元包括圖像傳感器、透鏡等元件,圖像傳感器一般有cmos或ccd。例如,第一圖像采集單元21包括圖像傳感器210及透鏡等元件,圖像傳感器210的表面通過設(shè)置與各像素一一對應(yīng)的濾光片以實現(xiàn)對不同波長光線的強(qiáng)度提取,從而使得第一圖像采集單元21可以采集到不同波長的不可見光圖像。其濾光片允許通過的光的波長與光源230的波長一致,比如近紅外光、紫外光等。第二圖像采集單元22可以采用拜爾濾光片來獲取分別三個通道(r,g,b)的光強(qiáng)信息,采集目標(biāo)物體的彩色圖像。
如圖2-1所示,一些實施例中,深度相機(jī)20還包括泛光照明器26例如激光二極管、led等,優(yōu)選地,泛光照明器26的發(fā)光波長與光源230的波長相同。泛光照明器26連接于深度計算處理器100,其開/關(guān)、功率等可以由深度計算處理器100控制??刂品汗庹彰髌?6與圖像傳感器同步,可采集泛光圖像。
一種具體的實施例,深度相機(jī)20中,同步打開投影儀23,通過第一圖像采集單元21和第二圖像采集單元22同步采集到目標(biāo)物體的所述目標(biāo)散斑圖像和彩色圖像,其中目標(biāo)散斑圖像經(jīng)過深度計算處理器100中的深度處理引擎進(jìn)行處理計算后生成深度圖,再通過深度計算處理器100中的圖像配準(zhǔn)引擎將生成的深度圖與彩色圖像進(jìn)行配準(zhǔn),輸出配準(zhǔn)后的混合圖像至主體設(shè)備,使得深度計算處理器可同時工作于深度處理模式、彩色圖像處理模式以及圖像配準(zhǔn)模式。
其中,深度處理引擎對輸入的結(jié)構(gòu)光圖像進(jìn)行深度計算處理以輸出深度圖的具體過程包括但不限于以下三種:①基于一幅參考圖像和單路結(jié)構(gòu)光圖像進(jìn)行深度計算處理,以獲得所述深度圖。②不需要參考圖像,直接獲取兩路結(jié)構(gòu)光圖像進(jìn)行深度計算處理,以輸出所述深度圖。③通過兩個獨立的深度處理子引擎,各自分別基于不同的參考圖像,對所述結(jié)構(gòu)光圖像進(jìn)行深度計算處理,以獲得兩路深度圖;再通過一個深度圖合成處理子引擎,對所述兩路深度圖進(jìn)行合成處理,以生成單路深度圖。
具體而言,深度計算處理一般包括匹配計算——深度計算,即先通過匹配算法計算出一幅圖像中各個像素相對于另一幅圖像中相應(yīng)像素之間的偏離值,其次通過偏離值計算出深度信息。
另外,也可通過深度計算處理器100中的彩色圖像處理引擎對第二圖像采集單元采集到的彩色圖像數(shù)據(jù)進(jìn)行計算處理,輸出彩色圖像(例如rgb圖像或yuv圖像)。彩色圖像處理引擎被配置為用于執(zhí)行一計算機(jī)程序,該計算機(jī)程序用于實現(xiàn)對彩色圖像數(shù)據(jù)處理以生成所述彩色圖像的步驟,使得深度計算處理器可工作于彩色圖像處理模式。此處對彩色圖像數(shù)據(jù)進(jìn)行計算處理的方式有多種,比如,第二圖像采集單元采集到的彩色圖像數(shù)據(jù)只有一路傳輸?shù)讲噬珗D像處理引擎中,彩色圖像處理引擎需要將這一路數(shù)據(jù)進(jìn)行處理,以形成具體格式的三路數(shù)據(jù)構(gòu)成的彩色圖像,例如rgb、yuv格式等。從而,如圖2-1所示的深度相機(jī)20可以通過傳輸接口向外輸出的不只有深度圖,還可輸出配準(zhǔn)后的混合圖像、rgb圖像或yuv圖像。
圖2-2所示的深度相機(jī)30,與圖2-1中的深度相機(jī)20相比,結(jié)構(gòu)的不同之處在于還包含有第三圖像采集單元33,它與第一圖像采集單元21被分設(shè)于投影儀23的兩側(cè),其他方式中也可以位于同一側(cè),當(dāng)這兩個圖像采集單元具有相同的參數(shù)時,可以通過深度相機(jī)30實現(xiàn)主動雙目視覺。舉例來說,通過投影儀23向目標(biāo)空間中投射散斑顆粒圖案,然后通過第一圖像采集單元21及第三圖像采集單元33同步地采集目標(biāo)物體的左右兩幅目標(biāo)散斑圖像,通過計算兩幅目標(biāo)散斑圖像的像素偏離值則進(jìn)一步可以計算出一幅深度圖,這種模式下,則不需要參考散斑圖像,與圖2-1所示的深度相機(jī)20可實現(xiàn)的單目主動視覺相比,所得到的深度圖具有更好的抗環(huán)境光性能,因此深度圖的精度更高。
深度相機(jī)30的另一種實施例中,第一圖像采集單元21和第三圖像采集單元33分別與投影儀23組成單個的結(jié)構(gòu)光圖像獲取裝置,同步地分別采集到目標(biāo)物體的兩幅結(jié)構(gòu)光圖像后,輸入到深度計算處理器100,分別結(jié)合各自的參考散斑圖像,可以輸出對應(yīng)的兩幅深度圖。更進(jìn)一步地,深度計算處理器100還配置有能夠?qū)⑦@兩幅深度圖合并成單幅深度圖的合并處理子引擎,如此合并計算得到的深度圖與深度相機(jī)20實現(xiàn)的單目主動視覺相比,合成的深度圖具有更高的分辨率,同時可以避免深度圖像中的陰影問題。
深度相機(jī)30的又一實施例中,第三圖像采集單元33與投影儀23組成結(jié)構(gòu)光圖像獲取裝置,同時第一圖像采集單元21與泛光照明器26組成泛光圖像獲取裝置以獲取例如紅外泛光圖像,通過深度計算處理器100的控制單元分別對該兩個裝置進(jìn)行控制:控制第一圖像采集單元21與泛光照明器26同步觸發(fā),控制第三圖像采集單元33與投影儀23同步觸發(fā),從而分別采集目標(biāo)物體的紅外泛光圖像與結(jié)構(gòu)光圖像。也可以通過第三圖像采集單元33采集不可見光圖像例如紅外圖像,并輸入至深度計算處理器100,對紅外圖像進(jìn)行去燥、增強(qiáng)等處理后輸出,同時還可將該紅外圖像與深度處理引擎的輸出(即深度圖)進(jìn)行配準(zhǔn)得到混合圖像。深度計算處理器對接收到的不可見光圖像數(shù)據(jù)例如紅外圖像數(shù)據(jù)等進(jìn)行處理(例如圖像去燥、增強(qiáng)等)以輸出不可見光圖像的過程可由一不可見光圖像處理引擎執(zhí)行一計算機(jī)程序來實現(xiàn),該計算機(jī)程序即是用于實現(xiàn)不可見光圖像數(shù)據(jù)處理的步驟。從而使得深度計算處理器可工作于不可見光圖像處理模式;另,還可通過圖像配準(zhǔn)引擎執(zhí)行另一計算機(jī)程序?qū)崿F(xiàn)將不可見光圖像數(shù)據(jù)與深度圖進(jìn)行配準(zhǔn)的步驟,從而使得深度計算處理器可同時工作于圖像配準(zhǔn)模式和深度處理模式。
除圖2-1及圖2-2所示的深度相機(jī)結(jié)構(gòu)之外,根據(jù)不同的需要深度相機(jī)的種類可以有很多種。比如為了實現(xiàn)配置有深度相機(jī)的主體設(shè)備的前、后深度圖像獲取,深度相機(jī)需要分別在主體設(shè)備前、后各配置一個投影儀及圖像采集單元用于獲取結(jié)構(gòu)光圖像,然后再經(jīng)由深度計算處理進(jìn)行計算處理,從而可同步實現(xiàn)主體設(shè)備前置、后置的深度圖獲取,或前、后分別單獨地獲取深度圖。此處深度計算處理器中用于進(jìn)行深度計算處理的深度處理引擎,可以是獨立的兩個,分別用于進(jìn)行前置、后置的深度處理,也可以共用同一個深度處理引擎。
前述以深度相機(jī)20、30等為具體實現(xiàn)形式的3d圖像設(shè)備,在通過深度計算處理器100得到深度圖像、泛光圖像、配準(zhǔn)后的混合圖像以及彩色圖像(例如rgb圖像、yuv圖像等)等多種不同類型的第二圖像數(shù)據(jù)后通過傳輸接口25向外輸出。一種實施方式中,傳輸接口25為串行總線usb接口,深度計算處理器100將多種第二圖像數(shù)據(jù)打包壓縮后以統(tǒng)一的格式經(jīng)usb接口輸出到其他主體設(shè)備,比如電腦、游戲主機(jī)等。另一種實施方式中,傳輸接口25為多個mipi輸出接口,主體設(shè)備中的控制器可以根據(jù)當(dāng)前應(yīng)用需要控制深度相機(jī)中的深度計算處理器100輸出對應(yīng)的第二圖像數(shù)據(jù),并經(jīng)mipi輸出接口輸出到主體設(shè)備中(例如輸出到主體設(shè)備手機(jī)的應(yīng)用處理器,進(jìn)行進(jìn)一步處理,以實現(xiàn)其他更進(jìn)一步的功能)。
作為3d圖像設(shè)備的另一種具體形式是帶有前述深度相機(jī)的移動終端,例如圖1中帶有深度相機(jī)的手機(jī)41。此種具體形式的3d圖像設(shè)備還包括應(yīng)用處理器,該應(yīng)用處理器一般擁有更加強(qiáng)大的計算能力,從深度相機(jī)42(例如圖2-1中的深度相機(jī)20或圖2-2中的深度相機(jī)30)接收到例如深度圖、rgb圖像或ir圖像(紅外光譜圖像)后,按照一定的程序進(jìn)行處理,比如利用深度圖進(jìn)行三維重構(gòu)、人體姿勢和動作識別以及物品識別中的一種或多種,從而使得手機(jī)41可以實現(xiàn)對用戶43的人臉進(jìn)行3d掃描和識別;另外,應(yīng)用處理器可以接收所述深度計算處理器輸出的rgb圖像以及不可見光圖像,用來進(jìn)行生物特征識別,比如虹膜識別、人臉識別、唇語識別等。這里的3d掃描及識別等程序被預(yù)先保存在手機(jī)41內(nèi)部的非易失性存儲器上,比如閃存、只讀存儲器等等。在本例中,深度相機(jī)42與手機(jī)41之間的數(shù)據(jù)傳輸接口可以有多種,優(yōu)選地,采用單個或多個mipi接口獨立、可同步地傳輸深度相機(jī)輸出的圖像、視頻信息。在該例中,深度相機(jī)42是設(shè)置于手機(jī)41上,然而,另一些情況下,深度相機(jī)也可以與主體設(shè)備分離,此時優(yōu)選地,二者之間的數(shù)據(jù)傳輸接口可以采用usb接口,多種圖像視頻信息在深度相機(jī)中被整合、打包以及壓縮后以多路復(fù)用格式由usb接口傳輸?shù)街黧w設(shè)備中。
前述的實施例中所涉及的深度計算處理器,是一種多功能、可適配多種主體設(shè)備的深度計算處理器,其可以是獨立的專用芯片,也可以是作為soc芯片的內(nèi)部ip核,此外利用算法來實現(xiàn)諸如該深度計算處理器的功能的軟件也在本發(fā)明的保護(hù)范圍內(nèi),例如將類似的功能通過其他可編程處理器(如fpga)或者計算機(jī)軟件來實現(xiàn)都應(yīng)落入本發(fā)明的范圍內(nèi)。為了可以將該深度計算處理器用于前面所提到的多種深度相機(jī)中,輸入端口需要被設(shè)置為多個,并同時與所述輸入開關(guān)器相連,輸入開關(guān)器可以根據(jù)不同的深度相機(jī)應(yīng)用場景選擇第一圖像數(shù)據(jù)輸出到數(shù)據(jù)處理引擎中進(jìn)行相應(yīng)的圖像處理。
所述深度計算處理器100還包括連接于所述輸出端口和所述數(shù)據(jù)處理引擎之間的輸出開關(guān)器,用于供全部或部分第二圖像數(shù)據(jù)通過至所述輸出端口。需要說明,輸入開關(guān)器和輸出開關(guān)器要選擇讓哪些圖像數(shù)據(jù)通過,是可以根據(jù)應(yīng)用場景預(yù)先設(shè)定的,也可以由一控制單元進(jìn)行控制和調(diào)整。
下面參考圖3和圖4來對深度計算處理器100進(jìn)行詳細(xì)的說明。
如圖3所示,各輸入端口分別對應(yīng)地連接至一個外圍的圖像傳感器,以分別從各自連接的圖像傳感器接收所述第一圖像數(shù)據(jù)。這些圖像傳感器例如相當(dāng)于前述深度相機(jī)中的圖像采集單元內(nèi)的圖像傳感器。各圖像傳感器所采集的圖像類型可以有所不同,因此各輸入端口的第一圖像數(shù)據(jù)相應(yīng)地也有不同的類型。例如,第一圖像數(shù)據(jù)包括來自圖像傳感器1采集的結(jié)構(gòu)光圖像,還可包括來自圖像傳感器2采集的彩色圖像數(shù)據(jù)、來自圖像傳感器3在紅外泛光燈(也可以是其他不可見光的泛光燈)照明下采集的紅外圖像數(shù)據(jù)(相應(yīng)地也可以是其他不可見光圖像數(shù)據(jù))等。需要說明的是,盡管在這里用了3個圖像傳感器1、2、3來分別接收結(jié)構(gòu)光圖像、彩色圖像數(shù)據(jù)以及紅外圖像數(shù)據(jù),然而利用單圖像傳感器在不同的時刻也可以被用來獲取多種圖像數(shù)據(jù),比如當(dāng)結(jié)構(gòu)光圖像是紅外結(jié)構(gòu)光圖像時,若結(jié)構(gòu)光投影儀投影時,圖像傳感器1采集的是結(jié)構(gòu)光圖像,若是紅外泛光燈進(jìn)行照明時,利用圖像傳感器1可以采集紅外圖像數(shù)據(jù)。對應(yīng)于輸入的多種類型的第一圖像數(shù)據(jù),數(shù)據(jù)處理引擎相應(yīng)地也包括多個具有不同功能的處理引擎,例如還包括不可見光圖像處理引擎、彩色圖像引擎以及圖像配準(zhǔn)引擎中的一種或多種。
其中,所述不可見光圖像處理引擎(圖3中以具體的一種例子——紅外圖像處理引擎示意)用于對第一圖像數(shù)據(jù)中的不可見光圖像數(shù)據(jù)進(jìn)行一第一計算處理以輸出不可見光圖像。例如,不可見光圖像數(shù)據(jù)是紅外圖像數(shù)據(jù),所述第一計算處理例如可以是對輸入的紅外圖像數(shù)據(jù)進(jìn)行去燥、增強(qiáng)等處理。所述彩色圖像處理引擎用于對第一圖像數(shù)據(jù)中的彩色圖像數(shù)據(jù)進(jìn)行一第二計算處理以輸出彩色圖像,例如rgb圖像或yuv圖像等,相應(yīng)地,所述第二計算處理可以被配置為對彩色圖像數(shù)據(jù)進(jìn)行去燥,或者配置成對彩色圖像數(shù)據(jù)經(jīng)插值、擬合等方法分成三個通道,然后將這三個通道的數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的彩色圖像數(shù)據(jù),如rgb或yuv;當(dāng)然,第二計算處理也可以被配置為其它對彩色圖像的處理功能,例如對輸入的彩色圖像進(jìn)行增強(qiáng)等處理。所述圖像配準(zhǔn)引擎用于將所述紅外圖像與所述深度圖進(jìn)行配準(zhǔn),或?qū)⑺霾噬珗D像與所述深度圖進(jìn)行配準(zhǔn)。所述圖像配準(zhǔn)引擎一般并非直接與輸出端口連接,而是與深度處理引擎、不可見光圖像處理引擎以及彩色圖像處理引擎連接,用于接收所述深度圖、不可見光圖像以及彩色圖像,以及將輸入的不可見光圖像與生成的所述深度圖進(jìn)行配準(zhǔn),或?qū)⑤斎氲乃霾噬珗D像與生成的所述深度圖進(jìn)行配準(zhǔn)。
深度計算處理器100中還包含有至少一條總線,負(fù)責(zé)各個部分之間的數(shù)據(jù)傳輸,以及對外圍的圖像傳感器、投影儀、存儲器等設(shè)備的開關(guān)、功率控制。更優(yōu)選的方案中,如圖3所示,深度計算處理器100具有兩條總線:第一總線設(shè)備101和第二總線設(shè)備102;其中,所述第一總線設(shè)備101用于控制與所述深度計算處理器100連接的外圍設(shè)備,并通過一橋103連接至所述第二總線設(shè)備102;所述控制單元連接至所述第二總線設(shè)備102,以對所述輸入開關(guān)器、所述輸出開關(guān)器以及所述外圍設(shè)備的接口等進(jìn)行管理。如圖4所示,在優(yōu)選的實施例中,第一總線設(shè)備101采用apb總線,第二總線設(shè)備102采用高性能ahb總線,兩總線之間通過apb橋連接。具體地,apb總線通過i2c來控制外圍設(shè)備的同步觸發(fā),或者通過脈寬調(diào)制器pwm來控制外圍設(shè)備的功率,外圍設(shè)備例如圖像傳感器、投影設(shè)備、紅外泛光燈、溫度控制裝置tec等??刂茊卧?fù)責(zé)對深度計算處理器進(jìn)行全盤的管理,包括啟動、參數(shù)配置,或者功率、接口等的管理。如圖4所示,控制單元連接到ahb總線上,而ahb總線與apb總線之間又通過橋進(jìn)行連接,由此可以實現(xiàn)控制單元對深度計算處理器中各個部件以及外圍設(shè)備、接口的管理。在其它實施例中,也可以為其它總線形式。
在配置有總線的實施例中,控制單元通過連接到總線上實現(xiàn)對各個部分的控制。例如,控制單元連接到第一總線設(shè)備102,同時輸入開關(guān)器和輸出開關(guān)器也都連接到第二總線設(shè)備102,如此實現(xiàn)控制單元通過第二總線設(shè)備102對輸入開關(guān)器和輸出開關(guān)器的控制,例如根據(jù)實際應(yīng)用需要控制輸入開關(guān)器選擇需要的第一圖像數(shù)據(jù)輸入到數(shù)據(jù)處理引擎,而輸出開關(guān)器可以有選擇地輸入由數(shù)據(jù)處理引擎處理后輸出的數(shù)據(jù),或者有選擇地將數(shù)據(jù)處理引擎?zhèn)鬏攣淼臄?shù)據(jù)進(jìn)行有選擇地輸出。當(dāng)然,在另外一些實施例中,輸入開關(guān)器和輸出開關(guān)器需要如何選擇哪些數(shù)據(jù)通過,也可以不完全由控制單元控制,可以根據(jù)深度計算處理器的具體應(yīng)用場景來進(jìn)行預(yù)先設(shè)定。
圖3所示的深度計算處理器100的一種示例性細(xì)節(jié)架構(gòu)如圖4所示,深度計算處理器100可在一塊半導(dǎo)體基底上通過設(shè)置各個功能元件,并通過布線將各個功能元件之間進(jìn)行連接,這種專用的集成電路具有體積小、功耗低的優(yōu)點。深度計算處理器100對外通過多個引腳實現(xiàn)連接,引腳根據(jù)功能被設(shè)置成不同的端口種類,比如輸入、輸出端口,可以采用dvp、mipi、usb、dvi、hdmi、bnc、rj-45等類型的接口。其他種類接口的傳輸在此不做贅述。
在如圖4所示的具體例子中,深度計算處理器設(shè)置有三個輸入端口11、12、13,均為mipi接口,在其他實施方式中也可以包括dvp接口,可以分別與兩個紅外圖像傳感器ir1cmos、ir2cmos以及一個彩色圖像傳感器rgbcmos連接,每個輸入端口從與之連接的圖像傳感器接收不同的第一圖像數(shù)據(jù);當(dāng)深度計算處理器100被應(yīng)用在不同的深度相機(jī)中,三個輸入端口可以選擇性進(jìn)行連接,例如對于圖2-1所示的深度相機(jī),僅需要兩個輸入端口分別連接一個紅外圖像傳感器及一個彩色圖像傳感器,而對于圖2-2所示的深度相機(jī),則三個輸入端口均需要連接,分別連接如圖4中所示的三個圖像傳感器ir1cmos、ir2cmos以及rgbcmos。
在圖4所示的例子中,mipi接口由mipid-phy物理層接口以及二代攝像頭高速串行接口csi-2兩部分構(gòu)成,其中在d-phy給出了數(shù)據(jù)傳輸在物理層上的定義,csi-2的結(jié)構(gòu)一般由組/解包層、協(xié)議層以及通道管理層組成,根據(jù)數(shù)據(jù)在三個層級之間的傳輸路線,csi-2可以分為csi-2rx接收端以及csi-2tx發(fā)送端,在輸入端口中則應(yīng)為csi-2rx接收端(以接收來自圖像傳感器的數(shù)據(jù)),在輸出端口中則應(yīng)為csi-2tx發(fā)送端(以將第二圖像數(shù)據(jù)發(fā)送到主體設(shè)備如手機(jī)等)。圖像數(shù)據(jù)的傳輸路線為通道管理層——協(xié)議層——解包層,其中:
通道管理層用于將數(shù)據(jù)流按照通道輸出需求進(jìn)行分割和重組;
法律協(xié)議層按照一定協(xié)議規(guī)范將數(shù)據(jù)加上包頭包尾;
組/解包層將采集到的像素點信息流按照一定次序重組打包或解包。
如圖4所示,輸入開關(guān)器連接于mipi輸入接口和數(shù)據(jù)處理引擎之間,輸入開關(guān)器的作用就是針對各種不同的應(yīng)用情形選擇性地讓mipi輸入接口的數(shù)據(jù)經(jīng)過,此外還將通過的圖像數(shù)據(jù)傳輸至對應(yīng)的圖像處理引擎(例如圖4中所示的紅外圖像處理引擎、彩色圖像處理引擎或深度處理引擎)。在一種實施例中,三個輸入端口有數(shù)據(jù)輸入,但當(dāng)前的應(yīng)用僅需要其中某二個端口的數(shù)據(jù),則輸入開關(guān)器可以有選擇地將需要的二個輸入端口的數(shù)據(jù)進(jìn)行輸出。輸入開關(guān)器具體需要實現(xiàn)的功能可以預(yù)先設(shè)定好,比如該深度計算處理器100是放置在圖2-1所示的深度相機(jī)中時,則預(yù)先設(shè)定好輸入開關(guān)器僅允許需要的其中兩個輸入端口進(jìn)行數(shù)據(jù)輸入;當(dāng)然,也可如前述所說的由控制單元進(jìn)行控制和調(diào)整。
在圖4所示的例子中,深度處理引擎用于接收紅外圖像傳感器傳輸來的紅外圖像(此處的紅外圖像與一般的紅外圖像區(qū)分,它是指結(jié)構(gòu)光比如具有固定圖案的紅外光照射下采集到的目標(biāo)的紅外圖像,屬于結(jié)構(gòu)光圖像)以及參考圖像(參考圖像可解釋為:結(jié)構(gòu)光圖案投射到一個與圖像傳感器距離已知的平面上時,被圖像傳感器所采集到的結(jié)構(gòu)光圖像)來計算深度圖,具體的計算方法可參考前述第[0025]段的內(nèi)容,在此不再重復(fù)。比如對于圖2-1所示的深度相機(jī)而言,深度處理引擎接收結(jié)構(gòu)光投影下采集的紅外圖像以及參考圖像來進(jìn)行深度圖像計算。其中參考圖像可以被保存在閃存中,閃存即可以被包含在深度計算處理器100中,也可以作為外圍設(shè)備通過閃存接口與深度計算處理器100連接,例如圖3中所示的,作為外圍設(shè)備的存儲器通過存儲接口與深度計算處理器100連接,例如可以連接到第二總線設(shè)備102上,當(dāng)需要參考圖像時,可以讀取并經(jīng)由輸入開關(guān)器輸入到深度處理引擎中,或者也無需經(jīng)過輸入開關(guān)器,而是通過參考圖像讀取器經(jīng)由第二總線設(shè)備102讀取,讀取后直接送入深度處理引擎。
如圖4所示的深度計算處理器應(yīng)用于如圖2-2所示的深度相機(jī)時,一種情形下,獲取深度圖是不需要參考圖像的,深度處理引擎直接讀取兩幅結(jié)構(gòu)光投影下采集的紅外圖像來計算深度圖像,計算出一幅圖像中各個像素相對于另一幅圖像中相應(yīng)像素之間的偏離值,其次通過偏離值計算出深度信息,以此來獲取深度圖。另一種情形下是需要讀取兩幅參考圖像用來分別計算兩幅深度圖像,對于這種情形,深度處理引擎也可以被設(shè)計成兩個獨立的引擎單元來分別用于計算兩幅深度圖像,可參考前述第[0033]段的描述。
經(jīng)過數(shù)據(jù)處理引擎處理后輸出的第二圖像數(shù)據(jù),會從輸出端口向外輸出。輸出端口也可被配置為多個,可以為任何能夠傳輸視頻、圖像等數(shù)據(jù)的接口,比如mipi、usb、dvi、hdmi、bnc、rj45等接口,輸出接口均與輸出開關(guān)器連接,經(jīng)過輸出開關(guān)器選擇后通過的第二圖像數(shù)據(jù)經(jīng)由多個輸出端口輸出,同一組第二圖像數(shù)據(jù)也可以通過多個輸出接口同時向不同的主體設(shè)備輸出。例如,得到的深度圖可以同時通過兩個mipi輸出接口向手機(jī)和電腦輸出。在一種實施方式中,也可以將這些輸出接口的一個或多個直接與數(shù)據(jù)處理引擎連接,具體的連接方式在此不做限定。
如圖4所示的細(xì)節(jié)架構(gòu)圖,在一種優(yōu)選的實施例中,數(shù)據(jù)處理引擎中的各引擎均連接至輸出開關(guān)器,通過輸出開關(guān)器再連接至輸出端口。輸出開關(guān)器與三個處理引擎連接后,可以根據(jù)當(dāng)前應(yīng)用選擇性地從處理引擎接收第二圖像數(shù)據(jù),比如,若當(dāng)前應(yīng)用僅需要彩色圖像,則輸出開關(guān)器僅接收彩色圖像處理引擎輸出的數(shù)據(jù)并經(jīng)由mipi輸出接口向外輸出。一種實施方式中,向外輸出到其他的應(yīng)用處理器中,如輸出到手機(jī)的應(yīng)用處理器中。在一種實施方式中,也可以同時輸出多組第二圖像數(shù)據(jù),經(jīng)由csi-2txcontroller及mipid-phy向外輸出,這里的由csi-2txcontroller及mipid-phy組成的mipi輸出接口可以只有一個,也可以有多個。
參考圖4,數(shù)據(jù)處理引擎中的各處理引擎輸出的第二圖像數(shù)據(jù)可以傳輸?shù)絬sbfifo中。如圖2所示,在一些實施例中,深度計算處理器還可接收來自主體設(shè)備輸入的音頻數(shù)據(jù),音頻數(shù)據(jù)通過立體聲麥克風(fēng)并被adc轉(zhuǎn)換成數(shù)字格式后經(jīng)iis接收器接收,再傳輸?shù)絬sbfifo中,usbfifo起到了數(shù)據(jù)緩沖的作用,同時將各種數(shù)據(jù)進(jìn)行打包后經(jīng)由ahb總線傳輸?shù)絬sb接口并輸出到主機(jī)。usb接口包括usb控制器及usbphy(物理層)接口,當(dāng)usbfifo中的數(shù)據(jù)準(zhǔn)備好后,usb控制器訪問ahb總線來讀取準(zhǔn)備好的數(shù)據(jù)包。
可見,本發(fā)明提供的深度計算處理器,通過設(shè)置多個輸入端口可以支持多種類型的圖像數(shù)據(jù)同時輸入,并通過輸入開關(guān)器對輸入的圖像數(shù)據(jù)進(jìn)行選擇和組合,以供數(shù)據(jù)處理引擎進(jìn)行計算處理,針對不同類型的圖像數(shù)據(jù)以及不同組合的圖像數(shù)據(jù),數(shù)據(jù)處理引擎可以進(jìn)行不同的計算處理,輸出多種不同的圖像,從而可以實現(xiàn)多種功能,又通過配置多種輸出端口以適配不同的主體設(shè)備。可見,本發(fā)明的深度計算處理器可適應(yīng)多種主體設(shè)備,與內(nèi)置多個單一功能的處理器相比,可使主體設(shè)備的整體體積以及功耗得以降低。
在以上的說明中,圖像數(shù)據(jù)一般是以視頻流的形式輸入、處理及輸出的。在一種實施方式中,深度計算處理器特別是深度處理引擎在接收數(shù)據(jù)時是逐行或逐列進(jìn)行接收的,同樣地,也是對逐行或逐列的數(shù)據(jù)進(jìn)行計算得到相應(yīng)的深度信息后輸出,這種處理方式將會更加高效,也不需要在深度計算處理器中設(shè)置過多的數(shù)據(jù)緩沖器。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干等同替代或明顯變型,而且性能或用途相同,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。