雙目三維重構(gòu)裝置及其三維重構(gòu)方法以及一種安卓應(yīng)用
【專(zhuān)利摘要】雙目三維重構(gòu)裝置及其三維重構(gòu)方法以及一種安卓應(yīng)用,該裝置用于安卓移動(dòng)終端,該安卓應(yīng)用與該裝置匹配使用。該裝置包括雙攝像頭模塊、同步對(duì)焦模塊、圖像處理單元、標(biāo)定單元及立體圖相對(duì)匹配單元;雙攝像頭模塊基于同步對(duì)焦模塊的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像;標(biāo)定單元對(duì)雙攝像頭模塊進(jìn)行攝像頭標(biāo)定,以獲取單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣;圖像處理單元根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣以及所述外部參數(shù)矩陣,將兩路同步圖像合成左右并列形式的單路圖像;立體圖相對(duì)匹配單元對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,得到待重構(gòu)物體的三維模型,以供安卓移動(dòng)終端顯示。
【專(zhuān)利說(shuō)明】
雙目三維重構(gòu)裝置及其三維重構(gòu)方法以及一種安卓應(yīng)用
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)視覺(jué)領(lǐng)域,尤其涉及一種基于安卓移動(dòng)終端的雙目三維重構(gòu)裝置及其三維重構(gòu)方法,以及一種對(duì)應(yīng)于該雙目三維重構(gòu)裝置的安卓應(yīng)用。
【背景技術(shù)】
[0002]三維模型重構(gòu)是計(jì)算機(jī)視覺(jué)中一項(xiàng)非常重要的技術(shù),已被廣泛應(yīng)用于工業(yè)、醫(yī)療、娛樂(lè)三大領(lǐng)域。雙目三維模型重構(gòu)方法,是指采用兩幅同步圖像,進(jìn)行立體圖相對(duì)匹配,計(jì)算基準(zhǔn)圖像中特征點(diǎn)深度信息,實(shí)現(xiàn)三維圖像重構(gòu)。
[0003]目前,在PC上采用Opens或Matlab方法,已經(jīng)可以實(shí)現(xiàn)雙目三維圖像重構(gòu)計(jì)算。但在形成三維模型稠密點(diǎn)云的過(guò)程中,由于特征檢測(cè)和匹配階段需要龐大的計(jì)算量,現(xiàn)有的三維圖像重構(gòu)裝置的實(shí)現(xiàn),均是通過(guò)將雙目攝像頭連接到PC或DSP上進(jìn)行。這樣一來(lái),用戶在使用時(shí)只能局限于電腦端,設(shè)備靈活性差,無(wú)法隨身攜帶使用,且可移植性低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的之一在于提出一種雙目三維重構(gòu)裝置,可應(yīng)用于一安卓移動(dòng)終端,以解決現(xiàn)有的三維圖像重構(gòu)裝置使用環(huán)境僅限于電腦端,設(shè)備靈活性差,無(wú)法隨身攜帶使用,且可移植性低的技術(shù)問(wèn)題。
[0005]本發(fā)明通過(guò)以下技術(shù)方案來(lái)解決上述技術(shù)問(wèn)題:
[0006]—種雙目三維重構(gòu)裝置,應(yīng)用于一安卓移動(dòng)終端,包括雙攝像頭模塊、同步對(duì)焦模塊、圖像處理單元、標(biāo)定單元以及立體圖相對(duì)匹配單元;所述雙攝像頭模塊與所述同步對(duì)焦模塊連接,基于所述同步對(duì)焦模塊的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像;所述標(biāo)定單元連接至所述圖像處理單元,用于對(duì)所述雙攝像頭模塊進(jìn)行攝像頭標(biāo)定,以獲取所述圖像處理單元在對(duì)所述兩路同步圖像處理時(shí)所需的單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣,并根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣來(lái)調(diào)整所述圖像處理單元的內(nèi)部處理參數(shù);所述圖像處理單元連接至所述立體圖相對(duì)匹配單元,用于根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣以及所述外部參數(shù)矩陣,將所述兩路同步圖像合成左右并列形式的單路圖像,并傳輸至所述立體圖相對(duì)匹配單元;所述立體圖相對(duì)匹配單元連接至所述安卓移動(dòng)終端的存儲(chǔ)模塊,用于對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,重構(gòu)出所述待重構(gòu)物體的三維模型,并傳輸至所述存儲(chǔ)模塊以供顯示。本發(fā)明提供的前述雙目三維重構(gòu)裝置,與現(xiàn)有技術(shù)相比,具有以下有益效果:本發(fā)明的所述裝置包含了雙攝像頭的同步對(duì)焦模塊,實(shí)現(xiàn)雙目三維重構(gòu)過(guò)程中兩攝像頭的同步對(duì)焦;本發(fā)明提供的所述裝置與現(xiàn)有的三維重構(gòu)裝置相比具有更好的便攜性和可移植性。
[0007]更進(jìn)一步地,所述圖像處理單元包括畸變模塊、對(duì)齊模塊以及合成模塊;所述畸變模塊連接所述雙攝像頭模塊,用于根據(jù)兩個(gè)所述畸變參數(shù)中的畸變系數(shù),將所述兩路同步圖像處理成兩路無(wú)畸變圖像;其中兩個(gè)所述畸變參數(shù)分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)鏡頭;所述對(duì)齊模塊連接所述畸變模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述待重構(gòu)物體上的一點(diǎn)在所述兩路無(wú)畸變圖像中的對(duì)應(yīng)像素點(diǎn)對(duì)齊至同一行,以獲得兩路無(wú)畸變對(duì)齊圖像;其中兩個(gè)所述內(nèi)部參數(shù)矩陣分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)攝像頭;所述合成模塊連接所述對(duì)齊模塊和所述立體圖相對(duì)匹配單元,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,以合成所述左右并列形式的單路圖像,并傳輸至所述立體圖相對(duì)匹配單元。本發(fā)明的圖像處理單元除合成模塊外,還包括畸變模塊、對(duì)齊模塊,使得圖像數(shù)據(jù)在輸入安卓移動(dòng)終端之時(shí),已完成圖像的畸變還原和對(duì)應(yīng)像素行對(duì)齊等圖像預(yù)處理,降低了安卓移動(dòng)終端的運(yùn)算量。
[0008]更進(jìn)一步地,所述立體圖相對(duì)匹配單元嵌于所述安卓移動(dòng)終端的Linux底層中,通過(guò)對(duì)所述左右并列形式的單路圖像進(jìn)行特征提取和特征匹配,形成融合深度圖,并結(jié)合特征提取過(guò)程中設(shè)定的參考圖像的色彩數(shù)據(jù),形成所述三維模型。
[0009]更進(jìn)一步地,所述雙攝像頭模塊包括兩個(gè)相同的攝像頭,所述同步對(duì)焦模塊基于兩個(gè)MCU而形成,兩個(gè)MCU中分別嵌入對(duì)焦程序,以分別對(duì)兩個(gè)攝像頭進(jìn)行對(duì)焦控制。
[0010]本發(fā)明的另一目的在于提出一種前述雙目三維重構(gòu)裝置的三維重構(gòu)方法,包括以下步驟SI?S5:
[0011]S1、控制所述雙攝像頭模塊基于所述同步對(duì)焦模塊的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像;
[0012]S2、控制所述標(biāo)定單元對(duì)所述雙攝像頭模塊進(jìn)行攝像頭標(biāo)定,以獲取單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣;
[0013]S3、根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,調(diào)整所述圖像處理單元的內(nèi)部處理參數(shù);
[0014]S4、基于所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,通過(guò)所述圖像處理單元將所述兩路同步圖像合成左右并列形式的單路圖像;
[0015]S5、通過(guò)所述立體圖相對(duì)匹配單元對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,重構(gòu)出所述待重構(gòu)物體的三維模型。
[0016]更進(jìn)一步地,所述步驟S4具體包括:
[0017]S41、提供一畸變模塊,用于根據(jù)兩個(gè)所述畸變參數(shù)中的畸變系數(shù),將所述兩路同步圖像處理成兩路無(wú)畸變圖像;其中兩個(gè)所述畸變參數(shù)分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)鏡頭;
[0018]S42、提供一對(duì)齊模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述待重構(gòu)物體上的一點(diǎn)在所述兩路無(wú)畸變圖像中的對(duì)應(yīng)像素點(diǎn)對(duì)齊至同一行,以獲得兩路無(wú)畸變對(duì)齊圖像;其中兩個(gè)所述內(nèi)部參數(shù)矩陣分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)攝像頭;
[0019]S43、提供一合成模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,以合成所述左右并列形式的單路圖像。
[0020]更進(jìn)一步地,所述步驟S5中的立體圖相對(duì)匹配具體包括:對(duì)所述左右并列形勢(shì)的單路圖像進(jìn)行特征提取和特征匹配,形成融合深度圖,并結(jié)合特征提取過(guò)程中設(shè)定的參考圖像的色彩數(shù)據(jù),形成所述三維模型。
[0021]本發(fā)明的又一目的在于提出一種安卓應(yīng)用,用于一安卓系統(tǒng)中,匹配于前述的雙目三維重構(gòu)裝置,該安卓應(yīng)用包括依次連接的應(yīng)用啟動(dòng)模塊、雙目三維重構(gòu)裝置HAL接口模塊、底層Linux三維重構(gòu)驅(qū)動(dòng)模塊、三維重構(gòu)初始化模塊以及I2C總線控制模塊;所述應(yīng)用啟動(dòng)模塊用于接收用戶的啟動(dòng)輸入,并調(diào)用所述雙目三維重構(gòu)裝置HAL接口模塊,以啟動(dòng)所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊;所述三維重構(gòu)初始化模塊在所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊的驅(qū)動(dòng)下啟動(dòng),并通過(guò)所述I2C總線控制模塊向所述雙目三維重構(gòu)裝置的各個(gè)工作模塊發(fā)送啟動(dòng)指令,以使所述雙目三維重構(gòu)裝置開(kāi)始工作。
?0022] 更進(jìn)一步地,所述三維重構(gòu)初始化模塊包括初始化標(biāo)志模塊、Linux驅(qū)動(dòng)初始化模塊、I2C初始化模塊以及MIPI初始化模塊;所述初始化標(biāo)志模塊的輸入和輸出分別連接所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊、所述Linux驅(qū)動(dòng)初始化模塊,用于在Linux中完成驅(qū)動(dòng)軟件注冊(cè),并啟動(dòng)所述Linux驅(qū)動(dòng)初始化模塊;所述Linux驅(qū)動(dòng)初始化模塊的輸出連接至所述I2C初始化模塊以及所述MIPI初始化模塊;所述12C初始化模塊基于所述Linux驅(qū)動(dòng)初始化模塊的輸出而啟動(dòng),用以完成底層Linux中的I2C總線硬件驅(qū)動(dòng)注冊(cè),并啟動(dòng)所述I2C總線控制模塊;所述MIPI初始化模塊基于所述Linux驅(qū)動(dòng)初始化模塊的輸出而啟動(dòng),用以完成底層Linux中的MIP1-CS1-2總線硬件驅(qū)動(dòng)注冊(cè),并啟動(dòng)所述立體圖相對(duì)匹配單元,使得所述立體圖相對(duì)匹配單元通過(guò)MIP1-CS1-2總線接收所述左右并列形式的單路圖像,并根據(jù)三角化原理,計(jì)算出像素點(diǎn)對(duì)應(yīng)的深度圖,轉(zhuǎn)換成三維坐標(biāo),實(shí)現(xiàn)三維重構(gòu)。
[0023]更進(jìn)一步地,所述安卓應(yīng)用還包括重構(gòu)完成標(biāo)志模塊、結(jié)束標(biāo)志模塊以及Linux驅(qū)動(dòng)結(jié)束模塊;所述重構(gòu)完成標(biāo)志模塊的輸入和輸出分別連接所述立體圖相對(duì)匹配單元、所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊,用于向所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊發(fā)出完成標(biāo)志,以使底層Linux三維重構(gòu)驅(qū)動(dòng)模塊進(jìn)入終止程序以終止所述雙目三維重構(gòu)裝置的工作;所述終止程序用于啟動(dòng)所述結(jié)束標(biāo)志模塊;所述結(jié)束標(biāo)志模塊用于啟動(dòng)所述Linux驅(qū)動(dòng)結(jié)束模塊,以完成軟件、硬件的驅(qū)動(dòng)注銷(xiāo)。
【附圖說(shuō)明】
[0024]圖1是本發(fā)明【具體實(shí)施方式】提供的雙目三維重構(gòu)裝置的原理框圖;
[0025]圖2是本發(fā)明【具體實(shí)施方式】提供的雙目三維重構(gòu)裝置的硬件架構(gòu)圖;
[0026]圖3是本發(fā)明的雙目三維重構(gòu)裝置應(yīng)用于安卓移動(dòng)終端的工作流程圖。
【具體實(shí)施方式】
[0027]下面結(jié)合附圖以及具體的實(shí)施方式對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0028]本發(fā)明的【具體實(shí)施方式】提供一種基于安卓(Android)移動(dòng)終端的雙目三維重構(gòu)裝置,參考圖1,該雙目三維重構(gòu)裝置包括雙攝像頭模塊100、同步對(duì)焦模塊200、圖像處理單元300、標(biāo)定單元400以及立體圖相對(duì)匹配單元500。其中,雙攝像頭模塊100與同步對(duì)焦模塊200連接,雙攝像頭模塊100基于同步對(duì)焦模塊200的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像;標(biāo)定單元400連接至圖像處理單元300,用于對(duì)雙攝像頭模塊100進(jìn)行攝像頭標(biāo)定,以獲取圖像處理單元300在對(duì)所述兩路同步圖像處理時(shí)所需的單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣,并根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣來(lái)調(diào)整所述圖像處理單元的內(nèi)部處理參數(shù);圖像處理單元300連接至立體圖相對(duì)匹配單元500,用于根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣以及所述外部參數(shù)矩陣,將所述兩路同步圖像合成左右并列形式的單路圖像,并傳輸至立體圖相對(duì)匹配單元500;立體圖相對(duì)匹配單元500連接至所述安卓移動(dòng)終端的存儲(chǔ)模塊,用于對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,重構(gòu)出所述待重構(gòu)物體的三維模型,并傳輸至所述存儲(chǔ)模塊以供顯示。
[0029]在優(yōu)選的實(shí)施方式中,雙攝像頭模塊100由兩個(gè)相同的攝像頭構(gòu)成,參考圖1和圖2,攝像頭I包括鏡頭Lenl、音圈電機(jī)VCMl和CCD傳感器芯片,攝像頭2包括鏡頭Len2、音圈電機(jī)VCM2和CCD傳感器芯片,兩個(gè)鏡頭Lenl和Len2具有相同的規(guī)格參數(shù),兩個(gè)攝像頭用于攝取同一待重構(gòu)物體的兩路同步圖像。同步對(duì)焦模塊優(yōu)選地由兩個(gè)微控制單元MCUl和MCU2構(gòu)成,且在MCUl和MCU2中分別嵌入對(duì)焦程序,以分別對(duì)兩個(gè)攝像頭進(jìn)行對(duì)焦控制。由于在對(duì)兩攝像頭進(jìn)行標(biāo)定的過(guò)程中,獲取的所述外部參數(shù)矩陣與每一個(gè)攝像頭的焦距有關(guān),為保證圖像處理單元的計(jì)算結(jié)果準(zhǔn)確,同步對(duì)焦模塊的MCUl和MCU2中的對(duì)焦程序?qū)⒁羧﹄姍C(jī)VCMl和VCM2中線圈的位移距離限定為幾個(gè)離散值。如圖2所示,在對(duì)焦控制時(shí),同步對(duì)焦模塊的MCUl和MCU2都是通過(guò)I2C總線分別向兩攝像頭傳輸控制信號(hào);同樣,標(biāo)定單元400在進(jìn)行攝像頭標(biāo)定時(shí),也通過(guò)I2C總線協(xié)議傳輸控制信號(hào),具體包括:標(biāo)定單元400通過(guò)I2C總線向圖像處理單元300傳輸驅(qū)動(dòng)控制信號(hào),驅(qū)動(dòng)所述圖像處理單元300基于I2C總線分別向兩攝像頭傳輸標(biāo)定控制信號(hào),通過(guò)例如棋盤(pán)法對(duì)兩攝像頭進(jìn)行標(biāo)定。另,雙攝像頭模塊100獲取待重構(gòu)物體的兩路同步圖像后,分別經(jīng)MIP1-CS1-2總線將圖像數(shù)據(jù)傳輸至圖像處理單元300。在MIP1-CS1-2總線協(xié)議下圖像傳輸格式包括YUV422和RGB。每個(gè)攝像頭向圖像處理單元300傳輸數(shù)據(jù)的過(guò)程中,占用MIP1-CS1-2總線協(xié)議中的兩條數(shù)據(jù)通道。
[0030]在一種優(yōu)選的實(shí)施例中,所述立體圖相對(duì)匹配單元500嵌于所述安卓移動(dòng)終端(相當(dāng)于圖2中的Android Platform)的Linux底層中,通過(guò)對(duì)所述左右并列形式的單路圖像(即圖像處理單元300的輸出)進(jìn)行特征提取和特征匹配,形成融合深度圖,并結(jié)合特征提取過(guò)程中設(shè)定的參考圖像的色彩數(shù)據(jù),形成所述三維模型。在圖像處理單元300向嵌于安卓移動(dòng)終端(Android Platform)中的立體圖相對(duì)匹配單元500傳輸所述左右并列形式的單路圖像時(shí),也是基于MIP1-CS1-2總線協(xié)議,占用MIP1-CS1-2協(xié)議中的全部四條數(shù)據(jù)通道。當(dāng)經(jīng)過(guò)立體圖相對(duì)匹配單元500進(jìn)行立體圖相對(duì)匹配,形成待重構(gòu)物體的三維模型之后,該三維模型存儲(chǔ)于安卓移動(dòng)終端的存儲(chǔ)模塊,可直接通過(guò)安卓移動(dòng)終端顯示模塊的LCD Screen(顯示屏)顯示出來(lái),也可以通過(guò)無(wú)線網(wǎng)絡(luò)傳輸至PC端顯示。
[0031]在一種具體的實(shí)施例中,所述圖像處理單元300包括畸變模塊、對(duì)齊模塊以及合成模塊;所述畸變模塊連接所述雙攝像頭模塊100,用于根據(jù)兩個(gè)所述畸變參數(shù)中的畸變系數(shù),將所述兩路同步圖像處理成兩路無(wú)畸變圖像;其中兩個(gè)所述畸變參數(shù)分別對(duì)應(yīng)于所述雙攝像頭模塊100中的兩個(gè)鏡頭。所述對(duì)齊模塊連接所述畸變模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述待重構(gòu)物體上的一點(diǎn)在所述兩路無(wú)畸變圖像中的對(duì)應(yīng)像素點(diǎn)對(duì)齊至同一行,以獲得兩路無(wú)畸變對(duì)齊圖像;其中兩個(gè)所述內(nèi)部參數(shù)矩陣分別對(duì)應(yīng)于所述雙攝像頭模塊100中的兩個(gè)攝像頭。所述合成模塊連接所述對(duì)齊模塊和所述立體圖相對(duì)匹配單元500,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,以合成所述左右并列形式的單路圖像,并傳輸至所述立體圖相對(duì)匹配單元500。
[0032]本發(fā)明的【具體實(shí)施方式】還提供了前述雙目三維重構(gòu)裝置的三維重構(gòu)方法,包括以下步驟SI?S5:
[0033]S1、控制所述雙攝像頭模塊基于所述同步對(duì)焦模塊的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像;
[0034]S2、控制所述標(biāo)定單元對(duì)所述雙攝像頭模塊進(jìn)行攝像頭標(biāo)定,以獲取單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣;
[0035]S3、根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,調(diào)整所述圖像處理單元的內(nèi)部處理參數(shù);
[0036]S4、基于所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,通過(guò)所述圖像處理單元將所述兩路同步圖像合成左右并列形式的單路圖像;
[0037]S5、通過(guò)所述立體圖相對(duì)匹配單元對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,重構(gòu)出所述待重構(gòu)物體的三維模型。
[0038]在上述方法中,所述步驟S4具體包括:
[0039]S41、提供一畸變模塊,用于根據(jù)兩個(gè)所述畸變參數(shù)中的畸變系數(shù),將所述兩路同步圖像處理成兩路無(wú)畸變圖像;其中兩個(gè)所述畸變參數(shù)分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)鏡頭;具體是通過(guò)將畸變系數(shù)代入畸變方程得到兩路無(wú)畸變圖像;
[0040]S42、提供一對(duì)齊模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述待重構(gòu)物體上的一點(diǎn)在所述兩路無(wú)畸變圖像中的對(duì)應(yīng)像素點(diǎn)對(duì)齊至同一行,以獲得兩路無(wú)畸變對(duì)齊圖像;其中兩個(gè)所述內(nèi)部參數(shù)矩陣分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)攝像頭;
[0041]S43、提供一合成模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,以合成所述左右并列形式的單路圖像。具體地,所述合成模塊讀入經(jīng)步驟S42獲得的兩路無(wú)畸變對(duì)齊圖像,將所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣帶入圖像裁剪方程,從而將兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,合成左右并列形式的單路圖像。
[0042]在上述方法中,所述步驟S5中的立體圖相對(duì)匹配具體包括:對(duì)所述左右并列形勢(shì)的單路圖像進(jìn)行特征提取和特征匹配,形成融合深度圖,并結(jié)合特征提取過(guò)程中設(shè)定的參考圖像的色彩數(shù)據(jù),形成所述三維模型。此處立體圖相對(duì)匹配可采用現(xiàn)有技術(shù),具體過(guò)程在此不再贅述。
[0043]本發(fā)明的【具體實(shí)施方式】還提供一種安卓應(yīng)用,用于一安卓系統(tǒng)中,該應(yīng)用與前述公開(kāi)的雙目三維重構(gòu)裝置匹配使用。所述安卓應(yīng)用包括依次連接的應(yīng)用啟動(dòng)模塊、雙目三維重構(gòu)裝置HAL接口模塊、底層Linux三維重構(gòu)驅(qū)動(dòng)模塊、三維重構(gòu)初始化模塊以及I2C總線控制模塊;所述應(yīng)用啟動(dòng)模塊用于接收用戶的啟動(dòng)輸入,并調(diào)用所述雙目三維重構(gòu)裝置HAL接口模塊,以啟動(dòng)所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊;所述三維重構(gòu)初始化模塊在所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊的驅(qū)動(dòng)下啟動(dòng),并通過(guò)所述I2C總線控制模塊向所述雙目三維重構(gòu)裝置的各個(gè)工作模塊發(fā)送啟動(dòng)指令,以啟動(dòng)所述雙目三維重構(gòu)裝置開(kāi)始工作。
[0044]具體地,參考圖3,所述三維重構(gòu)初始化模塊包括初始化標(biāo)志模塊、Linux驅(qū)動(dòng)初始化模塊、I2C初始化模塊以及MIPI初始化模塊;所述初始化標(biāo)志模塊的輸入和輸出分別連接所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊、所述Linux驅(qū)動(dòng)初始化模塊,用于在Linux中完成驅(qū)動(dòng)軟件注冊(cè),并啟動(dòng)所述Linux驅(qū)動(dòng)初始化模塊;所述Linux驅(qū)動(dòng)初始化模塊的輸出連接至所述I2C初始化模塊以及所述MIPI初始化模塊;所述I2C初始化模塊在所述Linux驅(qū)動(dòng)初始化模塊的輸出下啟動(dòng),用以完成底層Linux中的I2C總線硬件驅(qū)動(dòng)注冊(cè),并啟動(dòng)所述I2C總線控制模塊;所述MIPI初始化模塊在所述Linux驅(qū)動(dòng)初始化模塊的輸出下啟動(dòng),用以完成底層Linux中的MIP1-CS1-2總線硬件驅(qū)動(dòng)注冊(cè),并啟動(dòng)所述立體圖相對(duì)匹配單元,使得所述立體圖相對(duì)匹配單元通過(guò)MIP1-CS1-2總線接收所述左右并列形式的單路圖像,并根據(jù)三角化原理,計(jì)算出像素點(diǎn)對(duì)應(yīng)的深度圖,轉(zhuǎn)換成三維坐標(biāo),實(shí)現(xiàn)三維重構(gòu)。
[0045]在一種優(yōu)選的實(shí)施例中,該安卓應(yīng)用還包括重構(gòu)完成標(biāo)志模塊、結(jié)束標(biāo)志模塊以及Linux驅(qū)動(dòng)結(jié)束模塊;所述重構(gòu)完成標(biāo)志模塊的輸入和輸出分別連接所述立體圖相對(duì)匹配單元、所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊,用于向所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊發(fā)出完成標(biāo)志,以使底層Linux三維重構(gòu)驅(qū)動(dòng)模塊進(jìn)入終止程序以終止所述雙目三維重構(gòu)裝置的工作;所述終止程序用于啟動(dòng)所述結(jié)束標(biāo)志模塊;所述結(jié)束標(biāo)志模塊用于啟動(dòng)所述Linux驅(qū)動(dòng)結(jié)束模塊,以完成軟件、硬件的驅(qū)動(dòng)注銷(xiāo)。
[0046]上述【具體實(shí)施方式】公開(kāi)的安卓應(yīng)用,與前述公開(kāi)的雙目三維重構(gòu)裝置匹配使用于一安卓移動(dòng)終端時(shí),工作流程可參考圖3:
[0047]用戶使用前先將雙目三維重構(gòu)裝置與安卓移動(dòng)終端連接,然后開(kāi)啟雙目三維重構(gòu)裝置,同時(shí)通過(guò)安卓移動(dòng)終端上的前述安卓應(yīng)用輸入啟動(dòng)信號(hào)。所述應(yīng)用啟動(dòng)模塊接收用戶輸入,調(diào)用所述雙目三維重構(gòu)裝置HAL接口模塊,從而啟動(dòng)所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊。所述三維重構(gòu)初始化模塊在所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊的驅(qū)動(dòng)下啟動(dòng),并通過(guò)所述I2C總線控制模塊向所述雙目三維重構(gòu)裝置的各個(gè)工作模塊發(fā)送啟動(dòng)指令(圖3中的I2C控制信號(hào)),以啟動(dòng)所述雙目三維重構(gòu)裝置開(kāi)始工作。從而所述雙目三維重構(gòu)裝置執(zhí)行前述的三維重構(gòu)方法,完成待重構(gòu)物體的三維模型重構(gòu)。在優(yōu)選的方案中,所述立體圖相對(duì)匹配單元完成三維模型重構(gòu)的最終步驟時(shí),通知所述重構(gòu)完成標(biāo)志模塊,以使所述重構(gòu)完成標(biāo)志模塊向所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊發(fā)出完成標(biāo)志,從而,底層Linux三維重構(gòu)驅(qū)動(dòng)模塊進(jìn)入終止程序,以終止所述雙目三維重構(gòu)裝置的工作;同時(shí)所述終止程序啟動(dòng)所述結(jié)束標(biāo)志模塊,所述結(jié)束標(biāo)志模塊再啟動(dòng)所述Linux驅(qū)動(dòng)結(jié)束模塊,以完成軟件、硬件的驅(qū)動(dòng)注銷(xiāo)。
[0048]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干等同替代或明顯變型,而且性能或用途相同,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種雙目三維重構(gòu)裝置,應(yīng)用于一安卓移動(dòng)終端,其特征在于:包括雙攝像頭模塊、同步對(duì)焦模塊、圖像處理單元、標(biāo)定單元以及立體圖相對(duì)匹配單元; 所述雙攝像頭模塊與所述同步對(duì)焦模塊連接,基于所述同步對(duì)焦模塊的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像; 所述標(biāo)定單元連接至所述圖像處理單元,用于對(duì)所述雙攝像頭模塊進(jìn)行攝像頭標(biāo)定,以獲取所述圖像處理單元在對(duì)所述兩路同步圖像處理時(shí)所需的單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣,并根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣來(lái)調(diào)整所述圖像處理單元的內(nèi)部處理參數(shù); 所述圖像處理單元連接至所述立體圖相對(duì)匹配單元,用于根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣以及所述外部參數(shù)矩陣,將所述兩路同步圖像合成左右并列形式的單路圖像,并傳輸至所述立體圖相對(duì)匹配單元; 所述立體圖相對(duì)匹配單元連接至所述安卓移動(dòng)終端的存儲(chǔ)模塊,用于對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,重構(gòu)出所述待重構(gòu)物體的三維模型,并傳輸至所述存儲(chǔ)模塊以供顯示。2.如權(quán)利要求1所述的雙目三維重構(gòu)裝置,其特征在于:所述圖像處理單元包括畸變模塊、對(duì)齊模塊以及合成模塊; 所述畸變模塊連接所述雙攝像頭模塊,用于根據(jù)兩個(gè)所述畸變參數(shù)中的畸變系數(shù),將所述兩路同步圖像處理成兩路無(wú)畸變圖像;其中兩個(gè)所述畸變參數(shù)分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)鏡頭; 所述對(duì)齊模塊連接所述畸變模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述待重構(gòu)物體上的一點(diǎn)在所述兩路無(wú)畸變圖像中的對(duì)應(yīng)像素點(diǎn)對(duì)齊至同一行,以獲得兩路無(wú)畸變對(duì)齊圖像;其中兩個(gè)所述內(nèi)部參數(shù)矩陣分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)攝像頭; 所述合成模塊連接所述對(duì)齊模塊和所述立體圖相對(duì)匹配單元,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,以合成所述左右并列形式的單路圖像,并傳輸至所述立體圖相對(duì)匹配單元。3.如權(quán)利要求1所述的雙目三維重構(gòu)裝置,其特征在于:所述立體圖相對(duì)匹配單元嵌于所述安卓移動(dòng)終端的Linux底層中,通過(guò)對(duì)所述左右并列形式的單路圖像進(jìn)行特征提取和特征匹配,形成融合深度圖,并結(jié)合特征提取過(guò)程中設(shè)定的參考圖像的色彩數(shù)據(jù),形成所述三維模型。4.如權(quán)利要求1所述的雙目三維重構(gòu)裝置,其特征在于:所述雙攝像頭模塊包括兩個(gè)相同的攝像頭,所述同步對(duì)焦模塊基于兩個(gè)MCU而形成,兩個(gè)MCU中分別嵌入對(duì)焦程序,以分別對(duì)兩個(gè)攝像頭進(jìn)行對(duì)焦控制。5.—種如權(quán)利要求1至4任一項(xiàng)所述的雙目三維重構(gòu)裝置的三維重構(gòu)方法,其特征在于:包括以下步驟SI?S5: 51、控制所述雙攝像頭模塊基于所述同步對(duì)焦模塊的對(duì)焦計(jì)算結(jié)果獲取待重構(gòu)物體的兩路同步圖像; 52、控制所述標(biāo)定單元對(duì)所述雙攝像頭模塊進(jìn)行攝像頭標(biāo)定,以獲取單鏡頭的畸變參數(shù)、單攝像頭的內(nèi)部參數(shù)矩陣以及所述雙攝像頭模塊的外部參數(shù)矩陣; 53、根據(jù)所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,調(diào)整所述圖像處理單元的內(nèi)部處理參數(shù); 54、基于所述畸變參數(shù)、所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,通過(guò)所述圖像處理單元將所述兩路同步圖像合成左右并列形式的單路圖像; 55、通過(guò)所述立體圖相對(duì)匹配單元對(duì)所述左右并列形式的單路圖像進(jìn)行立體圖相對(duì)匹配,重構(gòu)出所述待重構(gòu)物體的三維模型。6.如權(quán)利要求5所述的三維重構(gòu)方法,其特征在于:所述步驟S4具體包括: 541、提供一畸變模塊,用于根據(jù)兩個(gè)所述畸變參數(shù)中的畸變系數(shù),將所述兩路同步圖像處理成兩路無(wú)畸變圖像;其中兩個(gè)所述畸變參數(shù)分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)鏡頭; 542、提供一對(duì)齊模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述待重構(gòu)物體上的一點(diǎn)在所述兩路無(wú)畸變圖像中的對(duì)應(yīng)像素點(diǎn)對(duì)齊至同一行,以獲得兩路無(wú)畸變對(duì)齊圖像;其中兩個(gè)所述內(nèi)部參數(shù)矩陣分別對(duì)應(yīng)于所述雙攝像頭模塊中的兩個(gè)攝像頭; 543、提供一合成模塊,用于根據(jù)兩個(gè)所述內(nèi)部參數(shù)矩陣和所述外部參數(shù)矩陣,將所述兩路無(wú)畸變對(duì)齊圖像裁剪至相同尺寸大小,以合成所述左右并列形式的單路圖像。7.如權(quán)利要求5所述的三維重構(gòu)方法,其特征在于:所述步驟S5中的立體圖相對(duì)匹配具體包括:對(duì)所述左右并列形勢(shì)的單路圖像進(jìn)行特征提取和特征匹配,形成融合深度圖,并結(jié)合特征提取過(guò)程中設(shè)定的參考圖像的色彩數(shù)據(jù),形成所述三維模型。8.一種安卓應(yīng)用,用于一安卓系統(tǒng)中,匹配于如權(quán)利要求1至4任一項(xiàng)所述的雙目三維重構(gòu)裝置,其特征在于:包括依次連接的應(yīng)用啟動(dòng)模塊、雙目三維重構(gòu)裝置HAL接口模塊、底層Linux三維重構(gòu)驅(qū)動(dòng)模塊、三維重構(gòu)初始化模塊以及12C總線控制模塊; 所述應(yīng)用啟動(dòng)模塊用于接收用戶的啟動(dòng)輸入,并調(diào)用所述雙目三維重構(gòu)裝置HAL接口模塊,以啟動(dòng)所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊; 所述三維重構(gòu)初始化模塊在所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊的驅(qū)動(dòng)下啟動(dòng),并通過(guò)所述I2C總線控制模塊向所述雙目三維重構(gòu)裝置的各個(gè)工作模塊發(fā)送啟動(dòng)指令,以使所述雙目三維重構(gòu)裝置開(kāi)始工作。9.如權(quán)利要求8所述的安卓應(yīng)用,其特征在于:所述三維重構(gòu)初始化模塊包括初始化標(biāo)志模塊、Linux驅(qū)動(dòng)初始化模塊、I2C初始化模塊以及MIPI初始化模塊; 所述初始化標(biāo)志模塊的輸入和輸出分別連接所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊、所述Linux驅(qū)動(dòng)初始化模塊,用于在Linux中完成驅(qū)動(dòng)軟件注冊(cè),并啟動(dòng)所述Linux驅(qū)動(dòng)初始化模塊; 所述Linux驅(qū)動(dòng)初始化模塊的輸出連接至所述I2C初始化模塊以及所述MIPI初始化模塊;所述I2C初始化模塊基于所述Linux驅(qū)動(dòng)初始化模塊的輸出而啟動(dòng),用以完成底層Linux中的I2C總線硬件驅(qū)動(dòng)注冊(cè),并啟動(dòng)所述I2C總線控制模塊;所述MIPI初始化模塊基于所述Linux驅(qū)動(dòng)初始化模塊的輸出而啟動(dòng),用以完成底層Linux中的MIP1-CS1-2總線硬件驅(qū)動(dòng)注冊(cè),并啟動(dòng)所述立體圖相對(duì)匹配單元,使得所述立體圖相對(duì)匹配單元通過(guò)MIP1-CS1-2總線接收所述左右并列形式的單路圖像,并根據(jù)三角化原理,計(jì)算出像素點(diǎn)對(duì)應(yīng)的深度圖,轉(zhuǎn)換成三維坐標(biāo),實(shí)現(xiàn)三維重構(gòu)。10.如權(quán)利要求9所述的安卓應(yīng)用,其特征在于:還包括重構(gòu)完成標(biāo)志模塊、結(jié)束標(biāo)志模塊以及Linux驅(qū)動(dòng)結(jié)束模塊;所述重構(gòu)完成標(biāo)志模塊的輸入和輸出分別連接所述立體圖相對(duì)匹配單元、所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊,用于向所述底層Linux三維重構(gòu)驅(qū)動(dòng)模塊發(fā)出完成標(biāo)志,以使底層Linux三維重構(gòu)驅(qū)動(dòng)模塊進(jìn)入終止程序以終止所述雙目三維重構(gòu)裝置的工作;所述終止程序用于啟動(dòng)所述結(jié)束標(biāo)志模塊;所述結(jié)束標(biāo)志模塊用于啟動(dòng)所述Linux驅(qū)動(dòng)結(jié)束模塊,以完成軟件、硬件的驅(qū)動(dòng)注銷(xiāo)。
【文檔編號(hào)】G06T7/00GK105913474SQ201610207835
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2016年4月5日
【發(fā)明人】馬建設(shè), 魏云峰, 蘇萍, 劉彤
【申請(qǐng)人】清華大學(xué)深圳研究生院