本公開涉及計算機視覺技術(shù)領(lǐng)域,尤其涉及一種相機重定位方法及裝置。
背景技術(shù):
近年來,除了通過GPS(Global Position System,全球定位系統(tǒng))、基站、藍(lán)牙和Wi-Fi(Wireless Fidelity,無線保真技術(shù))進行定位外,越來越多的定位系統(tǒng)使用了視覺傳感器。視覺傳感器是指利用光學(xué)元件和成像裝置獲取外部環(huán)境圖像信息的儀器。視覺傳感器獲取的視覺圖像中包含底層的顏色、紋理特征以及高層的物體、場景特征,且視覺傳感器價格低廉、使用廣泛,越來越多地受到定位系統(tǒng)的青睞。近年來,借助計算機視覺技術(shù)的高速發(fā)展,基于視覺圖像的定位技術(shù)得到了廣泛的應(yīng)用。
相機重定位是指通過對相機拍攝的圖像進行分析,計算相機在圖像拍攝場景坐標(biāo)系的位移和姿態(tài)。圖1是相關(guān)技術(shù)示出的相機重定位的坐標(biāo)系示意圖。如圖1所示,相機的位移可以通過向量r=[X,Y,Z]來表示,相機的姿態(tài)可以通過xyz坐標(biāo)系(全局坐標(biāo)系)與x’y’z’坐標(biāo)系(局部坐標(biāo)系)之間的關(guān)系來表示。相關(guān)技術(shù)中,主要的相機重定位方法可以分為基于點特征的相機重定位方法和基于全圖特征的相機重定位方法?;邳c特征的相機重定位方法通過像素點特征來進行點坐標(biāo)匹配,例如通過卷積神經(jīng)網(wǎng)絡(luò)進行點匹配,從而計算相機的姿態(tài)。基于全圖特征的相機重定位方法通過將全圖特征映射到高維特征空間來獲得更好的對于相機位移、姿態(tài)的連續(xù)映射。利用卷積神經(jīng)網(wǎng)絡(luò)也可以不進行點匹配,直接處理圖像回歸得到相機的姿態(tài)。這類基于神經(jīng)網(wǎng)絡(luò)的相機重定位方法就是基于全圖特征的相機重定位方法。
相關(guān)技術(shù)中,基于神經(jīng)網(wǎng)絡(luò)實現(xiàn)端到端學(xué)習(xí)的相機重定位方法可以包括PoseNet網(wǎng)絡(luò)結(jié)構(gòu)(例如GoogLeNet、VGG-16網(wǎng)絡(luò)結(jié)構(gòu)等),即可以通過在輸入端讀取一張相機拍攝的圖像,而在輸出端直接輸出相機的位移和姿態(tài)。圖2是相關(guān)技術(shù)中的GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)的示例性的框圖。圖3是相關(guān)技術(shù)中的VGG-16網(wǎng)絡(luò)結(jié)構(gòu)的示例性的框圖。如圖2和圖3所示,GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)和VGG-16網(wǎng)絡(luò)結(jié)構(gòu)的每一層均以前一層的輸出為輸入,最終的表示位移和姿態(tài)的向量由同一個全連接層生成并輸出。
相機重定位方法可以認(rèn)為是解決相機的位移預(yù)測和相機的姿態(tài)預(yù)測兩個子任務(wù)。通過計算不同圖像的位移和姿態(tài),例如計算不同圖像的3個位移變量和3個姿態(tài)變量之間的相關(guān)程度,可以發(fā)現(xiàn)兩組變量(一組為位移變量,另一組為姿態(tài)變量)中,組內(nèi)相關(guān)性要顯著高于組間相關(guān)性。由此可以說明,盡管相機的位移和姿態(tài)之間是有關(guān)聯(lián)的,但是位移和姿態(tài)之間也是有顯著的差異性的。采用同一個全連接層同時預(yù)測相機的位移和姿態(tài),這使得在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,位移和姿態(tài)兩組變量的訓(xùn)練效果的均衡變得非常重要,提高其中之一的預(yù)測效果往往使得另一者的效果降低。
技術(shù)實現(xiàn)要素:
有鑒于此,本公開提出了一種相機重定位方法及裝置,以準(zhǔn)確地預(yù)測相機的位移和姿態(tài)。
根據(jù)本公開的第一方面,提供了一種相機重定位方法,所述方法基于卷積神經(jīng)網(wǎng)絡(luò),所述卷積神經(jīng)網(wǎng)絡(luò)包括共享層、第一專門層和第二專門層,所述方法包括:
通過所述共享層從相機獲取的圖像中提取圖像特征;
通過所述第一專門層根據(jù)所述圖像特征確定并輸出所述相機在第一坐標(biāo)系中的位移;
通過所述第二專門層根據(jù)所述圖像特征確定并輸出所述相機在所述第一坐標(biāo)系中的姿態(tài)。
對于所述的相機重定位方法,在一種可能的實現(xiàn)方式中,所述共享層包括圖像特征卷積層、圖像特征池化層和圖像特征生成模塊中的至少一項。
對于所述的相機重定位方法,在一種可能的實現(xiàn)方式中,所述第一專門層包括位移卷積層、位移池化層和位移特征生成模塊中的至少一項,所述第一專門層還包括位移全連接層。
對于所述的相機重定位方法,在一種可能的實現(xiàn)方式中,所述第二專門層包括姿態(tài)卷積層、姿態(tài)池化層和姿態(tài)特征生成模塊中的至少一項,所述第二專門層還包括姿態(tài)全連接層。
根據(jù)本公開的第二方面,提供了一種相機重定位裝置,所述裝置基于卷積神經(jīng)網(wǎng)絡(luò),所述卷積神經(jīng)網(wǎng)絡(luò)包括共享層、第一專門層和第二專門層,所述裝置包括:
圖像特征提取模塊,用于通過所述共享層從相機獲取的圖像中提取圖像特征;
位移確定模塊,用于通過所述第一專門層根據(jù)所述圖像特征確定并輸出所述相機在第一坐標(biāo)系中的位移;
姿態(tài)確定模塊,用于通過所述第二專門層根據(jù)所述圖像特征確定并輸出所述相機在所述第一坐標(biāo)系中的姿態(tài)。
對于所述的相機重定位裝置,在一種可能的實現(xiàn)方式中,所述共享層包括圖像特征卷積層、圖像特征池化層和圖像特征生成模塊中的至少一項。
對于所述的相機重定位裝置,在一種可能的實現(xiàn)方式中,所述第一專門層包括位移卷積層、位移池化層和位移特征生成模塊中的至少一項,所述第一專門層還包括位移全連接層。
對于所述的相機重定位裝置,在一種可能的實現(xiàn)方式中,所述第二專門層包括姿態(tài)卷積層、姿態(tài)池化層和姿態(tài)特征生成模塊中的至少一項,所述第二專門層還包括姿態(tài)全連接層。
根據(jù)本公開的第三方面,提供了一種相機重定位裝置,所述裝置基于卷積神經(jīng)網(wǎng)絡(luò),所述卷積神經(jīng)網(wǎng)絡(luò)包括共享層、第一專門層和第二專門層,所述裝置包括:
處理器;
用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:
通過所述共享層從相機獲取的圖像中提取圖像特征;
通過所述第一專門層根據(jù)所述圖像特征確定并輸出所述相機在第一坐標(biāo)系中的位移;
通過所述第二專門層根據(jù)所述圖像特征確定并輸出所述相機在所述第一坐標(biāo)系中的姿態(tài)。
根據(jù)本公開的第四方面,提供了一種非易失性計算機可讀存儲介質(zhì),當(dāng)所述存儲介質(zhì)中的指令由終端和/或服務(wù)器的處理器執(zhí)行時,使得終端和/或服務(wù)器能夠執(zhí)行一種相機重定位方法,所述方法基于卷積神經(jīng)網(wǎng)絡(luò),所述卷積神經(jīng)網(wǎng)絡(luò)包括共享層、第一專門層和第二專門層,所述方法包括:
通過所述共享層從相機獲取的圖像中提取圖像特征;
通過所述第一專門層根據(jù)所述圖像特征確定并輸出所述相機在第一坐標(biāo)系中的位移;
通過所述第二專門層根據(jù)所述圖像特征確定并輸出所述相機在所述第一坐標(biāo)系中的姿態(tài)。
本公開的相機重定位方法及裝置,通過共享層從相機獲取的圖像中提取圖像特征,通過第一專門層根據(jù)圖像特征確定并輸出相機在第一坐標(biāo)系中的位移,通過第二專門層根據(jù)圖像特征確定并輸出相機在第一坐標(biāo)系中的姿態(tài),由此通過對神經(jīng)網(wǎng)絡(luò)進行分支,能夠較好地處理相機重定位任務(wù)中的位移預(yù)測和姿態(tài)預(yù)測兩個子任務(wù)之間的關(guān)系,達(dá)到位移預(yù)測和姿態(tài)預(yù)測兩個子任務(wù)互不干擾的目的,能夠大大地提高相機重定位的精度。
根據(jù)下面參考附圖對示例性實施例的詳細(xì)說明,本公開的其它特征及方面將變得清楚。
附圖說明
包含在說明書中并且構(gòu)成說明書的一部分的附圖與說明書一起示出了本公開的示例性實施例、特征和方面,并且用于解釋本公開的原理。
圖1是相關(guān)技術(shù)示出的相機重定位的坐標(biāo)系示意圖。
圖2是相關(guān)技術(shù)中的GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)的示例性的框圖。
圖3是相關(guān)技術(shù)中的VGG-16網(wǎng)絡(luò)結(jié)構(gòu)的示例性的框圖。
圖4是根據(jù)本公開一實施例的相機重定位方法的卷積神經(jīng)網(wǎng)絡(luò)的框圖。
圖5是根據(jù)本公開一實施例的相機重定位方法的流程圖。
圖6是根據(jù)本公開一實施例的基于GoogLeNet的分支網(wǎng)絡(luò)結(jié)構(gòu)的一示例性的框圖。
圖7是根據(jù)本公開一實施例的基于VGG-16的分支網(wǎng)絡(luò)結(jié)構(gòu)的一示例性的框圖。
圖8是根據(jù)本公開一實施例的相機重定位裝置的框圖。
圖9是根據(jù)本公開一實施例的相機重定位裝置的框圖。
具體實施方式
以下將參考附圖詳細(xì)說明本公開的各種示例性實施例、特征和方面。附圖中相同的附圖標(biāo)記表示功能相同或相似的元件。盡管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優(yōu)于或好于其它實施例。
另外,為了更好的說明本公開,在下文的具體實施方式中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒有某些具體細(xì)節(jié),本公開同樣可以實施。在一些實例中,對于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件和電路未作詳細(xì)描述,以便于凸顯本公開的主旨。
圖4是根據(jù)本公開一實施例的相機重定位方法的卷積神經(jīng)網(wǎng)絡(luò)的框圖。本實施例的相機重定位方法可以基于該卷積神經(jīng)網(wǎng)絡(luò)。
本實施例的卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Network)可以為一種前饋神經(jīng)網(wǎng)絡(luò),人工神經(jīng)元可以響應(yīng)覆蓋范圍內(nèi)的周圍單元。如圖4所示,該卷積神經(jīng)網(wǎng)絡(luò)可以包括共享層(Shared Layers)、第一專門層(Specfic Layers for Translation)和第二專門層(Specfic Layers for Orientation)。
其中,共享層的輸入可以為從相機獲取的圖像,第一專門層和第二專門層的輸入均為共享層的輸出,第一專門層的輸出可以為相機在第一坐標(biāo)系的位移(Translation),第二專門層的輸出可以為相機在第一坐標(biāo)系的姿態(tài)(Orientation)。本實施例不限制第一坐標(biāo)系的類型,例如第一坐標(biāo)系可以為世界坐標(biāo)系,也可以是圖像場景坐標(biāo)系。其中,世界坐標(biāo)系可以為絕對坐標(biāo)系,即在沒有建立用戶坐標(biāo)系之前圖像上所有點的坐標(biāo)都是以該坐標(biāo)系的原點來確定各自的位置的。圖像場景坐標(biāo)系可以為相對坐標(biāo)系,即可以為根據(jù)用戶設(shè)置的原點和方向建立的坐標(biāo)系。
本實施例不限制卷積神經(jīng)網(wǎng)絡(luò)的搭建形式。其中,共享層、第一專門層和第二專門層可以分別由多種不同類型的層組成,例如卷積層(Convolutional Layer)、池化層(Pooling Layer)、全連接層(Fully Connected Layer)和特征生成模塊(例如Inception模塊)中的一種或多種等。
其中,卷積層、池化層和全連接層均為神經(jīng)網(wǎng)絡(luò)中的一個基本運算單元。卷積層的輸出可以是對輸入進行卷積操作后的結(jié)果。池化層可以為夾在連續(xù)的卷積層中間的層,能夠起到逐步地減小參數(shù)數(shù)量的作用,也可以在一定程度上減小過擬合現(xiàn)象。全連接層可以為神經(jīng)網(wǎng)絡(luò)末尾的層,輸出的每個單元均為輸入的線性加權(quán)。Inception模塊可以為GoogleNet網(wǎng)絡(luò)中的一個模塊,由卷積層和池化層組成。
圖5是根據(jù)本公開一實施例的相機重定位方法的流程圖。該相機重定位方法可以用于根據(jù)相機拍攝的圖像對相機的位移和姿態(tài)進行預(yù)測。如圖5所示,該相機重定位方法可以包括以下步驟。
在步驟S501中,通過共享層從相機獲取的圖像中提取圖像特征。
在一種可能的實現(xiàn)方式中,共享層可以包括圖像特征卷積層、圖像特征池化層和圖像特征生成模塊中的至少一項。
其中,圖像特征卷積層可以為共享層中用于提取圖像特征的各個卷積層,圖像特征池化層可以為共享層中用于提取圖像特征的各個池化層,圖像特征生成模塊可以為共享層中用于提取圖像特征的各個特征生成模塊。
作為本實施例的一個示例,共享層可以包括多個圖像特征卷積層和多個圖像特征生成模塊。
作為本實施例的另一個實例,共享層可以包括多個圖像特征卷積層和多個圖像特征池化層。
需要說明的是,盡管以圖像特征卷積層、圖像特征生成模塊,或者圖像特征卷積層、圖像特征池化層作為示例介紹了共享層如上,但本領(lǐng)域技術(shù)人員能夠理解,本公開應(yīng)不限于此。本領(lǐng)域技術(shù)人員可以根據(jù)實際應(yīng)用場景靈活設(shè)定共享層。
在步驟S502中,通過第一專門層根據(jù)該圖像特征確定并輸出相機在第一坐標(biāo)系中的位移。
在一種可能的實現(xiàn)方式中,第一專門層包括位移卷積層、位移池化層和位移特征生成模塊中的至少一項,第一專門層還包括位移全連接層。
其中,位移卷積層可以為第一專門層中用于確定相機在第一坐標(biāo)系中的位移的各個卷積層,位移池化層可以為第一專門層中用于確定相機在第一坐標(biāo)系中的位移的各個池化層,位移特征生成模塊可以為第一專門層中用于確定相機在第一坐標(biāo)系中的位移的各個特征生成模塊。
作為本實施例的一個示例,第一專門層可以包括多個位移特征生成模塊和一個位移全連接層。
作為本實施例的另一個實例,第一專門層可以包括多個位移卷積層、一個位移池化層和多個位移全連接層。
需要說明的是,盡管以位移特征生成模塊、位移全連接層,或者位移卷積層、位移池化層、位移全連接層作為示例介紹了第一專門層如上,但本領(lǐng)域技術(shù)人員能夠理解,本公開應(yīng)不限于此。本領(lǐng)域技術(shù)人員可以根據(jù)實際應(yīng)用場景靈活設(shè)定第一專門層。
在步驟S503中,通過第二專門層根據(jù)該圖像特征確定并輸出相機在第一坐標(biāo)系中的姿態(tài)。
在一種可能的實現(xiàn)方式中,第二專門層包括姿態(tài)卷積層、姿態(tài)池化層和姿態(tài)特征生成模塊中的至少一項,第二專門層還包括姿態(tài)全連接層。
其中,姿態(tài)卷積層可以為第二專門層中用于確定相機在第一坐標(biāo)系中的姿態(tài)的各個卷積層,姿態(tài)池化層可以為第二專門層中用于確定相機在第一坐標(biāo)系中的姿態(tài)的各個池化層,姿態(tài)特征生成模塊可以為第二專門層中用于確定相機在第一坐標(biāo)系中的姿態(tài)的各個特征生成模塊。
作為本實施例的一個示例,第二專門層可以包括多個姿態(tài)特征生成模塊和一個姿態(tài)全連接層。
作為本實施例的另一個實例,第二專門層可以包括多個姿態(tài)卷積層、一個姿態(tài)池化層和多個姿態(tài)全連接層。
需要說明的是,盡管以姿態(tài)特征生成模塊、姿態(tài)全連接層,或者姿態(tài)卷積層、姿態(tài)池化層、姿態(tài)全連接層作為示例介紹了第二專門層如上,但本領(lǐng)域技術(shù)人員能夠理解,本公開應(yīng)不限于此。本領(lǐng)域技術(shù)人員可以根據(jù)實際應(yīng)用場景靈活設(shè)定第二專門層。
需要說明的是,本實施例不限制步驟S502和步驟S503之間的執(zhí)行順序,例如可以先執(zhí)行步驟S502再執(zhí)行步驟S503,也可以先執(zhí)行步驟S503再執(zhí)行步驟S502,還可以同時執(zhí)行步驟S502和步驟S503。
圖6是根據(jù)本公開一實施例的基于GoogLeNet的分支網(wǎng)絡(luò)結(jié)構(gòu)的一示例性的框圖。作為本實施例的一個示例,共享層可以包括依次設(shè)置的兩個圖像特征卷積層和五個圖像特征生成模塊,第一專門層可以包括依次設(shè)置的四個位移特征生成模塊和一個位移全連接層,第二專門層可以包括依次設(shè)置的四個姿態(tài)特征生成模塊和一個姿態(tài)全連接層。
在共享層中,第一圖像特征卷積層的輸入為從相機獲取的圖像,第一圖像特征卷積層的輸出為第二圖像特征卷積層的輸入,第二圖像特征卷積層的輸出為第一圖像特征生成模塊的輸入,第一圖像特征生成模塊的輸出為第二圖像特征生成模塊的輸入,第二圖像特征生成模塊的輸出為第三圖像特征生成模塊的輸入,第三圖像特征生成模塊的輸出為第四圖像特征生成模塊的輸入,第四圖像特征生成模塊的輸出為第五圖像特征生成模塊的輸入,第五圖像特征生成模塊的輸出分別為第一專門層和第二專門層的輸入。
在第一專門層中,第一位移特征生成模塊的輸入為圖像特征,第一位移特征生成模塊的輸出為第二位移特征生成模塊的輸入,第二位移特征生成模塊的輸出為第三位移特征生成模塊的輸入,第三位移特征生成模塊的輸出為第四位移特征生成模塊的輸入,第四位移特征生成模塊的輸出為位移全連接層的輸入,位移全連接層的輸出為相機在第一坐標(biāo)系中的位移。
在第二專門層中,第一姿態(tài)特征生成模塊的輸入為圖像特征,第一姿態(tài)特征生成模塊的輸出為第二姿態(tài)特征生成模塊的輸入,第二姿態(tài)特征生成模塊的輸出為第三姿態(tài)特征生成模塊的輸入,第三姿態(tài)特征生成模塊的輸出為第四姿態(tài)特征生成模塊的輸入,第四姿態(tài)特征生成模塊的輸出為姿態(tài)全連接層的輸入,姿態(tài)全連接層的輸出為相機在第一坐標(biāo)系中的姿態(tài)。
表1示出了相關(guān)技術(shù)的GoogLeNet網(wǎng)絡(luò)結(jié)構(gòu)(PoseNet-Euler6)與本實施的基于GoogLeNet的分支網(wǎng)絡(luò)結(jié)構(gòu)(BranchNet-Euler6)的參數(shù)對照表。在本實施例中,例如可以通過降低卷積層的通道數(shù)、全連接層輸出數(shù)的方式,可以使得基于GoogLeNet的分支網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)數(shù)量不會增加。
如表1所示,Conv可以表示卷積層,Icp可以表示Inception模塊,max pool可以表示最大池化層,avg pool可以表示平均值池華層。#channel可以表示該層的通道數(shù),例如PoseNet-Euler6中的Conv1(圖2中的卷積層1)對應(yīng)的通道數(shù)為64,BranchNet-Euler6中的Conv1(圖6中的圖像特征卷積層1)對應(yīng)的通道數(shù)為64。此外,#1x1、#3x3reduce、#3x3、#5x5reduce、#5x5、#pool proj可以表示組成Inception模塊的6個卷積層,所列出的數(shù)值代表了該層的通道數(shù)。例如PoseNet-Euler6中的Icp7(圖2中的特征生成模塊7)的#1x1對應(yīng)的通道數(shù)為256,BranchNet-Euler6中的Icp7(圖6中的位移特征生成模塊2或姿態(tài)特征生成模塊2)的#1x1對應(yīng)的通道數(shù)為180。params/k可以表示該層/模塊的參數(shù)數(shù)量,單位是k(即1000)。
表1
圖7是根據(jù)本公開一實施例的基于VGG-16的分支網(wǎng)絡(luò)結(jié)構(gòu)的一示例性的框圖。作為本實施例的一個示例,共享層可以包括交替設(shè)置的十個圖像特征卷積層和四個圖像特征池化層,第一專門層可以包括依次設(shè)置的三個位移卷積層、一個位移池化層和三個位移全連接層,第二專門層可以包括依次設(shè)置的三個姿態(tài)卷積層、一個姿態(tài)池化層和三個姿態(tài)全連接層。
在共享層中,第一圖像特征卷積層的輸入為從相機獲取的圖像,第一圖像特征卷積層的輸出為第二圖像特征卷積層的輸入,第二圖像特征卷積層中設(shè)置有第一圖像特征池化層,第二圖像特征卷積層的輸出為第三圖像特征卷積層的輸入,第三圖像特征卷積層的輸出為第四圖像特征卷積層的輸入,第四圖像特征卷積層中設(shè)置有第二圖像特征池化層,第四圖像特征卷積層的輸出為第五圖像特征卷積層的輸入,第五圖像特征卷積層的輸出為第六圖像特征卷積層的輸入,第六圖像特征卷積層的輸出為第七圖像特征卷積層的輸入,第七圖像特征卷積層中設(shè)置有第三圖像特征池化層,第七圖像特征卷積層的輸出為第八圖像特征卷積層的輸入,第八圖像特征卷積層的輸出為第九圖像特征卷積層的輸入,第九圖像特征卷積層的輸出為第十圖像特征卷積層的輸入,第十圖像特征卷積層中設(shè)置有第四圖像特征池化層,第十圖像特征卷積層的輸出分別為第一專門層和第二專門層的輸入。
在第一專門層中,第一位移卷積層的輸入為圖像特征,第一位移卷積層的輸出為第二位移卷積層的輸入,第二位移卷積層的輸出為第三位移卷積層的輸入,第三位移卷積層中設(shè)置有第一位移池化層,第三位移卷積層的輸出為第一位移全連接層的輸入,第一位移全連接層的輸出為第二位移全連接層的輸入,第二位移全連接層的輸出為第三位移全連接層的輸入,第三位移全連接層的輸出為相機在第一坐標(biāo)系中的位移。
在第二專門層中,第一姿態(tài)卷積層的輸入為圖像特征,第一姿態(tài)卷積層的輸出為第二姿態(tài)卷積層的輸入,第二姿態(tài)卷積層的輸出為第三姿態(tài)卷積層的輸入,第三姿態(tài)卷積層中設(shè)置有第一姿態(tài)池化層,第三姿態(tài)卷積層的輸出為第一姿態(tài)全連接層的輸入,第一姿態(tài)全連接層的輸出為第二姿態(tài)全連接層的輸入,第二姿態(tài)全連接層的輸出為第三姿態(tài)全連接層的輸入,第三姿態(tài)全連接層的輸出為相機在第一坐標(biāo)系中的姿態(tài)。
本實施例的相機重定位方法,通過共享層從相機獲取的圖像中提取圖像特征,通過第一專門層根據(jù)圖像特征確定并輸出相機在第一坐標(biāo)系中的位移,通過第二專門層根據(jù)圖像特征確定并輸出相機在第一坐標(biāo)系中的姿態(tài),由此通過對神經(jīng)網(wǎng)絡(luò)進行分支,能夠較好地處理相機重定位任務(wù)中的位移預(yù)測和姿態(tài)預(yù)測兩個子任務(wù)之間的關(guān)系,達(dá)到位移預(yù)測和姿態(tài)預(yù)測兩個子任務(wù)互不干擾的目的,能夠大大地提高相機重定位的精度。本實施例的相機重定位方法使得相機的方向預(yù)測和位移預(yù)測兩個子任務(wù)能夠共享同樣的底層基本特征,相比于使用兩個單獨的神經(jīng)網(wǎng)絡(luò)分別進行位移和姿態(tài)預(yù)測減少了參數(shù)數(shù)量。
圖8是根據(jù)本公開一實施例的相機重定位裝置的框圖。該裝置基于卷積神經(jīng)網(wǎng)絡(luò),該卷積神經(jīng)網(wǎng)絡(luò)包括共享層、第一專門層和第二專門層。參照圖8,該裝置包括圖像特征提取模塊11、位移確定模塊13和姿態(tài)確定模塊15。
其中,圖像特征提取模塊11被配置為通過共享層從相機獲取的圖像中提取圖像特征。位移確定模塊13被配置為通過第一專門層根據(jù)該圖像特征確定并輸出相機在第一坐標(biāo)系中的位移。姿態(tài)確定模塊15被配置為通過第二專門層根據(jù)該圖像特征確定并輸出相機在第一坐標(biāo)系中的姿態(tài)。
在一種可能的實現(xiàn)方式中,共享層包括圖像特征卷積層、圖像特征池化層和圖像特征生成模塊中的至少一項。
在一種可能的實現(xiàn)方式中,第一專門層包括位移卷積層、位移池化層和位移特征生成模塊中的至少一項,第一專門層還包括位移全連接層。
在一種可能的實現(xiàn)方式中,第二專門層包括姿態(tài)卷積層、姿態(tài)池化層和姿態(tài)特征生成模塊中的至少一項,第二專門層還包括姿態(tài)全連接層。
本實施例的相機重定位裝置,通過共享層從相機獲取的圖像中提取圖像特征,通過第一專門層根據(jù)圖像特征確定并輸出相機在第一坐標(biāo)系中的位移,通過第二專門層根據(jù)圖像特征確定并輸出相機在第一坐標(biāo)系中的姿態(tài),由此通過對神經(jīng)網(wǎng)絡(luò)進行分支,能夠較好地處理相機重定位任務(wù)中的位移預(yù)測和姿態(tài)預(yù)測兩個子任務(wù)之間的關(guān)系,達(dá)到位移預(yù)測和姿態(tài)預(yù)測兩個子任務(wù)互不干擾的目的,能夠大大地提高相機重定位的精度。本實施例的相機重定位裝置使得相機的方向預(yù)測和位移預(yù)測兩個子任務(wù)能夠共享同樣的底層基本特征,相比于使用兩個單獨的神經(jīng)網(wǎng)絡(luò)分別進行位移和姿態(tài)預(yù)測減少了參數(shù)數(shù)量。
圖9是根據(jù)本公開一實施例的相機重定位裝置的框圖。例如,裝置800可以是相機,移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺,平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個人數(shù)字助理等具有拍攝功能的設(shè)備。
參照圖9,裝置800可以包括以下一個或多個組件:處理組件802,存儲器804,電源組件806,多媒體組件808,音頻組件810,輸入/輸出(I/O)的接口812,傳感器組件814,以及通信組件816。
處理組件802通??刂蒲b置800的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關(guān)聯(lián)的操作。處理組件802可以包括一個或多個處理器820來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件802可以包括一個或多個模塊,便于處理組件802和其他組件之間的交互。例如,處理組件802可以包括多媒體模塊,以方便多媒體組件808和處理組件802之間的交互。
存儲器804被配置為存儲各種類型的數(shù)據(jù)以支持在裝置800的操作。這些數(shù)據(jù)的示例包括用于在裝置800上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器804可以由任何類型的易失性或非易失性存儲設(shè)備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
電源組件806為裝置800的各種組件提供電力。電源組件806可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置800生成、管理和分配電力相關(guān)聯(lián)的組件。
多媒體組件808包括在所述裝置800和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關(guān)的持續(xù)時間和壓力。在一些實施例中,多媒體組件808包括一個前置攝像頭和/或后置攝像頭。當(dāng)裝置800處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
音頻組件810被配置為輸出和/或輸入音頻信號。例如,音頻組件810包括一個麥克風(fēng)(MIC),當(dāng)裝置800處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風(fēng)被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器804或經(jīng)由通信組件816發(fā)送。在一些實施例中,音頻組件810還包括一個揚聲器,用于輸出音頻信號。
I/O接口812為處理組件802和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件814包括一個或多個傳感器,用于為裝置800提供各個方面的狀態(tài)評估。例如,傳感器組件814可以檢測到裝置800的打開/關(guān)閉狀態(tài),組件的相對定位,例如所述組件為裝置800的顯示器和小鍵盤,傳感器組件814還可以檢測裝置800或裝置800一個組件的位置改變,用戶與裝置800接觸的存在或不存在,裝置800方位或加速/減速和裝置800的溫度變化。傳感器組件814可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件814還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實施例中,該傳感器組件814還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件816被配置為便于裝置800和其他設(shè)備之間有線或無線方式的通信。裝置800可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件816經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關(guān)信息。在一個示例性實施例中,所述通信組件816還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來實現(xiàn)。
在示例性實施例中,裝置800可以被一個或多個應(yīng)用專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
在示例性實施例中,還提供了一種包括指令的非易失性計算機可讀存儲介質(zhì),例如包括指令的存儲器804,上述指令可由裝置800的處理器820執(zhí)行以完成上述方法。
本公開可以是系統(tǒng)、方法和/或計算機程序產(chǎn)品。計算機程序產(chǎn)品可以包括計算機可讀存儲介質(zhì),其上載有用于使處理器實現(xiàn)本公開的各個方面的計算機可讀程序指令。
計算機可讀存儲介質(zhì)可以是可以保持和存儲由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計算機可讀存儲介質(zhì)例如可以是――但不限于――電存儲設(shè)備、磁存儲設(shè)備、光存儲設(shè)備、電磁存儲設(shè)備、半導(dǎo)體存儲設(shè)備或者上述的任意合適的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、靜態(tài)隨機存取存儲器(SRAM)、便攜式壓縮盤只讀存儲器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機械編碼設(shè)備、例如其上存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導(dǎo)或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸?shù)碾娦盘枴?/p>
這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質(zhì)下載到各個計算/處理設(shè)備,或者通過網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)下載到外部計算機或外部存儲設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網(wǎng)關(guān)計算機和/或邊緣服務(wù)器。每個計算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計算機可讀程序指令,并轉(zhuǎn)發(fā)該計算機可讀程序指令,以供存儲在各個計算/處理設(shè)備中的計算機可讀存儲介質(zhì)中。
用于執(zhí)行本公開操作的計算機程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機器指令、機器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語言的任意組合編寫的源代碼或目標(biāo)代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言—諸如Smalltalk、C++等,以及常規(guī)的過程式編程語言—諸如“C”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠(yuǎn)程計算機上執(zhí)行、或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機的情形中,遠(yuǎn)程計算機可以通過任意種類的網(wǎng)絡(luò)—包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態(tài)信息來個性化定制電子電路,例如可編程邏輯電路、現(xiàn)場可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計算機可讀程序指令,從而實現(xiàn)本公開的各個方面。
這里參照根據(jù)本公開實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述了本公開的各個方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現(xiàn)。
這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質(zhì)中,這些指令使得計算機、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲有指令的計算機可讀介質(zhì)則包括一個制造品,其包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的各個方面的指令。
也可以把計算機可讀程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作。
附圖中的流程圖和框圖顯示了根據(jù)本公開的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
以上已經(jīng)描述了本公開的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的技術(shù)改進,或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實施例。