本申請(qǐng)主張?jiān)?014年9月19日提交的共同擁有的第14/491,857號(hào)美國非臨時(shí)專利申請(qǐng)的優(yōu)先權(quán),所述申請(qǐng)的內(nèi)容以全文引用的方式明確地并入本文中。
技術(shù)領(lǐng)域
本公開大體上涉及姿態(tài)估算的系統(tǒng)和方法。
背景技術(shù):
技術(shù)的進(jìn)步已經(jīng)帶來更小且更強(qiáng)大的計(jì)算裝置。例如,當(dāng)前存在各種便攜式個(gè)人計(jì)算裝置,包含無線電話,例如移動(dòng)和智能電話、平板計(jì)算機(jī)和膝上型計(jì)算機(jī),其體積小、重量輕且便于用戶攜帶。這些裝置可經(jīng)由無線網(wǎng)絡(luò)傳達(dá)語音和數(shù)據(jù)包。另外,許多此些裝置并入有另外的功能,例如數(shù)字靜態(tài)相機(jī)、數(shù)字?jǐn)z像機(jī)、數(shù)字記錄器和音頻文件播放器。并且,此些裝置可處理可執(zhí)行指令,其包含軟件應(yīng)用,例如可用以接入因特網(wǎng)的網(wǎng)絡(luò)瀏覽器應(yīng)用。由此,這些裝置可包含相當(dāng)大的計(jì)算能力。
無線電話和類似裝置可用于捕獲圖像。此些圖像可用于生成物體的三維(3D)模型。一般來說,用于生成3D模型的裝置并不實(shí)時(shí)或準(zhǔn)實(shí)時(shí)運(yùn)行。而是圖像幀序列被捕獲(例如,通過攝像頭),并且所述圖像幀序列隨后被處理為一組(例如,在處理系統(tǒng),例如計(jì)算機(jī))以生成所述3D模型。如果所述圖像幀序列不足以或不適合生成完整的3D模型,則此些不足或不適合可能不被注意直到處理以生成所述3D模型之后。在此情況下,可能生成不完整或不精確的3D模型。為生成更完整或更精確的3D模型,用戶可能必須捕獲所述物體的新圖像序列且處理所述新圖像序列。
技術(shù)實(shí)現(xiàn)要素:
公開了能夠基于所捕獲的圖像幀序列實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成3D點(diǎn)云和/或3D模型的系統(tǒng)和方法。所述圖像幀序列可由圖像捕獲裝置(例如,移動(dòng)電話的攝像頭)捕獲。所述圖像捕獲裝置的用戶(例如,操作者)可圍繞物體移動(dòng)所述圖像捕獲裝置以捕獲所述物體的所述圖像幀序列。
所述3D點(diǎn)云和/或所述3D模型可在電子裝置(例如,包含所述攝像頭的移動(dòng)電話)通過利用平行處理線程以處理圖像幀序列來生成。例如,第一處理線程和第二處理線程可并行處理以使得能夠?qū)崟r(shí)或準(zhǔn)實(shí)時(shí)處理所述圖像幀。例如,所述第一處理線程可從幀到幀執(zhí)行攝像頭姿態(tài)估算,以及所述第二處理線程可從幀到關(guān)鍵幀執(zhí)行攝像頭姿態(tài)估算。
在具體實(shí)施例中,所述第一處理線程和所述第二處理線程可以以不同分辨率處理圖像。例如,所述第一處理線程可處理低分辨率(例如,四等分-四等分視頻圖形陣列(QQVGA)分辨率)圖像幀以估算一或多個(gè)圖像幀的攝像頭姿態(tài)。所述第二處理線程可處理更高分辨率(例如,四等分視頻圖形陣列(QVGA)分辨率)圖像幀和參考圖像幀(即,關(guān)鍵幀)以優(yōu)化特定圖像幀的所述攝像頭姿態(tài)。例如,所述攝像頭姿態(tài)可通過比較QVGA圖像幀和特定關(guān)鍵幀以確定當(dāng)所述QVGA圖像幀被下采樣到QQVGA分辨率時(shí)可能丟失的另外的信息來優(yōu)化。所述特定關(guān)鍵幀可為多個(gè)關(guān)鍵幀中的一者,并且所述多個(gè)關(guān)鍵幀中的每者可充當(dāng)在相對(duì)于所述物體的對(duì)應(yīng)位置的參考圖像幀。在所述圖像幀序列被捕獲時(shí),生成一或多個(gè)另外的關(guān)鍵幀以優(yōu)化攝像頭姿態(tài)估值以生成所述3D點(diǎn)云和/或3D模型。所述另外的關(guān)鍵幀可充當(dāng)與在相對(duì)于所述物體的不同位置的所述圖像幀序列進(jìn)行比較的另外的參考圖像幀。
在具體實(shí)施例中,方法包含從圖像捕獲裝置(例如,攝像頭)接收?qǐng)D像幀序列的第一圖像幀。所述方法也包含在處理器通過比較所述第一圖像幀和第二圖像幀來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài),其中,所述第二圖像幀在所述圖像幀序列中在所述第一圖像幀之前。所述方法另外包含在所述處理器通過比較所述第一圖像幀和關(guān)鍵幀來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài),其中,所述關(guān)鍵幀對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。
在另一具體實(shí)施例中,設(shè)備包含存儲(chǔ)器和處理器。所述處理器被配置成從圖像捕獲裝置接收?qǐng)D像幀序列的第一圖像幀。所述處理器還被配置成通過比較所述第一圖像幀和第二圖像幀來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài),其中,所述第二圖像幀在所述圖像幀序列中在所述第一圖像幀之前。所述處理器另外被配置成通過比較所述第一圖像幀和關(guān)鍵幀來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài),其中,所述關(guān)鍵幀對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。
在另一具體實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)裝置包含指令,在由處理器執(zhí)行時(shí),所述指令致使所述處理器從圖像捕獲裝置接收?qǐng)D像幀序列的第一圖像幀。所述指令還致使所述處理器通過比較所述第一圖像幀和第二圖像幀來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài),其中,所述第二圖像幀在所述圖像幀序列中在所述第一圖像幀之前。所述指令另外致使所述處理器通過比較所述第一圖像幀和關(guān)鍵幀來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài),其中,所述關(guān)鍵幀對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。
在又一特定實(shí)施例中,設(shè)備包含用于從圖像捕獲裝置接收?qǐng)D像幀序列的第一圖像幀的裝置。所述設(shè)備也包含用于基于所述第一圖像幀和第二圖像幀的第一比較來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài)的裝置,其中,所述第二圖像幀在所述圖像幀序列中在所述第一圖像幀之前。所述設(shè)備另外包含用于基于所述第一圖像幀和關(guān)鍵幀的第二比較來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài)的裝置,其中,所述關(guān)鍵幀對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。
所公開的實(shí)施例中的至少一者所提供的一個(gè)特定優(yōu)點(diǎn)在于基于在圖像幀序列中的相鄰圖像幀之間的比較的攝像頭姿態(tài)的估算,并且基于在特定圖像幀和關(guān)鍵幀之間的比較的優(yōu)化攝像頭姿態(tài)的估算可使用單獨(dú)處理線程同時(shí)(例如并行)執(zhí)行。攝像頭姿態(tài)估算和攝像頭姿態(tài)優(yōu)化的平行處理能夠?qū)崟r(shí)或準(zhǔn)實(shí)時(shí)處理所述圖像幀序列以生成3D點(diǎn)云或3D模型。所公開的實(shí)施例中的至少一者所提供的另一特定優(yōu)點(diǎn)在于根據(jù)物體的圖像幀的所述捕獲實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成所述物體的3D點(diǎn)云的能力。
在審核整個(gè)申請(qǐng)之后,將明白本公開的其它方面、優(yōu)點(diǎn)和特征,所述申請(qǐng)包含以下部分:附圖說明、具體實(shí)施方式和權(quán)利要求書。
附圖說明
圖1為基于圖像幀序列以生成點(diǎn)云數(shù)據(jù)的系統(tǒng)的特定說明性實(shí)施例的框圖;
圖2為生成點(diǎn)云數(shù)據(jù)的所述系統(tǒng)的另一特定說明性實(shí)施例的框圖;
圖3為由圖像捕獲裝置捕獲的場(chǎng)景的透視圖,所述場(chǎng)景包含準(zhǔn)實(shí)時(shí)生成的點(diǎn)云數(shù)據(jù)的時(shí)間流逝描繪的圖示;
圖4為示出基于所述圖像幀序列生成攝像頭姿態(tài)或新關(guān)鍵幀的簡(jiǎn)圖;
圖5為包含使用另外的圖像幀以生成新關(guān)鍵幀的圖4的所述簡(jiǎn)圖的后續(xù)視圖;
圖6為包含使用另外的圖像幀以生成新關(guān)鍵幀的圖4和5的所述簡(jiǎn)圖的后續(xù)視圖;
圖7為示出確定在所述圖像幀序列的兩個(gè)圖像幀之間的像素強(qiáng)度誤差和/或深度誤差的簡(jiǎn)圖;
圖8為生成新關(guān)鍵幀的方法的特定說明性實(shí)施例的流程圖;
圖9為估算在圖像幀序列中的圖像幀的攝像頭姿態(tài)的方法的特定說明性實(shí)施例的流程圖;
圖10為基于成本函數(shù)估算特定圖像幀的攝像頭姿態(tài)的方法的特定說明性實(shí)施例的流程圖;
圖11為估算攝像頭姿態(tài)和估算優(yōu)化攝像頭姿態(tài)的方法的特定說明性實(shí)施例的流程圖;以及
圖12為包含處理器的計(jì)算裝置的框圖,其中,所述處理器被配置成基于圖像幀序列執(zhí)行攝像頭姿態(tài)估算。
具體實(shí)施方式
參考圖1,該圖示出了系統(tǒng)100的特定說明性實(shí)施例。所述系統(tǒng)100包含通信地耦合至處理器106和存儲(chǔ)器112的攝像頭102。在說明性實(shí)施例中,所述攝像頭102、所述處理器106和所述存儲(chǔ)器112可被集成到計(jì)算或電子裝置,例如移動(dòng)電話、平板計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、媒體播放器裝置等中。
在具體實(shí)施例中,所述系統(tǒng)100被配置成在圖像捕獲裝置(例如,所述攝像頭102)圍繞物體移動(dòng)的圖像捕獲處理期間生成點(diǎn)云數(shù)據(jù)116(例如,3D點(diǎn)云或3D模型)。所述攝像頭102(或另一圖像捕獲裝置)可被配置成捕獲圖像幀序列104。所述攝像頭102可圍繞所述物體移動(dòng)(例如,通過可圍繞所述物體步行的用戶),同時(shí)攝像頭102捕獲所述圖像幀序列104。在所示的實(shí)施例中,所述圖像幀序列104包含五個(gè)圖像幀;然而,所述圖像幀序列104可包含多于五個(gè)圖像幀或少于五個(gè)圖像幀。每一圖像幀包含多個(gè)像素,并且每一像素對(duì)應(yīng)于一組像素值,例如深度值、光度值(例如,紅綠藍(lán)(RGB)值、強(qiáng)度值、色度值、飽和度值等)或它們的組合。
所述攝像頭102可向所述處理器106的比較器108提供所述圖像幀序列104。在具體實(shí)施例中,所述處理器106可為單核處理器。在另一實(shí)施例中,所述處理器106可包含多個(gè)處理核,并且所述比較器108可對(duì)應(yīng)于所述多個(gè)處理核的至少一個(gè)核(例如,被其執(zhí)行)。在另一具體實(shí)施例中,所述處理器106可包含并行運(yùn)行的多個(gè)處理器,其中,所述多個(gè)處理器的每一處理器包含對(duì)應(yīng)的比較器,例如所述比較器108。在說明性實(shí)施例中,在所述圖像幀序列104中的每一圖像幀可以以源分辨率(例如,高分辨率,例如高清(HD))被捕獲。
盡管未示出,所述圖像幀序列104的一或多個(gè)圖像幀可通過所述處理器106緩存(例如,存儲(chǔ))。例如,所述處理器106可以以源分辨率(例如,高分辨率,例如高清(HD))接收所述圖像幀序列104的特定圖像幀并且可在存儲(chǔ)器,例如耦合至或包含于所述處理器106中的隨機(jī)存取存儲(chǔ)器(RAM)以所述源分辨率存儲(chǔ)所述圖像幀。另外地或可替代地,所述處理器106可被配置成下采樣所述圖像幀序列104的一或多個(gè)圖像幀或調(diào)整其大小。例如,所述處理器106可生成所述特定圖像幀的一或多個(gè)降低分辨率圖像幀(相比于所述源分辨率)。舉例而言,當(dāng)所述源分辨率為所述高分辨率(例如,HD分辨率)時(shí),所述處理器106可生成所述特定圖像幀的中等分辨率(例如,四等分視頻圖形陣列(QVGA)分辨率)圖像幀和/或低分辨率(例如,四等分-四等分視頻圖形陣列(QQVGA)分辨率)圖像幀。在一些實(shí)施方案中,所述處理器106可以以各種(例如,不同)分辨率接收所述特定圖像幀。所述處理器106可被配置成在包含于所述處理器106中或耦合至所述處理器106的所述存儲(chǔ)器(例如,所述RAM)存儲(chǔ)(例如,緩存)所述特定圖像幀的所述一或多個(gè)降低分辨率的圖像幀。在所述處理器106緩存或通過所述處理器106緩存的處于各種分辨率的所述圖像幀可由所述處理器106的一或多個(gè)組件,例如所述比較器108和/或所述關(guān)鍵幀生成器110訪問。所述特定圖像幀的一或多個(gè)降低分辨率版本可響應(yīng)于所述處理器106接收所述特定圖像幀而生成,或可在所述處理器106的組件需要(例如,請(qǐng)求)所述特定圖像幀的所述一或多個(gè)降低分辨率版本時(shí)根據(jù)需要而生成。
所述比較器108可使用所述處理器106的一或多個(gè)硬件裝置(例如,邏輯電路)、可由所述處理器106執(zhí)行的軟件指令(例如,程序代碼)或它們的組合來實(shí)現(xiàn)。在具體實(shí)施例中,所述比較器108被配置成執(zhí)行所述圖像幀序列104中的圖像幀相對(duì)于彼此和/或相對(duì)于存儲(chǔ)于所述存儲(chǔ)器112中的一或多個(gè)關(guān)鍵幀114的逐像素比較。在具體實(shí)施例中,所述比較器108執(zhí)行所述逐像素比較以確定重疊比109,如下文中另外描述。所述逐像素比較可包含所述第一圖像幀121的像素值(例如,深度值、光度值(例如、紅綠藍(lán)(RGB)值)或它們的組合)和所述第二圖像幀122或所述關(guān)鍵幀114的像素值之間的比較。
所述重疊比109可為所述圖像幀序列104的兩個(gè)或兩個(gè)以上圖像幀的類似性的數(shù)值表示。例如,所述數(shù)值表示可為“類似”像素?cái)?shù)除以總像素?cái)?shù)。當(dāng)所述像素精確匹配(例如,對(duì)于特定像素值具有相同數(shù)值)時(shí)或當(dāng)所述像素大體上匹配(例如,第一像素的所述數(shù)值在第二像素的對(duì)應(yīng)數(shù)值的差值閾值內(nèi))時(shí),兩個(gè)或兩個(gè)以上圖像幀的像素可被確定為類似的。在替代實(shí)施例中,所述重疊比109可為所述圖像幀序列104的兩個(gè)或兩個(gè)以上圖像幀之間的差異性的數(shù)值表示。例如,所述重疊比109可為“不類似”的像素(例如,不是如上所述類似的像素)數(shù)除以所述總像素?cái)?shù)。在具體實(shí)施例中,確定所述重疊比109包含基于逐像素比較確定圖像幀和關(guān)鍵幀之間的多個(gè)差值并確定滿足差值閾值(其可對(duì)應(yīng)于所述重疊比閾值131)的所述多個(gè)差值數(shù),其中,所述重疊比109基于所述數(shù)量除以所述圖像幀的總像素?cái)?shù)。
所述關(guān)鍵幀生成器110可基于所述圖像幀序列104的初始捕獲幀(例如,第一圖像幀121)來生成新關(guān)鍵幀111。例如,當(dāng)沒有與所述圖像幀序列104相關(guān)聯(lián)的關(guān)鍵幀114被存儲(chǔ)到所述存儲(chǔ)器112時(shí),則所述第一圖像幀121(或其版本)可默認(rèn)用作新關(guān)鍵幀111。特定生成的關(guān)鍵幀可被存儲(chǔ)為所述關(guān)鍵幀114中的一者,并且可具有與所捕獲圖像幀相同的分辨率或可具有與所述捕獲圖像幀不同的分辨率(例如,基于所述第一圖像幀121生成的所述關(guān)鍵幀111可具有與所述第一圖像幀121不同的分辨率)。例如,在使用比在源分辨率(例如,第一圖像幀121的初始分辨率)的所述第一圖像幀121更低的存儲(chǔ)器或處理占用面積時(shí),所述特定關(guān)鍵幀可為保持所述第一圖像幀121的至少一些細(xì)節(jié)的中等分辨率(例如,四等分視頻圖形陣列(QVGA)分辨率)圖像幀。在具體實(shí)施例中,所述處理器106(例如,所述關(guān)鍵幀生成器110)可被配置成下采樣所述第一圖像幀121或調(diào)整其大小以生成所述新關(guān)鍵幀111。
另外地或可替代地,所述關(guān)鍵幀生成器110可基于所述一或多個(gè)關(guān)鍵幀114的特定關(guān)鍵幀和所述圖像幀序列104的所捕獲圖像(例如,所述第二圖像122)生成所述新關(guān)鍵幀11。舉例而言,所述一或多個(gè)關(guān)鍵幀114中的每者可用于充當(dāng)所述圖像幀序列104的一或多個(gè)圖像幀的參考圖像幀(例如,以如下所述優(yōu)化攝像頭姿態(tài)估算)。例如,所述比較器108可用于比較所述一或多個(gè)關(guān)鍵幀114的特定關(guān)鍵幀(即基于所述第一圖像幀121)和第二圖像幀122以優(yōu)化與所述第二圖像幀122相關(guān)聯(lián)的攝像頭姿態(tài)。在接收到所述圖像幀序列104的另外的圖像幀時(shí),所述比較器108可執(zhí)行每一所接收的圖像幀或其降低分辨率版本與在所述存儲(chǔ)器112中的所述一或多個(gè)關(guān)鍵幀114的先前存儲(chǔ)的關(guān)鍵幀的逐像素比較。在具體實(shí)施例中,所述逐像素比較確定類似于所述特定關(guān)鍵幀的對(duì)應(yīng)像素的所述第二圖像幀122的像素。所述比較器108可基于所述類似像素?cái)?shù)來計(jì)算所述重疊比109。例如,所述比較器108可基于在所述第二圖像幀122和所述特定關(guān)鍵幀之間的所述類似像素?cái)?shù)除以所述第二圖像幀122中的總像素?cái)?shù)來生成所述重疊比109。在替代實(shí)施例中,所述重疊比109可為在所述第一圖像幀121和所述第二圖像幀122之間的不類似像素?cái)?shù)除以總像素?cái)?shù)的數(shù)值表示。所述第二圖像幀122也可被改動(dòng)(例如,如參考圖6所述被扭曲或變形)以對(duì)齊所述第一圖像幀121以計(jì)算所述重疊比109。
所述關(guān)鍵幀生成器110可以被配置成比較所述重疊比109和重疊比閾值131。所述重疊比閾值131可按照百分比、像素?cái)?shù)或以一些其它方式來表示。例如,當(dāng)所述重疊比109被表示為百分比時(shí),所述重疊比閾值131可為百分比。在具體實(shí)施例中,所述重疊比109為總像素?cái)?shù)的類似像素的百分比,以及所述重疊比閾值131為圖像幀被視為大體上類似于(例如,90%類似性)關(guān)鍵幀的百分比或在其之上的百分比。所述重疊比閾值131的值可被調(diào)節(jié)(例如,由用戶)以提高或降低確定圖像幀是否大體上類似的靈敏度。在具體實(shí)施例中,當(dāng)所述重疊比109大于或等于所述重疊比閾值131時(shí),所述重疊比109可滿足所述重疊比閾值131。當(dāng)所述重疊比109大于或等于所述重疊比閾值131時(shí),所述圖像幀和所述關(guān)鍵幀是大體上類似的,并且所述關(guān)鍵幀生成器110并不生成用于存儲(chǔ)在所述存儲(chǔ)器112中的所述新關(guān)鍵幀111(例如,另一關(guān)鍵幀)。在另一具體實(shí)施例中,當(dāng)所述重疊比109小于或等于所述重疊比閾值131時(shí),所述重疊比109可滿足所述重疊比閾值131。當(dāng)所述重疊比109小于或等于所述重疊比閾值131時(shí),所述圖像幀和所述關(guān)鍵幀并不是大體上類似的,并且所述關(guān)鍵幀生成器110生成用于存儲(chǔ)在所述存儲(chǔ)器112中的新關(guān)鍵幀111(例如,另一關(guān)鍵幀)。生成所述新關(guān)鍵幀111可包含形成所述圖像幀序列104的源幀的副本。在具體實(shí)施例中,所述副本具有相對(duì)于所述源幀(例如,HD分辨率)的降低分辨率(例如,QVGA分辨率)。
在具體實(shí)施例中,當(dāng)所述重疊比109與所述重疊比閾值131的所述比較指示所述圖像幀和所述關(guān)鍵幀大體上不類似時(shí),確定在所述攝像頭102的第一位置和第二位置之間出現(xiàn)相當(dāng)大的變化,例如所述攝像頭102在捕獲所述第一圖像幀121期間的第一位置和所述攝像頭102在捕獲所述第二圖像幀122期間的第二位置。因此,基于在所述重疊比109和所述重疊比閾值131之間的所述比較,所述第一圖像幀121和所述第二圖像幀122可被確定為具有不同圖像數(shù)據(jù)的大體上不同的圖像幀。當(dāng)所述第一圖像幀121和所述第二圖像幀122被確定為大體上不同的圖像幀時(shí),所述關(guān)鍵幀生成器110可基于所述第二圖像幀122生成新關(guān)鍵幀111。另一選擇為,當(dāng)所述重疊比109和所述重疊比閾值131的所述比較指示所述圖像幀和所述關(guān)鍵幀大體上類似時(shí),沒有新關(guān)鍵幀111基于所述第二圖像幀122而生成,因?yàn)樗鲫P(guān)鍵幀114和所述第二圖像幀122包含大體上相同的圖像數(shù)據(jù)。當(dāng)所述關(guān)鍵幀114和所述第二圖像幀122大體上類似時(shí),不需要生成新關(guān)鍵幀111。通過減小所生成的和可供用于比較的新關(guān)鍵幀的數(shù)量,所述圖像幀序列104可以以更高效的方式進(jìn)行處理。
一般來說,并不是所述圖像幀序列104的每個(gè)圖像幀基于所述重疊比閾值131而被確定類似于所述關(guān)鍵幀。當(dāng)特定圖像幀,例如第四圖像幀123被捕獲并被提供給所述比較器108時(shí),所述攝像頭102可處在當(dāng)與對(duì)應(yīng)于所述一或多個(gè)關(guān)鍵幀114的特定關(guān)鍵幀(例如,基于所述第一圖像幀121的所述特定關(guān)鍵幀)的圖像幀被捕獲時(shí)大體上不同的位置。因此,對(duì)應(yīng)于在所述特定關(guān)鍵幀和所述第四圖像幀123之間的比較的所述重疊比109可被確定,并可與所述重疊比閾值131比較以指示所述第四圖像幀123和所述特定關(guān)鍵幀是否類似。因此,當(dāng)基于所述比較確定所述第四圖像幀123和所述特定關(guān)鍵幀不類似時(shí),基于所述第四圖像幀123的新關(guān)鍵幀111可被生成并被存儲(chǔ)在所述存儲(chǔ)器112中。當(dāng)基于所述第四圖像幀123生成所述新關(guān)鍵幀111時(shí),在所述圖像幀序列104的所述第四圖像幀123之后的所接收到的圖像幀可被所述比較器108用于執(zhí)行此些圖像幀(或此些圖像幀的降低分辨率版本)與基于所述第四圖像幀123生成的所述新關(guān)鍵幀111的另外逐像素比較。因此,在圖像幀序列104中的初始所接收的圖像幀被指定為關(guān)鍵幀并存儲(chǔ)在所述存儲(chǔ)器112中之后,由所述比較器108執(zhí)行的比較相對(duì)于在所述存儲(chǔ)器112中的“最近生成”關(guān)鍵幀來執(zhí)行(例如,基于所述關(guān)鍵幀114的時(shí)間戳的最后生成的關(guān)鍵幀)。另一選擇為,比較可由所述比較器108相對(duì)于在所述存儲(chǔ)器112中的一組先前生成的關(guān)鍵幀來執(zhí)行。例如,所述存儲(chǔ)器112可存儲(chǔ)在處理所述圖像幀序列104期間先前生成的一或多個(gè)關(guān)鍵幀。在一些實(shí)施例中,所述先前關(guān)鍵幀中的一者可被選擇用在由所述比較器108執(zhí)行的所述比較中,如參考圖2另外描述。
在具體實(shí)施例中,所述新關(guān)鍵幀111以相對(duì)于所述圖像幀序列104的圖像幀的降低分辨率生成。降低分辨率圖像幀可經(jīng)由下采樣、調(diào)整大小和/或其它操作從圖像幀生成。例如,如果所述第二圖像幀122為HD圖像幀,則所述新關(guān)鍵幀111可為中等分辨率圖像幀(例如,QVGA分辨率,例如320x240像素)。所述關(guān)鍵幀生成器110可向所述存儲(chǔ)器112發(fā)送新生成關(guān)鍵幀,例如所述新關(guān)鍵幀111。在具體實(shí)施例中,所述存儲(chǔ)器112可包含隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、盤式存儲(chǔ)器、固態(tài)存儲(chǔ)器或其任何組合。在圖1所示的所述實(shí)施例中,所述新關(guān)鍵幀111可被存儲(chǔ)為所述存儲(chǔ)器112內(nèi)的所述一或多個(gè)關(guān)鍵幀114中的一者。與所述圖像幀序列104相關(guān)聯(lián)的一或多個(gè)關(guān)鍵幀114可在操作所述攝像頭102期間被存儲(chǔ)在所述存儲(chǔ)器112中。在具體實(shí)施例中,所述多個(gè)關(guān)鍵幀114的數(shù)量少于在所述圖像幀序列104中的圖像幀的總數(shù)。所述多個(gè)關(guān)鍵幀114可提供多個(gè)參考圖像幀以從圍繞所述場(chǎng)景的不同相對(duì)位置優(yōu)化攝像頭姿態(tài)。在具體實(shí)施例中,在所述存儲(chǔ)器112中的所述關(guān)鍵幀114中的每者可供選擇并作為參考圖像幀用在所述比較器108的比較中。例如,在一些實(shí)施方案中,所述存儲(chǔ)器112可包含多個(gè)關(guān)鍵幀114,并且所存儲(chǔ)的多個(gè)關(guān)鍵幀114的最類似關(guān)鍵幀可被選擇以用在與所述圖像幀序列104的特定圖像幀的比較中,如在本文中另外參考圖2所述。另外地或可替代地,存儲(chǔ)在所述存儲(chǔ)器112中并對(duì)應(yīng)于所述組的圖像幀序列104的所述一或多個(gè)關(guān)鍵幀114可包含基于所述圖像序列104所生成的每一關(guān)鍵幀,或可包含少于與所述圖像幀序列104相關(guān)聯(lián)的所有所述關(guān)鍵幀114的關(guān)鍵幀114。例如,所述一或多個(gè)關(guān)鍵幀114可包含特定數(shù)量的關(guān)鍵幀,例如最近生成的關(guān)鍵幀的數(shù)量,使得所述一或多個(gè)關(guān)鍵幀114并不產(chǎn)生大的存儲(chǔ)器占用面積。
在生成新關(guān)鍵幀111時(shí)并且在從所述攝像頭102接收到另外的圖像幀時(shí),所述處理器106可生成點(diǎn)云數(shù)據(jù)116。在具體實(shí)施例中,所述點(diǎn)云數(shù)據(jù)116包含關(guān)于在3D空間中的點(diǎn)(例如,坐標(biāo))的數(shù)據(jù),例如坐標(biāo)集合(例如,x、y及z坐標(biāo)或其它坐標(biāo))或表示特定形狀的方程式。所述點(diǎn)云數(shù)據(jù)116的生成參考圖3另外描述。在說明性實(shí)施例中,所述點(diǎn)云數(shù)據(jù)116可基于包含于所述圖像幀序列104中的一或多個(gè)圖像幀、存儲(chǔ)在所述存儲(chǔ)器112中的一或多個(gè)關(guān)鍵幀、由本文參考圖2所述的所述處理器106計(jì)算的攝像頭姿態(tài)信息或其任何組合中的數(shù)據(jù)而生成。例如,所述點(diǎn)云數(shù)據(jù)116可相對(duì)于所述圖像幀序列104的捕獲實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成,并且,在說明性實(shí)施例中,所述點(diǎn)云數(shù)據(jù)116可在生成由所述攝像頭102捕獲的一或多個(gè)物體的三維(3D)模型期間使用,如本文另外描述。在具體實(shí)施例中,所述3D模型基于插入所述點(diǎn)云數(shù)據(jù)116而生成,例如使用所述坐標(biāo)來識(shí)別在3D空間中的為所述3D模型的一部分的點(diǎn)。
在操作期間,所述處理器106可從所述攝像頭102接收所述圖像幀序列104的所述第一圖像幀121。所述處理器106可基于所述第一圖像幀121生成第一關(guān)鍵幀(例如,所述一或多個(gè)關(guān)鍵幀114的所述第一關(guān)鍵幀),因?yàn)樗龅谝粓D像幀121為所述圖像幀序列104的所述第一(例如,初始)圖像幀,并因此沒有與所述圖像幀序列104相關(guān)聯(lián)的關(guān)鍵幀被存儲(chǔ)在所述存儲(chǔ)器112中。生成所述第一關(guān)鍵幀可包含下采樣所述第一圖像幀121以生成所述第一圖像幀121的比所述第一圖像幀121被捕獲時(shí)的分辨率更低的分辨率版本(例如,QVGA)。
在接收所述第一圖像幀121之后,所述處理器106可從所述攝像頭102接收所述第二圖像幀122。所述處理器106可確定在所述第二圖像幀122和所述第一關(guān)鍵幀之間的所述重疊比109。所述重疊比109可基于所述第二圖像幀122的像素值(例如,顏色值、強(qiáng)度值或其任何組合)和所述關(guān)鍵幀114的對(duì)應(yīng)像素值的逐像素比較。在一些實(shí)施方案中,用于確定所述重疊比109的所述第二圖像幀122的特定分辨率可與所述第一關(guān)鍵幀的分辨率相同(例如,兩者均為QVGA)。在其它實(shí)施方案中,用于確定所述重疊比109的所述第二圖像幀122的所述特定分辨率可與所述第一關(guān)鍵幀的所述分辨率不同,并且所述第二圖像幀122和/或所述第一關(guān)鍵幀的一或多個(gè)像素值可被內(nèi)插以執(zhí)行逐像素比較以生成所述重疊比109。
所述重疊比109可與所述重疊比閾值131比較,并且基于所述第二圖像幀122并不大體類似于所述關(guān)鍵幀114的確定,所述第二圖像幀122可用于生成用于存儲(chǔ)在所述存儲(chǔ)器112中的新關(guān)鍵幀111。另一選擇為,當(dāng)基于所述比較確定所述第二圖像幀122大體上類似于所述關(guān)鍵幀114時(shí),所述第二圖像幀122可能不被用于生成新關(guān)鍵幀111?;谒龅诙D像幀122生成所述新關(guān)鍵幀111可包含下采樣所述第二圖像幀122以生成所述第二圖像幀122的較低分辨率(例如,QVGA)版本,或使用所述第二圖像幀122的先前下采樣版本。
在圖1中的所述系統(tǒng)100可用于選擇性生成關(guān)鍵幀,使得所述生成的關(guān)鍵幀的數(shù)量小于所述圖像幀序列104的所述圖像幀數(shù)量。此外,識(shí)別所述關(guān)鍵幀的所述圖像幀的處理可以以與所述圖像幀序列104的所接收的圖像的特定分辨率相比降低的分辨率來執(zhí)行。通過使用較低分辨率以生成所述關(guān)鍵幀114,所述點(diǎn)云數(shù)據(jù)116的所述生成和其它處理運(yùn)算可相對(duì)于所述圖像幀序列104被捕獲的速度實(shí)時(shí)或準(zhǔn)實(shí)時(shí)執(zhí)行。因此,圖1的所述系統(tǒng)可用于相對(duì)于捕獲所述圖像幀序列104的速率實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成點(diǎn)云數(shù)據(jù)和/或3D模型。
參考圖2,其示出了可操作以選擇性生成關(guān)鍵幀的系統(tǒng)200的另一具體實(shí)施例。所述系統(tǒng)200包含攝像頭202、處理器206和存儲(chǔ)器212。所述處理器206包含圖像幀緩存器207、一或多個(gè)攝像頭姿態(tài)估算器208、一或多個(gè)比較器220和關(guān)鍵幀生成器210。所述圖像幀緩存器207可對(duì)應(yīng)于被配置成用于從所述攝像頭202接收?qǐng)D像幀序列204的超高速緩存器和/或盤式存儲(chǔ)器。來自所述圖像幀緩存器207的圖像幀可被提供給所述一或多個(gè)攝像頭姿態(tài)估算器208,使得多個(gè)幀(例如,第一圖像幀221和第二圖像幀222)可被同時(shí)提供給所述一或多個(gè)攝像頭姿態(tài)估算器208。
所述一或多個(gè)攝像頭姿態(tài)估算器208可生成用于所述圖像幀序列204中的一或多個(gè)圖像幀和/或由所述關(guān)鍵幀生成器210生成的一或多個(gè)關(guān)鍵幀的攝像頭姿態(tài)信息。在一些實(shí)施例中,所述關(guān)鍵幀生成器210可對(duì)應(yīng)于圖1的所述關(guān)鍵幀生成器110。攝像頭姿態(tài)估算可為在捕獲特定圖像幀期間所述攝像頭202的相對(duì)位置(例如,與相對(duì)于初始位置,例如“原點(diǎn)”坐標(biāo)位置的位置差值相關(guān)聯(lián)的坐標(biāo))和取向(例如,與相對(duì)于初始角度,例如“原點(diǎn)”角度的差值相關(guān)聯(lián)的角度)的逼近。在具體實(shí)施例中,一或多個(gè)攝像頭姿態(tài)與定位數(shù)據(jù),例如使所述特定圖像幀與特定位置(例如,地理標(biāo)記)相關(guān)聯(lián)的全球定位衛(wèi)星(GPS)數(shù)據(jù)無關(guān)地進(jìn)行估算。結(jié)合特定圖像幀的所述像素值的所述攝像頭姿態(tài)估算可用于生成點(diǎn)云數(shù)據(jù)216。所述點(diǎn)云數(shù)據(jù)216可對(duì)應(yīng)于圖1的所述點(diǎn)云數(shù)據(jù)116。在說明性實(shí)施例中,所述一或多個(gè)攝像頭姿態(tài)估算器208基于多個(gè)圖像幀(例如,所述第一圖像幀221和所述第二圖像幀222)之間的比較來估算特定圖像幀的攝像頭姿態(tài)。例如,所述一或多個(gè)攝像頭姿態(tài)估算器208可比較所述圖像幀序列204中的圖像幀的低分辨率(例如,QQVGA分辨率,即,160x120)版本。基于所述圖像幀的所述低分辨率版本的所述比較,所述一或多個(gè)攝像頭姿態(tài)估算器208可生成攝像頭姿態(tài)估算250。如本文中所述的,所述攝像頭姿態(tài)估算250對(duì)應(yīng)于所述兩個(gè)圖像幀的后者(例如,所述第二圖像幀222)。舉例而言,所述圖像幀序列204的所述第一圖像幀221可用作“原點(diǎn)”,以及所述圖像幀序列204的每一后續(xù)圖像幀可具有相對(duì)于所述第一圖像幀221(例如,所述“原點(diǎn)”)所確定的對(duì)應(yīng)攝像頭姿態(tài)。例如,與所述第一圖像幀121相關(guān)聯(lián)的攝像頭姿態(tài)可被表示為具有相對(duì)零角度的參照點(diǎn)(例如,零點(diǎn))。在該示例中,后續(xù)攝像頭姿態(tài)估算可被表示為指示在真實(shí)空間(例如,指示距離的近似變化的(x,y,z)坐標(biāo))中的相對(duì)運(yùn)動(dòng)的坐標(biāo)和指示所述攝像頭102的傾角的相對(duì)變化的角度(例如,角度改變10°)。
在說明性實(shí)施例中,生成對(duì)應(yīng)于所述兩個(gè)圖像幀的所述后者(例如,后來接收和/或生成)的攝像頭姿態(tài)估算250包含通過基于所述攝像頭202的相對(duì)運(yùn)動(dòng)而扭曲(即,變換)所述后來捕獲的幀和由所述攝像頭202在所述兩個(gè)圖像幀之間捕獲的物體(和/或場(chǎng)景)來生成扭曲幀。所述后來捕獲的幀被扭曲以成為更類似于如本文中參考圖6所述的所述更早捕獲的圖像幀。
在具體實(shí)施例中,由所述一或多個(gè)攝像頭姿態(tài)估算器208基于圖像幀對(duì)圖像幀比較所生成的所述攝像頭姿態(tài)估算250可對(duì)應(yīng)于“初始”攝像頭姿態(tài)。所述攝像頭姿態(tài)估算250可憑借已基于低分辨率(例如,QQVGA)運(yùn)算生成而為“初始的”。所述“初始”攝像頭姿態(tài)可在后續(xù)運(yùn)算期間被優(yōu)化。在一些實(shí)施例中,所述“初始”攝像頭姿態(tài)估算可相對(duì)于特定圖像幀為“初始的”,其中,后續(xù)圖像幀可具有它們自身的相應(yīng)的“初始”攝像頭姿態(tài)估算。所述一或多個(gè)比較器220可使用所述關(guān)鍵幀選擇器242從所述關(guān)鍵幀214選擇最類似的關(guān)鍵幀,如在本文中另外描述。在一些實(shí)施例中,所述關(guān)鍵幀選擇器242使用所述攝像頭姿態(tài)估算250來選擇識(shí)別出的關(guān)鍵幀252,其中,所述識(shí)別出的關(guān)鍵幀252為相對(duì)于所述攝像頭姿態(tài)估算250最類似的關(guān)鍵幀。所述識(shí)別出的關(guān)鍵幀252(或其指示)可被提供給所述攝像頭姿態(tài)估算器208。
所述攝像頭姿態(tài)估算器208可接收所述識(shí)別出的關(guān)鍵幀252且可優(yōu)化初始攝像頭姿態(tài)估算,例如所述攝像頭姿態(tài)估算250。例如,所述攝像頭姿態(tài)估算器208可被配置成通過比較所述圖像幀的QVGA版本和對(duì)應(yīng)于所述圖像幀序列204中的先前圖像幀的所述識(shí)別關(guān)鍵幀252的QVGA分辨率版本來估算對(duì)應(yīng)于圖像幀的優(yōu)化攝像頭姿態(tài)256。在一些實(shí)施例中,所述一或多個(gè)比較器220可對(duì)應(yīng)于圖1的比較器108。
舉例而言,在對(duì)應(yīng)于所述圖像幀序列204中的所述圖像幀中的一者的初始攝像頭姿態(tài)估算被確定之后,所述一或多個(gè)攝像頭姿態(tài)估算器208可通過比較圖像幀和由所述關(guān)鍵幀生成器210先前生成且存儲(chǔ)于所述存儲(chǔ)器212中的關(guān)鍵幀214,例如最近生成的關(guān)鍵幀或最類似關(guān)鍵幀(例如所述識(shí)別出的關(guān)鍵幀252)來生成對(duì)應(yīng)于所述圖像幀的優(yōu)化攝像頭姿態(tài)估算256。所述存儲(chǔ)器212可對(duì)應(yīng)于圖1的存儲(chǔ)器112。確定所述圖像幀223的初始攝像頭姿態(tài)估算250可包含比較所述圖像幀223和先前圖像幀,例如所述圖像幀222或另一圖像幀。所述一或多個(gè)比較器220包含被配置成從所述存儲(chǔ)器212選擇所述關(guān)鍵幀214的關(guān)鍵幀選擇器242。在一些實(shí)施例中,所述關(guān)鍵幀選擇器242可基于在所述攝像頭姿態(tài)估算250和所述一或多個(gè)關(guān)鍵幀214的特定關(guān)鍵幀的對(duì)應(yīng)攝像頭姿態(tài)估算之間的類似性選擇所述關(guān)鍵幀214。在一些實(shí)施例中,在所述攝像頭姿態(tài)估算250和所述特定關(guān)鍵幀的所述對(duì)應(yīng)攝像頭姿態(tài)估算之間的類似性可基于相對(duì)位置、取向或其組合之間的比較(例如,坐標(biāo)和角度)。
例如,為識(shí)別相對(duì)于所述攝像頭姿態(tài)估算250的最類似關(guān)鍵幀,所述關(guān)鍵幀選擇器242可比較所述攝像頭姿態(tài)估算的相對(duì)位置(例如,坐標(biāo))及取向(例如,角度)和與所述關(guān)鍵幀214相關(guān)聯(lián)的一或多個(gè)攝像頭姿態(tài)。舉例而言,所述關(guān)鍵幀214的每一關(guān)鍵幀可與對(duì)應(yīng)于用于生成所述關(guān)鍵幀的所述圖像幀序列204的特定圖像幀的攝像頭姿態(tài)相關(guān)聯(lián)。例如,第一關(guān)鍵幀可與“原點(diǎn)”相關(guān)聯(lián),如上所述。第二關(guān)鍵幀可基于在所述第一圖像幀221之后的特定圖像幀生成,且所述第二關(guān)鍵幀可與所述特定關(guān)鍵幀的攝像頭姿態(tài)相關(guān)聯(lián)。
所述關(guān)鍵幀選擇器242可基于所述攝像頭姿態(tài)估算250的相對(duì)位置和/或相對(duì)角度識(shí)別出所述關(guān)鍵幀214的類似關(guān)鍵幀(或最類似關(guān)鍵幀)。例如,所述關(guān)鍵幀選擇器242可確定在所述攝像頭姿態(tài)估算250的所述相對(duì)位置和與特定關(guān)鍵幀相關(guān)聯(lián)的特定攝像頭姿態(tài)的相對(duì)位置之間的第一差值。另外地或可替代地,所述關(guān)鍵幀選擇器242可確定在所述攝像頭姿態(tài)估算250的所述相對(duì)角度和所述特定攝像頭姿態(tài)的相對(duì)角度之間的第二差值。所述關(guān)鍵幀選擇器242可確定所述關(guān)鍵幀214中的每者的第一差值和/或第二差值,且可將產(chǎn)生所述最小差值(例如,相對(duì)位置的最小差值和/或相對(duì)角度的最小差值)的所述關(guān)鍵幀選擇為所述最類似關(guān)鍵幀。
又如,所述關(guān)鍵幀選擇器242可迭代地比較所述攝像頭姿態(tài)估算250和(所述關(guān)鍵幀214的)一組一或多個(gè)關(guān)鍵幀,直到所述關(guān)鍵幀選擇器242識(shí)別出滿足相對(duì)位置閾值和/或相對(duì)距離閾值的特定關(guān)鍵幀為止。例如,所述關(guān)鍵幀選擇器242可確定第一關(guān)鍵幀(例如,最近生成的關(guān)鍵幀)的所述第一差值和/或所述第二差值。所述關(guān)鍵幀選擇器242可比較所述第一差值和所述相對(duì)位置閾值和/或可比較所述第二差值和所述相對(duì)角度閾值。如果所述第一差值滿足(小于或等于)所述相對(duì)位置閾值,和/或如果所述第二差值滿足(小于或等于)所述相對(duì)角度閾值,則所述關(guān)鍵幀可被識(shí)別為類似于所述攝像頭姿態(tài)估算250(例如,所述最類似),且所述攝像頭姿態(tài)估算250可不與另一關(guān)鍵幀(例如,在所述最近生成的關(guān)鍵幀之前生成的關(guān)鍵幀)比較。如果沒有所述組一或多個(gè)關(guān)鍵幀滿足所述相對(duì)位置閾值和/或所述相對(duì)角度閾值,則不選擇最類似關(guān)鍵幀,且可發(fā)指令給所述關(guān)鍵幀生成器201以基于對(duì)應(yīng)于所述攝像頭姿態(tài)估算250的所述圖像幀來生成新關(guān)鍵幀。
生成所述圖像幀223的所述優(yōu)化攝像頭姿態(tài)估算256可涉及比較所述圖像幀223和存儲(chǔ)在所述存儲(chǔ)器212中的所述特定關(guān)鍵幀,例如具有最類似于與所述圖像幀223的所述攝像頭姿態(tài)估算250的攝像頭姿態(tài)對(duì)應(yīng)的攝像頭姿態(tài)的所述關(guān)鍵幀。在一些實(shí)施例中,所述一或多個(gè)關(guān)鍵幀214的每一關(guān)鍵幀與對(duì)應(yīng)的優(yōu)化攝像頭姿態(tài)估算256相關(guān)聯(lián)。
所述一或多個(gè)比較器220可執(zhí)行所述圖像幀序列204中的特定圖像幀的QVGA分辨率版本和所述存儲(chǔ)器212中的所述最類似關(guān)鍵幀的逐像素比較?;谒鎏囟▓D像幀和所述關(guān)鍵幀的所述比較,所述一或多個(gè)比較器220可生成重疊比209且向所述關(guān)鍵幀生成器210提供所述重疊比209。所述關(guān)鍵幀生成器210可比較所述重疊比209和所述重疊比閾值以確定所述特定圖像幀和所述關(guān)鍵幀是否類似(例如,沒有有待于生成的新關(guān)鍵幀),或所述特定圖像幀和所述關(guān)鍵幀是否不類似(例如,有待于生成另外的關(guān)鍵幀)。例如,當(dāng)所述特定圖像幀和所述關(guān)鍵幀不類似時(shí),所述關(guān)鍵幀生成器210可生成新關(guān)鍵幀211。在一些實(shí)施例中,所述重疊比209和所述重疊比閾值分別對(duì)應(yīng)于圖1的所述重疊比109和所述重疊比閾值131。
所述重疊比209可由所述一或多個(gè)比較器220基于本文所述的扭曲比較來生成。另一選擇為,所述攝像頭姿態(tài)估算250可基于扭曲所述圖像幀以使其成為更類似于更早捕獲的(或生成的)關(guān)鍵幀而生成,如本文中所述。在另一替代性實(shí)施例中,所述重疊比209可基于在所述優(yōu)化攝像頭姿態(tài)估算256和所述關(guān)鍵幀214的對(duì)應(yīng)攝像頭姿態(tài)估算之間的比較而生成。所述重疊比209可按照百分比、像素?cái)?shù)或以一些其它方式來表示。所述一或多個(gè)比較器220可確定像素強(qiáng)度誤差,其中,所述像素強(qiáng)度誤差指示在所述扭曲幀的一或多個(gè)像素和在所述對(duì)的圖像幀中的先前捕獲幀(或所述關(guān)鍵幀114中的一者)的一或多個(gè)像素之間的像素強(qiáng)度的差值。接著所述一或多個(gè)攝像頭姿態(tài)頭估算器208可確定指示在所述扭曲幀的所述一或多個(gè)像素和所述先前捕獲的幀(或所述先前的關(guān)鍵幀)的所述一或多個(gè)像素之間的深度的差值的深度誤差。確定像素強(qiáng)度和深度誤差的示例另外參考圖7來描述。所述像素強(qiáng)度誤差和深度誤差可用于估算所述后來所捕獲圖像幀的所述攝像頭姿態(tài)。
在具體實(shí)施例中,初始攝像頭姿態(tài)信息可由所述處理器206的第一線程生成,且優(yōu)化攝像頭姿態(tài)可由所述處理器206的第二處理線程估算。所述第一處理線程和所述第二處理線程可由所述處理器206并行(例如,同時(shí))執(zhí)行。所述第一處理線程可包含或?qū)?yīng)于處理器206的第一處理核,且所述第二處理核可包含或?qū)?yīng)于所述處理器206的第二處理核。平行處理使所述第二處理線程能夠執(zhí)行操作以優(yōu)化攝像頭姿態(tài)而無需中斷如上所述的攝像頭姿態(tài)的所述初始估算。在說明性實(shí)施例中,所述一或多個(gè)攝像頭姿態(tài)估算器208被配置成由所述處理器206的不同處理線程執(zhí)行。所述不同處理線程可在多個(gè)處理器核中并行地執(zhí)行和/或在單個(gè)處理核中以時(shí)分復(fù)用的方式執(zhí)行。盡管所述第一處理線程和第二處理線程被描述為被包含在單個(gè)處理器(例如,處理器206)中,但在其它實(shí)施方案中,所述第一處理線程可被包含在第一處理器中且所述第二處理線程可被包含在不同于所述第一處理器的第二處理器中。
所述一或多個(gè)攝像頭姿態(tài)估算器208可執(zhí)行圖像幀(例如,所述第一圖像幀221和所述第二圖像幀222)之間或圖像幀(例如,所述第二圖像幀222)和關(guān)鍵幀(例如,所述關(guān)鍵幀214中的一者)之間的比較。例如,所述一或多個(gè)攝像頭姿態(tài)估算器208可逐像素或以某種其它方式比較所述圖像幀序列204中的連續(xù)圖像幀對(duì)。舉例而言,所述一或多個(gè)攝像頭姿態(tài)估算器208可比較所述第一圖像幀221和所述第二圖像幀222。在具體實(shí)施例中,由所述一或多個(gè)攝像頭姿態(tài)估算器208執(zhí)行的所述圖像幀對(duì)圖像幀比較可與地標(biāo)或其它此些特征(例如,邊緣、頂點(diǎn)等)無關(guān)(例如,不基于此些特征),而是可以以每像素為基礎(chǔ)來執(zhí)行。因此,所述一或多個(gè)攝像頭姿態(tài)估算器208可執(zhí)行逐像素比較而不是搜索所述圖像幀序列204的圖像幀中的地標(biāo)。由所述一或多個(gè)攝像頭姿態(tài)估算器208執(zhí)行的所述比較的結(jié)果可作為所述攝像頭姿態(tài)估算250提供給所述一或多個(gè)比較器220。
在操作期間,所述攝像頭姿態(tài)估算器208可生成攝像頭姿態(tài)信息,且所述關(guān)鍵幀生成器210可在適當(dāng)時(shí)生成新關(guān)鍵幀211。所述處理器206可使用此信息相對(duì)于所述圖像幀序列204的所述捕獲實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成點(diǎn)云數(shù)據(jù)216。在具體實(shí)施例中,由所述一或多個(gè)攝像頭姿態(tài)估算器208生成的所述攝像頭姿態(tài)中的每者指示當(dāng)所述圖像幀序列204中的對(duì)應(yīng)圖像幀被捕獲時(shí)所述攝像頭202對(duì)應(yīng)于特定時(shí)間的所述定位的逼近。所述處理器206可從所述攝像頭202接收所述圖像幀序列204中的一或多個(gè)另外的圖像幀,且可基于所述一或多個(gè)另外的圖像幀更新所述點(diǎn)云數(shù)據(jù)216,例如三維點(diǎn)云。在具體實(shí)施例中,更新所述三維點(diǎn)云的速率大體上等于接收所述一或多個(gè)另外的圖像幀的速率。所述第一處理線程可被配置成以足夠速率處理QQVGA圖像幀以在捕獲所述圖像幀序列204期間運(yùn)行。因此,所述點(diǎn)云數(shù)據(jù)216可相對(duì)于所述攝像頭202的所述圖像捕獲操作實(shí)時(shí)或準(zhǔn)實(shí)時(shí)更新。點(diǎn)云數(shù)據(jù)的此實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成的示例另外參考圖3示出。
因此,圖2的所述系統(tǒng)可處理幀的多個(gè)分辨率且選擇性生成關(guān)鍵幀且更新點(diǎn)云數(shù)據(jù)以在點(diǎn)云/3D模型生成裝置執(zhí)行準(zhǔn)實(shí)時(shí)或?qū)崟r(shí)運(yùn)算。在說明性實(shí)施例中,由所述攝像頭202捕獲的所述圖像幀中的每者為高分辨率圖像幀(例如,HD分辨率),存儲(chǔ)在所述存儲(chǔ)器212中的所述關(guān)鍵幀214為中等分辨率幀(例如,QVGA幀),且由所述一或多個(gè)攝像頭姿態(tài)估算器208執(zhí)行的所述圖像幀對(duì)圖像幀比較以低分辨率執(zhí)行(例如,QQVGA分辨率)。在說明性實(shí)施例中,在所述圖像幀序列104中的所述圖像幀的所述QVGA和所述QQVGA版本可基于下采樣、調(diào)整大小或其它技術(shù)來生成。
參考圖3,該圖示出了圖1的所述系統(tǒng)100或圖2的所述系統(tǒng)200的運(yùn)算的說明性實(shí)施例且大體指定為300。在圖3中,圖像捕獲裝置302,例如圖1的所述攝像頭102或圖2的所述攝像頭202沿圍繞物體310,例如圖3中所示出的杯的路徑304(例如,弧線)移動(dòng)。在所述圖像捕獲裝置302沿所述路徑的所述移動(dòng)期間,所述圖像捕獲裝置302被攝像頭姿態(tài)306A、306B、306C、306D、306E和306F定位在圖3中示出的不同位置。應(yīng)注意,圖3中所示的攝像頭姿態(tài)306A到306F的數(shù)量、間距和取向僅用于說明而示出,且不應(yīng)被視為限制性的。例如,可使用更多攝像頭姿態(tài)或更少攝像頭姿態(tài)。
所述路徑304可為任何配置,其基于所述圖像捕獲裝置302如何圍繞所述物體310移動(dòng)。在所述圖像捕獲裝置302沿所述路徑304從與所述攝像頭姿態(tài)306A相關(guān)聯(lián)的位置移動(dòng)到與所述攝像頭姿態(tài)306F相關(guān)聯(lián)的位置時(shí),所述物體310的3D點(diǎn)云可實(shí)時(shí)或準(zhǔn)實(shí)時(shí)生成,如上面參考圖1和圖2所述。例如,在所述攝像頭姿態(tài)306A處,其表示所述圖像捕獲裝置302在沿所述路徑304的第一位置的初始攝像頭姿態(tài),第一局部3D點(diǎn)云310A可在所述圖像捕獲裝置302生成,如在307A處所示。在所述圖像捕獲裝置302繼續(xù)沿著所述路徑304移動(dòng)時(shí),可捕獲另外數(shù)據(jù)且將其用以向所述局部3D點(diǎn)云添加點(diǎn)。例如,當(dāng)所述計(jì)算裝置302已沿所述路徑304移動(dòng)到與所述攝像頭姿態(tài)306D相關(guān)聯(lián)的位置時(shí),可生成更完整的3D點(diǎn)云310D,如在307D處所示。在所述圖像捕獲裝置302到達(dá)與所述攝像頭姿態(tài)306F相關(guān)聯(lián)的位置之后,可生成完整的3D點(diǎn)云310F,如在307F處所示。
因此,圖3示出了使用由所述圖像捕獲裝置302捕獲的圖像的基于所述圖像捕獲裝置302的運(yùn)動(dòng)的3D點(diǎn)云數(shù)據(jù)的準(zhǔn)實(shí)時(shí)或?qū)崟r(shí)生成。所述3D點(diǎn)云數(shù)據(jù)的完整性可取決于所捕獲的所述圖像的數(shù)量和所述圖像捕獲裝置302的所述定位。例如,在生成所述3D點(diǎn)云數(shù)據(jù)期間,如果未收集另外的3D點(diǎn)云數(shù)據(jù),則所述3D點(diǎn)云數(shù)據(jù)可能不完整(例如,在所述圖像捕獲裝置302到達(dá)與所述攝像頭姿態(tài)306F相關(guān)聯(lián)的所述位置之前),這可能引起生成所述物體310的不完整3D表示。舉例而言,如果所述圖像捕獲裝置302并不從所述物體310的所有可見角度捕獲所述物體310的圖像,則所述物體310的3D表示可能不完整。在此情況下,更多圖像可需要由所述圖像捕獲裝置302捕獲,以完成或填充所述物體310的3D表示中的空隙。
參考圖4,該圖示出了關(guān)于圖1的所述系統(tǒng)100或圖2的所述系統(tǒng)200的簡(jiǎn)圖400。在圖4中,水平地示出不同操作層級(jí)或處理線程。圖4包含圖像捕獲/檢索層級(jí)、第一操作模式/處理線程、第二操作模式/處理線程和存儲(chǔ)器運(yùn)算層級(jí)。在說明性實(shí)施例中,所述圖像捕獲/檢索層級(jí)對(duì)應(yīng)于由圖1的所述攝像頭102、所述攝像頭202、所述圖像捕獲裝置302或其組合執(zhí)行的操作。所述第一操作模式/處理線程可對(duì)應(yīng)于由圖1的所述比較器108或由圖2的所述一或多個(gè)比較器220執(zhí)行的操作。所述第二操作模式/處理線程可對(duì)應(yīng)于由圖2的所述一或多個(gè)比較器220執(zhí)行的操作。所述存儲(chǔ)器可對(duì)應(yīng)于圖1的所述存儲(chǔ)器112或?qū)?yīng)于圖2的所述存儲(chǔ)器212。
如圖4中所示,不同操作段可涉及處理具有不同分辨率,例如HD、QQVGA和QVGA分辨率的圖像數(shù)據(jù)。在圖4的所述實(shí)施例中,所述圖像捕獲/檢索層級(jí)接收、生成和/或處理高分辨率(HD)數(shù)據(jù),所述第一操作模式/處理線程接收、生成和/或處理低分辨率(例如,QQVGA)數(shù)據(jù),以及所述第二操作模式/處理線程接收、生成和/或處理中等分辨率(例如,QVGA)數(shù)據(jù)。例如,所述圖像捕獲/檢索層級(jí)可在某一時(shí)間段內(nèi)接收?qǐng)D像幀序列(例如,圖4中的源幀:0,源幀:1,源幀:2,及源幀:3)。所述第一操作模式/處理線程可下采樣所述源幀中的每一者以生成供在攝像頭姿態(tài)估算中使用的對(duì)應(yīng)幀(例如,圖4中的幀:0,幀:1,幀:2,及幀:3)。類似地,所述第二操作模式/處理線程可下采樣所述源幀中的至少一些以生成用于關(guān)鍵幀生成的對(duì)應(yīng)幀(例如,圖4中的幀:1')。另一選擇為,所述第二操作模式/處理線程可使用完整分辨率(例如,HD)的源幀以用于關(guān)鍵幀生成。在具體實(shí)施例中,所述源幀的下采樣版本可從另一處理線程或從另一裝置(例如,提供所述圖像幀序列的裝置)被提供給所述第一操作模式/處理線程、所述第二操作模式/處理線程或這兩者。
當(dāng)?shù)谝粠?例如,圖像幀序列中的第一圖像幀),例如源幀:0被捕獲或接收時(shí),所述第一幀可自動(dòng)被用于生成關(guān)鍵幀,例如關(guān)鍵幀:0。在說明性實(shí)施例中,生成關(guān)鍵幀:0包含制作所述源幀:0的QVGA分辨率副本及在存儲(chǔ)器存儲(chǔ)所述源幀:0的所述QVGA分辨率副本。如所述第一操作模式/處理線程所示,所述源幀中的每者對(duì)應(yīng)于可與前述QQVGA幀比較的QQVGA幀。例如,如圖4中所示,用于幀:1的攝像頭姿態(tài)可基于幀:1與幀:0的比較來確定。類似地,用于幀:2的攝像頭姿態(tài)可基于幀:2與幀:1的比較來生成,用于幀:3的攝像頭姿態(tài)可基于幀:3與幀:2的比較來生成。在說明性實(shí)施例中,所述攝像頭姿態(tài)信息可如參考圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208來生成且可被存儲(chǔ)在所述存儲(chǔ)器中。
所述第二操作模式/處理線程涉及優(yōu)化由所述第一操作模式/處理線程所確定的攝像頭姿態(tài),如參考圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208所述,且確定是否應(yīng)生成新關(guān)鍵幀,如參考圖1的所述關(guān)鍵幀生成器110或圖2的所述關(guān)鍵幀生成器210所述。例如,如圖4中所示,處于QVGA分辨率的幀:1與關(guān)鍵幀:0比較以確定重疊比,例如圖1的所述重疊比109或圖2的所述重疊比209?;趲?與關(guān)鍵幀:0的比較,相對(duì)于幀:1的所述QQVGA版本所確定的所述攝像頭姿態(tài)可被優(yōu)化以形成優(yōu)化的攝像頭姿態(tài)估算,如參考圖2所述。接著所述優(yōu)化攝像頭姿態(tài)估算被用于更新與由所述第一操作模式/處理線程生成的所述特定幀相關(guān)聯(lián)的所述攝像頭姿態(tài)估算。例如,用于幀:1的所述攝像頭姿態(tài)估算被更新以反映所述對(duì)應(yīng)的優(yōu)化攝像頭姿態(tài)估算。另外,當(dāng)所述生成的重疊比和重疊比閾值,例如圖1的所述重疊比131的比較指示幀:1與關(guān)鍵幀:0不類似時(shí),可生成新關(guān)鍵幀且其被存儲(chǔ)在所述存儲(chǔ)器中,如參考圖1和2所述。在圖4所示的所述實(shí)施例中,未生成新關(guān)鍵幀,因?yàn)樗鲋丿B比和所述重疊比閾值的所述比較指示幀:1類似于關(guān)鍵幀:0。
參看圖5,該圖示出了示出參考圖4所述的操作的延續(xù)部分的簡(jiǎn)圖500。在圖5中,已從所述圖像捕獲裝置接收到另外的HD源幀。例如,如圖5中所示,已接收到源幀:4、源幀:5和源幀:6。在所述第一操作模式/處理線程中,圖像幀的連續(xù)對(duì)被比較以生成初始攝像頭姿態(tài)信息。所選的QVGA處理由所述第二操作模式/處理線程執(zhí)行。例如,在圖5中,幀:2與幀:1比較以生成用于幀:2的初始攝像頭姿態(tài)。然而,幀:2在所述QVGA分辨率進(jìn)行比較,因?yàn)樵趫D4中示出的在幀:1的所述QVGA分辨率和關(guān)鍵幀:0的所述QVGA分辨率之間的所述比較由于所述更高分辨率要花費(fèi)另外的處理時(shí)間。因此,所述第二處理線程可能不能夠比較新幀直到所述第一比較完成為止。因此,在圖5的所述示例中,所述第二操作模式/處理線程在處理幀:1之后處理幀:3而不是幀:2。如參考圖4所述,關(guān)鍵幀:0可與幀:3比較以確定重疊比和所述重疊比是否滿足或并不滿足所述重疊比閾值。當(dāng)所述比較指示關(guān)鍵幀:0和幀:3不類似時(shí),可生成新關(guān)鍵幀。例如,如圖5中所示,幀:3充分不同于關(guān)鍵幀0,因此基于幀:3生成表示關(guān)鍵幀:1的新關(guān)鍵幀。與幀:3相關(guān)聯(lián)的所述攝像頭姿態(tài)估算可被更新以反映與幀:3相關(guān)聯(lián)的所述優(yōu)化攝像頭姿態(tài)估算,以供在所述第一操作模式/處理線程中的將來比較中使用。
參看圖6,該圖示出了示出參考圖4和5所述的操作的延續(xù)部分的簡(jiǎn)圖600。在圖6中,已從所述圖像捕獲裝置接收到另外的HD源幀。例如,如圖6中所示,已接收到源幀:n、源幀:n+1、源幀n+2和源幀:n+3,其中,n可為任何非負(fù)整數(shù)。在所述第一操作模式/處理線程中,圖像幀的連續(xù)對(duì)被比較以生成初始攝像頭姿態(tài)信息。所選的QVGA處理由所述第二操作模式/處理線程執(zhí)行。例如,在圖6中,幀:n+1與幀:n比較以生成用于幀:n+1的初始攝像頭姿態(tài)。如參考圖4和5所述,關(guān)鍵幀:0至關(guān)鍵幀:m可與幀:n+1比較以確定與幀:n+1相關(guān)聯(lián)的重疊比,其中,m為非負(fù)整數(shù)。例如,關(guān)鍵幀:0可與幀:n+1比較以確定第一重疊比,關(guān)鍵幀:1可與幀:n+1比較以確定第二重疊比,以及關(guān)鍵幀:m可與幀:n+1比較以確定第三重疊比。所述第二操作模式/處理線程被配置成基于在所述第一操作模式/處理線程中估算的所述攝像頭姿態(tài)來確定從關(guān)鍵幀:0到關(guān)鍵幀m的最類似關(guān)鍵幀。在特定實(shí)施方案中,所述最類似關(guān)鍵幀基于從所述第一重疊比到第三重疊比之中識(shí)別的最高重疊比值來選擇。如果所述最高重疊比值并不滿足所述重疊比閾值,則可生成新關(guān)鍵幀。例如,如圖5中所示,幀:n+1充分不同于關(guān)鍵幀:0至關(guān)鍵幀:m(使得所述重疊比并不滿足所述重疊比閾值),因此表示關(guān)鍵幀:m+1的新關(guān)鍵幀基于幀:n+1來生成。與幀:n+1相關(guān)聯(lián)的所述攝像頭姿態(tài)估算可被更新以反映與幀:n+1相關(guān)聯(lián)的所述優(yōu)化攝像頭姿態(tài)估算,以供在所述第一操作模式/處理線程中的將來比較中使用。
參看圖7,該圖示出了執(zhí)行包含確定誤幀以作為估算攝像頭姿態(tài)的一部分的操作的方法的具體實(shí)施例并且其大體被指定為700。例如,所述操作可由圖2的所述一或多個(gè)比較器220和/或圖4至6的所述第一處理線程來執(zhí)行。在圖7的所述實(shí)施例中,參考圖像702與“當(dāng)前”圖像704比較。所述“當(dāng)前”圖像704可為攝像頭姿態(tài)信息被估算的所述圖像。因此,所述“當(dāng)前”圖像704可對(duì)應(yīng)于最近所捕獲的圖像幀。所述參考圖像702可對(duì)應(yīng)于先前所捕獲的圖像幀或?qū)?yīng)于基于先前所捕獲圖像幀生成/存儲(chǔ)的關(guān)鍵幀。舉例而言,參看圖5,所述當(dāng)前圖像704可對(duì)應(yīng)于幀:3,以及所述參考圖像702可對(duì)應(yīng)于幀:2或關(guān)鍵幀:0。又如,所述當(dāng)前圖像704可對(duì)應(yīng)于幀:6以及所述參考圖像702可對(duì)應(yīng)于幀:5或關(guān)鍵幀:1。
如圖7中示出,所述當(dāng)前圖像704可為被扭曲以生成扭曲當(dāng)前圖像706。所述當(dāng)前圖像704可被扭曲,使得在所述扭曲過程完成之后,所述扭曲當(dāng)前圖像706密切接近所述參考圖像702。所述參考圖像702可與所述扭曲當(dāng)前圖像706比較。例如,可在所述參考圖像702和所述扭曲當(dāng)前圖像706之間執(zhí)行減法運(yùn)算以生成誤差圖像708。所述誤差圖像708指示在所述參考圖像702和所述扭曲當(dāng)前圖像706之間的像素強(qiáng)度和/或深度誤差。所述像素強(qiáng)度和所述深度誤差可被用在可由以下方程式表示的成本函數(shù)C中:
在上述方程式中,I表示對(duì)應(yīng)于特定圖像幀的像素強(qiáng)度圖像。所述變量P表示來自對(duì)應(yīng)于所述特定圖像幀的深度圖像的所測(cè)量的3D點(diǎn)。所述變量n表示來自所述深度圖像的正常值(例如,正常值)。所述函數(shù)π()表示攝像頭投影模型。所述變量ε表示在歐幾里德se(3)空間中的6x1矢量。所述函數(shù)T(ε)表示從se(3)到SE(3)空間的變換。所述函數(shù)向特定點(diǎn)應(yīng)用所述SE(3)變換。
所述成本函數(shù)C的所述結(jié)果可由圖2的所述一或多個(gè)比較器220與成本閾值比較。如果所述結(jié)果滿足所述成本閾值,則所述一或多個(gè)攝像頭姿態(tài)估算器208可生成攝像頭姿態(tài)估算并使所述攝像頭姿態(tài)估算與所述當(dāng)前圖像704相關(guān)聯(lián)。如果所述結(jié)果并不滿足所述成本閾值,則所述當(dāng)前圖像704被再次扭曲以生成修改的扭曲當(dāng)前圖像706以減小所述像素強(qiáng)度和/或深度誤差。
參考圖8,該圖示出了用于基于圖像幀序列生成新關(guān)鍵幀的方法800。在說明性實(shí)施例中,所述方法800可由圖1的所述處理器106或圖2的所述處理器206執(zhí)行。
所述方法800包含在802接收?qǐng)D像幀序列的第一圖像幀。例如,所述圖像幀序列可由圖像捕獲裝置,例如圖1的所述攝像頭102、圖2的所述攝像頭202或圖3的所述圖像捕獲裝置302捕獲。所述方法800另外包含在804確定在所述第一圖像幀和關(guān)鍵幀之間的重疊比。所述重疊比的所述確定基于所述第一圖像幀的第一像素值和所述關(guān)鍵幀的第二像素值的逐像素比較。例如,所述重疊比的所述確定可由圖1的所述比較器108或圖2的所述一或多個(gè)比較器220執(zhí)行。所述重疊比可與在所述第一圖像幀和所述關(guān)鍵幀之間類似的像素的比率、值或百分比相關(guān)聯(lián)。另一選擇為,所述重疊比可與在所述第一圖像和所述關(guān)鍵幀圖像之間不類似的像素的比率、值或百分比相關(guān)聯(lián)。
所述方法800也包含在806比較所述重疊比和重疊比閾值。例如,所述比較可由圖1的所述關(guān)鍵幀生成器110或圖2的所述關(guān)鍵幀生成器210執(zhí)行。所述方法800另外包含在808基于不滿足所述重疊比閾值的所述重疊比使用所述第一圖像幀生成新關(guān)鍵幀。例如,當(dāng)所述重疊比閾值對(duì)應(yīng)于在所述第一圖像幀和所述關(guān)鍵幀之間是類似的像素的閾值比、閾值或閾值百分比時(shí),當(dāng)所述比較指示所述重疊比大于或等于所述重疊比閾值時(shí),可滿足所述重疊比閾值。又如,當(dāng)所述重疊比閾值對(duì)應(yīng)于在所述第一圖像幀和所述關(guān)鍵幀之間是不類似的像素的閾值比、閾值或閾值百分比時(shí),當(dāng)所述比較指示所述重疊比小于或等于所述重疊比閾值時(shí),可滿足所述重疊比閾值。所述新關(guān)鍵幀可為存儲(chǔ)在圖1的所述存儲(chǔ)器112中的所述新關(guān)鍵幀111或存儲(chǔ)在圖2的所述存儲(chǔ)器212中的所述新關(guān)鍵幀211。因此,圖8的所述方法800可使得能夠選擇性生成關(guān)鍵幀,從而允許所生成的關(guān)鍵幀的數(shù)量少于所捕獲的圖像幀的數(shù)量。通過生成更少的關(guān)鍵幀,可更快執(zhí)行點(diǎn)云數(shù)據(jù)的生成和其它處理操作(例如,相對(duì)于捕獲圖像幀的速度為實(shí)時(shí)或準(zhǔn)實(shí)時(shí)的)。
參考圖9,該圖示出了用于優(yōu)化圖像幀的攝像頭姿態(tài)估算的方法900。在說明性實(shí)施例中,所述方法900可由圖1的所述處理器106或圖2的所述處理器206執(zhí)行。
所述方法900包含在902接收第一圖像幀和第二圖像幀。所述第一圖像幀和第二圖像幀可從圖像捕獲裝置,例如圖1的所述攝像頭102、圖2的所述攝像頭202或圖3的所述圖像捕獲裝置302接收。所述方法900包含在904使用低分辨率(例如,QQVGA分辨率)的所述第一圖像幀計(jì)算所述第二圖像幀的攝像頭姿態(tài)估算。生成所述攝像頭姿態(tài)估算可由圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208執(zhí)行。所述攝像頭姿態(tài)估算可包含或可基于可由圖2的所述一或多個(gè)比較器220執(zhí)行的所述第一圖像幀和所述第二圖像幀的比較所產(chǎn)生的信息。所述方法800另外包含在806計(jì)算所述第一圖像幀和關(guān)鍵幀之間的重疊比。所述重疊比可在圖1的所述比較器108或圖2的所述一或多個(gè)比較器220計(jì)算。
所述方法900也包含在908確定所述重疊比是否大于重疊比閾值。所述確定可由圖1的所述關(guān)鍵幀生成器110或圖2的所述關(guān)鍵幀生成器210執(zhí)行。如果所述重疊比大于所述重疊比閾值(例如,所述第一幀和所述關(guān)鍵幀是相對(duì)類似的),則所述方法900包含在910使用中等分辨率(例如,QVGA分辨率)的所述關(guān)鍵幀優(yōu)化所述第二圖像幀的所述攝像頭姿態(tài)估算。在優(yōu)化所述第二圖像幀的所述攝像頭姿態(tài)估算之后,所述方法900用一組新圖像幀重復(fù),而無需基于所述第一圖像幀生成新關(guān)鍵幀。在具體實(shí)施例中,所述組新圖像幀包含所述第二圖像幀和在所述第二圖像幀之后的第三圖像幀。
如果所述重疊比小于所述重疊比閾值,則所述方法900包含在912使用中等分辨率(例如,QVGA分辨率)的所述第一圖像幀優(yōu)化所述第二圖像幀的所述攝像頭姿態(tài)估算。在一些實(shí)施方案中,當(dāng)在908確定所述重疊比等于所述重疊比閾值時(shí),所述方法可前進(jìn)到910。在其它實(shí)施方案中,當(dāng)在908確定所述重疊比等于所述重疊比閾值時(shí),所述方法可前進(jìn)到912。所述方法900另外包含在914基于所述第一圖像幀生成新關(guān)鍵幀且將所述攝像頭姿態(tài)估算存儲(chǔ)到存儲(chǔ)器,例如圖1的所述存儲(chǔ)器112或圖2的所述存儲(chǔ)器212。在生成所述新關(guān)鍵幀之后,所述方法900可用一組新圖像幀重復(fù)。在具體實(shí)施例中,所述組新圖像幀包含所述第二圖像幀和在所述第二圖像幀之后的第三圖像幀。當(dāng)沒有接收到另外的圖像幀時(shí),所述方法900可終止。
參考圖10,該圖示出了用于設(shè)置特定圖像幀的攝像頭姿態(tài)估算的方法1000。在說明性實(shí)施例中,所述方法1000可由圖1的所述處理器106或圖2的所述處理器206執(zhí)行。
所述方法1000包含在1002計(jì)算第一圖像幀的像素的子集的每個(gè)像素的正常值。所述每個(gè)像素的正常值為指示垂直于對(duì)應(yīng)于每個(gè)像素的相切平面的方向的矢量。像素的所述子集可包含所述第一圖像幀的下采樣或調(diào)整大小副本,例如具有高分辨率(例如,HD)的所述第一圖像幀的低分辨率(例如,QQVGA分辨率)副本。所述方法1000也包含在1004扭曲所述第一圖像幀且比較所得扭曲圖像幀的對(duì)應(yīng)像素和第二圖像幀(或關(guān)鍵幀)。例如,所述第一圖像幀可對(duì)應(yīng)于圖7的所述“當(dāng)前”圖像704,所述第二圖像幀可對(duì)應(yīng)于圖7的所述參考圖像702,以及所述扭曲圖像幀可對(duì)應(yīng)于圖7的所述扭曲當(dāng)前圖像706。所述方法1000另外包含在1006計(jì)算在扭曲第一圖像幀和所述第二圖像幀(或關(guān)鍵幀)之間的像素強(qiáng)度誤差和深度誤差。所述像素強(qiáng)度誤差或所述深度誤差可由圖7的所述誤差圖像708描繪。
所述方法1000另外包含在1008基于所述像素強(qiáng)度誤差和所述深度誤差計(jì)算成本函數(shù)。所述成本函數(shù)可由本文關(guān)于圖7所述的方程式表示。所述方法1000另外包含在1010確定所述成本函數(shù)的所述結(jié)果是否滿足成本閾值。如果所述結(jié)果并不滿足所述成本閾值,則所述方法1000返回1004且所述第一圖像幀被再次扭曲。如果所述結(jié)果滿足所述成本閾值,則所述攝像頭姿態(tài)估算在1012設(shè)置。
參考圖11,該圖示出了用于估算攝像頭姿態(tài)和估算優(yōu)化攝像頭姿態(tài)的方法1100。所述方法1100包含在1102檢索圖像幀序列的第一圖像幀。所述圖像幀序列可用圖像捕獲裝置,例如所述攝像頭102、所述攝像頭202或所述圖像捕獲裝置302捕獲。所述方法1100也包含在1104通過比較所述第一圖像幀和第二圖像幀來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài),其中,所述第二圖像幀在所述圖像幀序列中在所述第一圖像幀之前。在一個(gè)實(shí)施例中,估算所述攝像頭姿態(tài)可由圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208、圖4至6的所述第一操作模式/處理線程或其任何組合執(zhí)行。所述方法1100另外包含在1106通過比較所述第一圖像幀和關(guān)鍵幀來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài)。所述關(guān)鍵幀可對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。在一個(gè)實(shí)施例中,估算所述優(yōu)化攝像頭姿態(tài)可由圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208、圖4至6的所述第二操作模式/處理線程或其任何組合執(zhí)行。
圖8的所述方法800、圖9的所述方法900、圖10的所述方法1000、圖11的所述方法1100或其組合可通過現(xiàn)場(chǎng)可編程門陣列(FPGA)裝置、專用集成電路(ASIC)、處理單元例如中央處理單元(CPU)、數(shù)字信號(hào)處理器(DSP)、控制器、另一硬件裝置、固件裝置或其任何組合來實(shí)施。例如,圖8的所述方法800、圖9的所述方法900、圖10的所述方法1000和圖11的所述方法1100中的一或多個(gè)可由執(zhí)行指令的處理器執(zhí)行,如關(guān)于圖12所述。
參考圖12,電子裝置,例如無線通信裝置的特定說明性實(shí)施例的框圖被描繪和大體指定為1200。所述裝置1200包含耦合至存儲(chǔ)器1232的處理器,例如數(shù)字信號(hào)處理器(DSP)1210。所述處理器可包含或?qū)?yīng)于圖1的所述處理器106或圖2的所述處理器206。所述存儲(chǔ)器可包含或?qū)?yīng)于圖1的所述存儲(chǔ)器112和/或圖2的所述存儲(chǔ)器212。攝像頭1262可經(jīng)由攝像頭控制器1260耦合至所述處理器1210。在說明性實(shí)施例中,所述攝像頭1262對(duì)應(yīng)于圖1的所述攝像頭102、對(duì)應(yīng)于圖2的所述攝像頭202或?qū)?yīng)于圖3的所述圖像捕獲裝置302。一或多個(gè)比較器1250可使用所述處理器1210內(nèi)的一或多個(gè)硬件裝置、可由所述處理器1210執(zhí)行的軟件指令或其組合實(shí)現(xiàn)。在說明性實(shí)施例中,所述一或多個(gè)比較器1250可對(duì)應(yīng)于圖1的所述比較器108、可對(duì)應(yīng)于圖2的所述一或多個(gè)比較器208和/或可根據(jù)圖6至9的所述方法來運(yùn)行。所述一或多個(gè)比較器1250可提供比較結(jié)果(例如,在多個(gè)圖像幀之間的重疊比),其由所述處理器1210使用攝像頭姿態(tài)估算邏輯1252和/或關(guān)鍵幀生成邏輯1254進(jìn)行分析或處理。
所述存儲(chǔ)器1232可為存儲(chǔ)執(zhí)行參考圖1至11所述的一或多個(gè)操作的全部或一部分的計(jì)算機(jī)可執(zhí)行指令1256的非暫時(shí)性或非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)。例如,所述指令1256可包含指令,其在由所述處理器1210執(zhí)行時(shí),致使所述處理器1210接收?qǐng)D像幀序列的第一圖像幀、確定在所述第一圖像幀和關(guān)鍵幀之間的重疊比、比較所述重疊比和重疊比閾值并基于所述重疊比并不滿足閾值使用所述第一圖像幀生成新關(guān)鍵幀,其中,所述重疊比基于所述第一圖像幀的第一像素值和所述關(guān)鍵幀的第二像素值的逐像素比較。如果所述重疊比滿足所述閾值,則可不生成新關(guān)鍵幀。如果生成新關(guān)鍵幀,則所述新關(guān)鍵幀可作為關(guān)鍵幀1258被存儲(chǔ)到所述存儲(chǔ)器1232。由所述攝像頭姿態(tài)估算邏輯1252生成的攝像頭姿態(tài)估算可被存儲(chǔ)為攝像頭姿態(tài)估算1259。
根據(jù)所公開的實(shí)施例,公開了計(jì)算機(jī)可讀存儲(chǔ)裝置,例如圖1的所述存儲(chǔ)器112、圖2的所述存儲(chǔ)器212或圖12的所述存儲(chǔ)器1232。所述計(jì)算機(jī)可讀存儲(chǔ)裝置包含指令,其在由處理器,例如圖1的所述處理器106、圖2的所述處理器206或圖12的所述處理器1210執(zhí)行時(shí),致使所述處理器從圖像捕獲裝置接收?qǐng)D像幀序列的第一圖像幀。所述圖像幀序列可包含或?qū)?yīng)于圖1的所述圖像幀序列104或圖2的所述圖像幀序列204。所述指令也致使所述處理器通過比較所述第一圖像幀和第二圖像幀來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài),其中,所述第二圖像幀在所述圖像幀序列中在所述第一圖像幀之前。所述攝像頭姿態(tài)可包含或?qū)?yīng)于圖2的所述攝像頭姿態(tài)估算250。所述指令另外致使所述處理器通過比較所述第一圖像幀和關(guān)鍵幀來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài),其中,所述關(guān)鍵幀對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。所述優(yōu)化攝像頭姿態(tài)可包含或?qū)?yīng)于圖2的所述優(yōu)化攝像頭姿態(tài)估算256。
圖12也示出被耦合至所述數(shù)字信號(hào)處理器1210和耦合至顯示器1228的顯示控制器1226。編解碼器(CODEC)1234也可以被耦合至所述數(shù)字信號(hào)處理器1210。揚(yáng)聲器1236和麥克風(fēng)1238可以被耦合至所述編解碼器1234。
圖12還指示無線接口1240可以被耦合至所述數(shù)字信號(hào)處理器1210和耦合至天線1242。在具體實(shí)施例中,所述處理器1210、所述顯示控制器1226、所述攝像頭控制器1260、所述存儲(chǔ)器1232、所述編解碼器1234和所述無線接口1240被包含在系統(tǒng)級(jí)封裝或片上系統(tǒng)裝置1222中。在具體實(shí)施例中,輸入裝置1230和電源1244被耦合至片上系統(tǒng)裝置1222。此外,在具體實(shí)施例中,如圖12中所示,所述顯示器1228、所述輸入裝置1230、所述揚(yáng)聲器1236、所述麥克風(fēng)1238、所述天線1242、所述攝像頭1262和所述電源1244在所述片上系統(tǒng)裝置1222外部。然而,所述顯示器1228、所述輸入裝置1230、所述揚(yáng)聲器1236、所述麥克風(fēng)1238、所述天線1242、所述攝像頭1262和所述電源1244中的每者可以被耦合至所述片上系統(tǒng)裝置1222的組件,例如接口或控制器。
結(jié)合所述實(shí)施例,公開了可包含用于接收?qǐng)D像幀序列的第一圖像幀的裝置的系統(tǒng)。所述用于接收?qǐng)D像的裝置可包含圖1的所述攝像頭102、圖2的所述攝像頭202、圖3的所述圖像捕獲裝置302、圖12的所述攝像頭1262、被配置成接收所述圖像幀序列的所述第一圖像幀的一或多個(gè)其它裝置或電路或其任何組合。所述系統(tǒng)也可包含用于生成新關(guān)鍵幀的裝置。生成所述新關(guān)鍵幀包含確定在所述第一圖像幀和關(guān)鍵幀之間的重疊比、比較所述重疊比和重疊比閾值并基于所述重疊比并不滿足所述重疊比閾值使用所述第一圖像幀生成新關(guān)鍵幀,其中,所述重疊比基于所述第一圖像幀的第一像素值和所述關(guān)鍵幀的第二像素值的逐像素比較。例如,所述用于生成所述新關(guān)鍵幀的裝置可包含圖1的所述處理器106、圖1的所述關(guān)鍵幀生成器110、圖2的所述處理器206、圖2的所述關(guān)鍵幀生成器210、圖12的所述處理器1210(或其組件,例如所述關(guān)鍵幀生成邏輯1254)、被配置成確定在所述第一圖像幀和所述關(guān)鍵幀之間的重疊比的一或多個(gè)其它器件或電路或其任何組合。
結(jié)合所述實(shí)施例,設(shè)備可包含用于從圖像捕獲裝置接收?qǐng)D像幀序列的第一圖像幀的裝置。所述用于接收的裝置可包含圖1的所述比較器108、圖1的所述關(guān)鍵幀生成器110、圖2的所述圖像幀緩存器207、圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208、圖12的所述攝像頭控制器1260、被配置成接收所述圖像幀序列的圖像幀的一或多個(gè)其它結(jié)構(gòu)、裝置或電路或其任何組合。所述設(shè)備也可包含用于基于所述第一圖像幀和第二圖像幀的第一比較來估算對(duì)應(yīng)于所述第一圖像幀的攝像頭姿態(tài)的裝置,其中,所述第二圖像幀在所述圖像幀序列中的所述第一圖像幀之前。所述用于估算所述攝像頭姿態(tài)的裝置可包含圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208、圖12的所述攝像頭姿態(tài)估算邏輯單元1252、被配置成估算攝像頭姿態(tài)的一或多個(gè)其它結(jié)構(gòu)、裝置或電路或其任何組合。
所述設(shè)備可另外包含用于基于所述第一圖像幀和關(guān)鍵幀的第二比較來估算對(duì)應(yīng)于所述第一圖像幀的優(yōu)化攝像頭姿態(tài)的裝置,其中,所述關(guān)鍵幀對(duì)應(yīng)于在所述圖像幀序列中在所述第二圖像幀之前的特定圖像幀。所述用于估算所述優(yōu)化攝像頭姿態(tài)的裝置可包含圖2的所述一或多個(gè)攝像頭姿態(tài)估算器208、圖12的所述攝像頭姿態(tài)估算邏輯單元1252、被配置成估算攝像頭姿態(tài)的一或多個(gè)其它結(jié)構(gòu)、裝置或電路或其任何組合。
本領(lǐng)域的技術(shù)人員應(yīng)另外了解,結(jié)合本文中所公開的實(shí)施例所述的各種說明性邏輯塊、配置、模塊、電路和算法步驟可被實(shí)現(xiàn)為電子硬件、由處理器執(zhí)行的計(jì)算機(jī)軟件或兩者的組合。上文已大體上就各種說明性組件、塊、配置、模塊、電路和步驟的功能對(duì)它們加以描述。此功能被實(shí)現(xiàn)為硬件還是處理器可執(zhí)行指令取決于特定應(yīng)用和強(qiáng)加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。本領(lǐng)域的技術(shù)人員可針對(duì)每一特定應(yīng)用以不同方式實(shí)現(xiàn)所述的功能,但此些實(shí)施方案決策不應(yīng)被解釋為引起偏離本公開的范圍。
結(jié)合本文中所公開的實(shí)施例所述的方法或算法的步驟可直接在硬件中、由處理器執(zhí)行的軟件模塊中或所述兩個(gè)的組合中實(shí)現(xiàn)。軟件模塊可駐留在隨機(jī)存取存儲(chǔ)器(RAM)、閃存、只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PROM)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、寄存器、硬盤、可移動(dòng)磁盤、緊湊光盤只讀存儲(chǔ)器(CD-ROM)或本領(lǐng)域中已知的任何其它形式的非暫時(shí)性存儲(chǔ)介質(zhì)中。示例性存儲(chǔ)介質(zhì)被耦合至所述處理器,使得所述處理器可以從所述存儲(chǔ)介質(zhì)讀取信息和將信息寫入所述存儲(chǔ)介質(zhì)。在替代方案中,所述存儲(chǔ)介質(zhì)可與所述處理器整合。所述處理器和所述存儲(chǔ)介質(zhì)可駐留在專用集成電路(ASIC)中。所述ASIC可駐留在計(jì)算裝置或用戶終端中。在替代方案中,所述處理器和所述存儲(chǔ)介質(zhì)可作為分立組件駐留在計(jì)算裝置或用戶終端中。
提供對(duì)所公開的實(shí)施例的先前描述以使得本領(lǐng)域的技術(shù)人員能夠制造或使用所公開的實(shí)施例。對(duì)這些實(shí)施例的各種修改對(duì)于本領(lǐng)域的技術(shù)人員將顯而易見,且可在不脫離本公開的范圍的情況下將本文中所定義的原理應(yīng)用于其它實(shí)施例。因此,本公開并不意圖局限于本文中所示出的實(shí)施例,而是將被賦予本公開與如由所附權(quán)利要求書定義的所述原理和新穎特征一致的可能的最廣范圍。