本發(fā)明涉及立體掃描技術(shù),尤其涉及一種對(duì)物體進(jìn)行三維掃描的方法、裝置及系統(tǒng)。
背景技術(shù):
3D(three dimensional,三維)掃描儀可以用來獲取物體的三維信息。其中,3D掃描儀的原理是利用發(fā)光器件發(fā)射出激光束或載波紅外線或結(jié)構(gòu)光等光線,光線照射到物體上后反射回3D掃描儀的攝像頭中。然后,3D掃描儀通過分析物體成像來計(jì)算出物體上每一點(diǎn)的三維信息。
由于大多數(shù)3D掃描儀的發(fā)光器件和攝像頭位置固定,因此每次掃描只能獲取物體某一角度的三維信息。如果需要獲取物體的整個(gè)三維信息,則需轉(zhuǎn)動(dòng)物體或圍繞物體改變3D掃描儀的位置進(jìn)行多次掃描,并將多次掃描的結(jié)果進(jìn)行拼接。
由于在上述對(duì)物體進(jìn)行三維掃描的過程中需要使物體轉(zhuǎn)動(dòng)并進(jìn)行多次掃描,因而利用現(xiàn)有方案對(duì)物體進(jìn)行三維掃描的速度較慢。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種對(duì)物體進(jìn)行三維掃描的方法、裝置及系統(tǒng),用以提高對(duì)物體進(jìn)行三維掃描的速度。
為解決上述技術(shù)問題,本發(fā)明提供一種對(duì)物體進(jìn)行三維掃描的方法,包括:
在利用深度攝像頭對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo);
獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),其中所述成像點(diǎn)是所述反射點(diǎn)在對(duì)應(yīng)的反射鏡中的成像點(diǎn);
根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所 述攝像頭坐標(biāo)系中的三維坐標(biāo)。
優(yōu)選的,所述根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),包括:
獲取從所述攝像頭坐標(biāo)系到所述反射鏡所在的反射鏡坐標(biāo)系的轉(zhuǎn)換參數(shù);
根據(jù)所述轉(zhuǎn)換參數(shù)和所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述轉(zhuǎn)換參數(shù)和所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
優(yōu)選的,所述獲取從所述攝像頭坐標(biāo)系到所述反射鏡所在的反射鏡坐標(biāo)系的轉(zhuǎn)換參數(shù),包括:
獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的平移向量;
獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣。
優(yōu)選的,所述獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣,包括:
任意選定兩個(gè)標(biāo)記點(diǎn),使得所述兩個(gè)標(biāo)記點(diǎn)組成的線段垂直于所述反射鏡所在的平面;
分別獲取所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo)和所述攝像頭坐標(biāo)系獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣;
所述旋轉(zhuǎn)矩陣為:
ZD×VD是ZD與VD的向量積,[V]X為向量v的向量積矩陣,其中
其中R表示旋轉(zhuǎn)矩陣,ZD表示所述攝像頭坐標(biāo)系的Z軸,VD表示所述反射鏡坐標(biāo)系的Z軸,I表示單位矩陣。
優(yōu)選的,所述根據(jù)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo),包括:
獲取坐標(biāo)轉(zhuǎn)換函數(shù);
利用所述坐標(biāo)轉(zhuǎn)換函數(shù)對(duì)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)進(jìn)行運(yùn)算,獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)。
優(yōu)選的,所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)表示為:
XD=XMR-1-T;
其中,XD表示所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),XM表示所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo),R表示旋轉(zhuǎn)矩陣,T表示平移向量。
第二方面,本發(fā)明提供一種對(duì)物體進(jìn)行三維掃描的裝置,包括:
第一獲取單元,用于在對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo);
第二獲取單元,用于獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),其中所述成像點(diǎn)是所述反射點(diǎn)在對(duì)應(yīng)的反射鏡中的成像點(diǎn);
第三獲取單元,用于根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
優(yōu)選的,所述第二獲取單元包括:
第一獲取子模塊,用于獲取從所述攝像頭坐標(biāo)系到所述反射鏡所在的反射鏡坐標(biāo)系的轉(zhuǎn)換參數(shù);
第二獲取子模塊,用于根據(jù)所述轉(zhuǎn)換參數(shù)和所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);
第三獲取子模塊,用于根據(jù)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);
第四獲取子模塊,用于根據(jù)所述轉(zhuǎn)換參數(shù)和所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
優(yōu)選的,所述第一獲取子模塊包括:
向量獲取子模塊,用于獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的平移向量;以及
矩陣獲取子模塊,用于獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣。
優(yōu)選的,所述矩陣獲取子模塊具體用于:
任意選定兩個(gè)標(biāo)記點(diǎn),使得所述兩個(gè)標(biāo)記點(diǎn)組成的線段垂直于所述反射鏡所在的平面;
分別獲取所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo)和所述攝像頭坐標(biāo)系獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣;
所述旋轉(zhuǎn)矩陣為:
ZD×VD是ZD與VD的向量積,[V]X為向量v的向量積矩陣,其中
其中R表示旋轉(zhuǎn)矩陣,ZD表示所述攝像頭坐標(biāo)系的Z軸,VD表示所述反射鏡坐標(biāo)系的Z軸,I表示單位矩陣。
優(yōu)選的,所述第三獲取子模塊具體用于:獲取坐標(biāo)轉(zhuǎn)換函數(shù);利用所述坐標(biāo)轉(zhuǎn)換函數(shù)對(duì)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)進(jìn)行運(yùn)算,獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);
所述第四獲取模塊獲取的述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)表示為:
XD=XMR-1-T;
其中,XD表示所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),XM表示所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo),R表示旋轉(zhuǎn)矩陣,T表示平移向量。
第三方面,本發(fā)明提供一種對(duì)物體進(jìn)行三維掃描的系統(tǒng),包括:至少一個(gè)深度攝像頭和至少一個(gè)反射鏡;
所述深度攝像頭用于:在對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo);獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),其中所述成像點(diǎn)是所述反射點(diǎn)在對(duì)應(yīng)的反射鏡中的成像點(diǎn);根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
所述反射鏡用于對(duì)所述目標(biāo)物體進(jìn)行反射,形成所述反射點(diǎn)的成像點(diǎn)。
本發(fā)明的上述技術(shù)方案的有益效果如下:
在本發(fā)明實(shí)施例中,在利用深度攝像頭對(duì)物體進(jìn)行拍攝時(shí),直接獲得目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo)。對(duì)于反射點(diǎn),通過對(duì)其在反射鏡的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)進(jìn)行轉(zhuǎn)換而獲得反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。進(jìn)而通過直射點(diǎn)的三維坐標(biāo)和反射點(diǎn)的三維坐標(biāo)獲得目標(biāo)物體的三維信息。由上可以看出,利用本發(fā)明實(shí)施例的方案可以無需像現(xiàn)有技術(shù)那樣轉(zhuǎn)動(dòng)物體并進(jìn)行多次掃描,而是通過利用反射點(diǎn)的三維坐標(biāo)轉(zhuǎn)換獲得攝像頭無法直接獲得的反射點(diǎn)的坐標(biāo)。因而,利用本發(fā)明實(shí)施例的方案提高了對(duì)物體進(jìn)行三維掃描的速度。
附圖說明
圖1為本發(fā)明實(shí)施例一的對(duì)物體進(jìn)行三維掃描的方法的流程圖;
圖2為本發(fā)明實(shí)施例二中反射點(diǎn)和成像點(diǎn)的關(guān)系示意圖;
圖3為本發(fā)明實(shí)施例二的對(duì)物體進(jìn)行三維掃描的方法的流程圖;
圖4為本發(fā)明實(shí)施三的對(duì)物體進(jìn)行三維掃描的裝置的示意圖;
圖5為本發(fā)明實(shí)施四的對(duì)物體進(jìn)行三維掃描的系統(tǒng)的示意圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
在本發(fā)明實(shí)施例中,首先對(duì)幾個(gè)概念做如下解釋。目標(biāo)物體指的是待獲得 其三維信息的物體。其中該目標(biāo)物體可以是任意形狀的物體。對(duì)于該目標(biāo)物體,在具體應(yīng)用中可以認(rèn)為其是由無數(shù)個(gè)點(diǎn)組成的。其中,直射點(diǎn)指的是利用深度攝像頭能夠直接拍攝的到的目標(biāo)物體的一側(cè)上的點(diǎn);反射點(diǎn)指的是利用深度攝像頭不能直接拍攝的到的目標(biāo)物體的一側(cè)上的點(diǎn)。下文的成像點(diǎn),指的是反射點(diǎn)在反射鏡中的像點(diǎn)。通過獲取目標(biāo)物體上的各個(gè)直射點(diǎn)和反射點(diǎn)的三維坐標(biāo)即完了對(duì)物體的三維掃描。
由于物體自身遮擋等問題,常常導(dǎo)致無法利用深度攝像頭直接獲得反射點(diǎn)在深度攝像頭的攝像頭坐標(biāo)系中的三維坐標(biāo),因此,在本發(fā)明實(shí)施例中,通過將反射點(diǎn)在反射鏡中的成像點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo)進(jìn)行轉(zhuǎn)換獲得反射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo)。對(duì)于深度攝像頭所在的坐標(biāo)系以下稱為攝像頭坐標(biāo)系,該坐標(biāo)系的原點(diǎn)為深度攝像頭光心,其x-y平面為深度攝像頭傳感器所在的平面;反射鏡所在的坐標(biāo)系稱為反射鏡坐標(biāo)系,其中該坐標(biāo)系的x-y平面為反射鏡所在的平面,原點(diǎn)可為反射鏡平面上的任意一點(diǎn)。
如圖1所示,本發(fā)明實(shí)施例一的對(duì)物體進(jìn)行三維掃描的方法,包括:
步驟11、在利用深度攝像頭對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo)。
在此步驟中,由于直射點(diǎn)是利用深度攝像頭能夠直接拍攝到的目標(biāo)物體一側(cè)上的一點(diǎn),因此,可通過深度攝像頭的成像原理獲得直射點(diǎn)在深度攝像頭的攝像頭坐標(biāo)系中的三維坐標(biāo)。其中,在本發(fā)明實(shí)施例中深度攝像頭可以選用ToF(Time of Flight,飛行時(shí)間)攝像頭,例如微軟公司的Kinect2.0或者英特爾公司的RealSense深度攝像頭。
步驟12、獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),其中所述成像點(diǎn)是所述反射點(diǎn)在對(duì)應(yīng)的反射鏡中的成像點(diǎn)。
由于成像點(diǎn)是在反射鏡中,因此,在此實(shí)施例中利用深度攝像頭可直接拍攝到反射鏡中的成像點(diǎn),進(jìn)而在此步驟中可通過深度攝像頭的成像原理獲得成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
步驟13、根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
在此步驟中,可首先獲取從所述攝像頭坐標(biāo)系到所述反射鏡所在的反射鏡 坐標(biāo)系的轉(zhuǎn)換參數(shù)。其中所述轉(zhuǎn)換參數(shù)包括從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的平移向量和從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣。
然后,根據(jù)所述轉(zhuǎn)換參數(shù)和所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)。
接著,根據(jù)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)。
最后,再根據(jù)所述轉(zhuǎn)換參數(shù)和所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
對(duì)于目標(biāo)物體上的每個(gè)反射點(diǎn)均可按照上述方式獲取其在攝像頭坐標(biāo)系中的三維坐標(biāo)。然后,通過獲取的各直射點(diǎn)和反射點(diǎn)在攝像頭坐標(biāo)系中的坐標(biāo)即可確定目標(biāo)物體的三維信息。
由上可以看出,利用本發(fā)明實(shí)施例的方案可以無需像現(xiàn)有技術(shù)那樣轉(zhuǎn)動(dòng)物體并進(jìn)行多次掃描,而是通過利用反射點(diǎn)的三維坐標(biāo)轉(zhuǎn)換獲得攝像頭無法直接獲得的反射點(diǎn)的坐標(biāo)。因而,利用本發(fā)明實(shí)施例的方案提高了對(duì)物體進(jìn)行三維掃描的速度。
以下結(jié)合實(shí)施例二詳細(xì)描述一下本發(fā)明實(shí)施例的對(duì)物體進(jìn)行三維掃描的方法的實(shí)現(xiàn)過程。
在實(shí)施例二中,利用一個(gè)深度攝像頭和若干個(gè)反射鏡來確定目標(biāo)物體的三維信息。如前所述,深度攝像頭可以選用ToF攝像頭,例如微軟公司的Kinect2.0或者英特爾公司的RealSense深度攝像頭。其中,深度攝像頭至少包括一個(gè)紅外激光或結(jié)構(gòu)光發(fā)射器、一個(gè)紅外或彩色攝像頭。在具體應(yīng)用中,深度攝像頭可以通過分析攝像頭成像計(jì)算出每一個(gè)像素的深度信息。
在具體應(yīng)用中,將若干反射鏡分別置于不同位置,并將目標(biāo)物體放置于反射鏡和深度攝像頭之間,使得深度攝像頭可以直接獲取目標(biāo)物體的任意一個(gè)角度的圖像并依此計(jì)算其深度圖,也即獲得目標(biāo)物體的該角度的直射點(diǎn)的深度圖,在此,將該深度圖稱為直射深度圖。同時(shí),深度攝像頭可以通過反射鏡獲取目標(biāo)物體在其他角度通過反射鏡反射的圖像,并計(jì)算反射后的深度圖。在此將該深度圖稱為反射深度圖。
根據(jù)前述實(shí)施例的描述可以得知,在本發(fā)明實(shí)施例中,可根據(jù)反射鏡與深 度攝像頭之間的相對(duì)位置關(guān)系推算出反射深度圖與直射深度圖之間的對(duì)應(yīng)關(guān)系,從而對(duì)反射深度圖進(jìn)行相應(yīng)的旋轉(zhuǎn)和平移,獲得目標(biāo)物體的三維信息。在放置反射鏡的時(shí)候,為了保證高效的獲取目標(biāo)物體的三維信息,需使得反射鏡的位置滿足以下兩個(gè)條件:
(1)、從深度攝像頭的紅外發(fā)射器或結(jié)構(gòu)光發(fā)射器發(fā)出的光線,經(jīng)某一反射鏡和目標(biāo)物體漫反射后,不會(huì)再入射到其他的反射鏡中而對(duì)深度攝像頭造成干擾。(2)、保證目標(biāo)物體經(jīng)過反射鏡后在深度攝像頭中所成的像與目標(biāo)物體直接在深度攝像頭中的成像不重疊。
如圖2所示,假設(shè)某個(gè)目標(biāo)物體上的一點(diǎn)q因?yàn)槟繕?biāo)物體自身遮擋的原因不能被深度攝像頭直接拍攝,但通過反射鏡M進(jìn)行反射后的成像點(diǎn)可被深度攝像頭拍攝。實(shí)際應(yīng)用中,深度攝像頭通過自身紅外激光或結(jié)構(gòu)光發(fā)射器發(fā)射出的帶有相位信息的紅外激光或結(jié)構(gòu)光,經(jīng)過反射鏡的平面反射后照射在q點(diǎn)上。q點(diǎn)對(duì)紅外激光或結(jié)構(gòu)光進(jìn)行漫反射,反射后的光線形成不同方向的紅外激光或結(jié)構(gòu)光光線。這些不同方向的光線再經(jīng)反射鏡反射后入射到深度攝像頭的攝像頭中成像p’。
在具體應(yīng)用中,該反射鏡的放置需要滿足以上兩個(gè)條件從而使得p和p’不重合。
如圖3所示,本發(fā)明實(shí)施例二的對(duì)物體進(jìn)行三維掃描的方法,包括:
步驟21、在利用深度攝像頭對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo)。
步驟22、獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
其中,步驟21和步驟22可參照前述實(shí)施例一的描述。
步驟23、根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
在具體應(yīng)用中,深度攝像頭根據(jù)發(fā)射和接收到的紅外激光相位差或結(jié)構(gòu)光圖像變化可計(jì)算得到p’的深度。通過圖2可以看出,假如目標(biāo)物體沒有自身遮擋問題,q點(diǎn)在深度攝像頭中的坐標(biāo)應(yīng)為點(diǎn)p,而實(shí)際中使用反射鏡反射q點(diǎn)光線后深度攝像頭所獲取的像為p’,而p’是q在反射鏡中的像q’在深度攝像 頭上的投影。因此,在此實(shí)施例中需要將獲取到的q’在攝像頭坐標(biāo)系中的三維坐標(biāo)轉(zhuǎn)換為q在攝像頭坐標(biāo)系中的三維坐標(biāo)轉(zhuǎn)換。也就是說,在此實(shí)施例中,需要將反射深度圖按照一定的轉(zhuǎn)換關(guān)系轉(zhuǎn)換到直射深度圖的坐標(biāo)系中。該坐標(biāo)轉(zhuǎn)換通過如下方法實(shí)現(xiàn)。
步驟231、獲取從所述攝像頭坐標(biāo)系到所述反射鏡所在的反射鏡坐標(biāo)系的轉(zhuǎn)換參數(shù)。
其中所述轉(zhuǎn)換參數(shù)包括從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的平移向量和從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣。該步驟包括以下過程:
步驟231a、獲取深度攝像頭坐標(biāo)系原點(diǎn)到反射鏡坐標(biāo)系原點(diǎn)的平移向量。
如前所述,攝像頭坐標(biāo)系的原點(diǎn)為深度攝像頭光心,其x-y平面為深度攝像頭傳感器所在的平面;反射鏡坐標(biāo)系的x-y平面為反射鏡所在的平面,原點(diǎn)可為反射鏡平面上的任意一點(diǎn)。因此,通過兩個(gè)坐標(biāo)系中原點(diǎn)的三維坐標(biāo)可以確定出深度攝像頭坐標(biāo)系原點(diǎn)到反射鏡坐標(biāo)系原點(diǎn)的平移向量為T。
步驟231b、獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣。
其中,深度攝像頭坐標(biāo)系到反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣R可通過測量標(biāo)定的方法獲得。
在該步驟中,任意選定兩個(gè)標(biāo)記點(diǎn),使得這兩標(biāo)記點(diǎn)組成的線段垂直于反射鏡所在的平面。具體的,可首先分別獲取所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),然后根據(jù)所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述線段的方向向量V在所述攝像頭坐標(biāo)系中的三維坐標(biāo)VD。其中,根據(jù)前述的描述可以得出,方向向量V在反射鏡坐標(biāo)系中是該反射鏡坐標(biāo)系的Z軸。
方向向量V在所述攝像頭坐標(biāo)系中的三維坐標(biāo)VD的具體數(shù)值由兩標(biāo)記點(diǎn)在深度攝像頭坐標(biāo)系的三維坐標(biāo)決定。以其中一個(gè)標(biāo)記點(diǎn)為例,假設(shè)該標(biāo)記點(diǎn)在深度攝像頭的圖像坐標(biāo)為(x,y),深度值為z,z是米制絕對(duì)深度值,則該標(biāo)記點(diǎn)在攝像頭坐標(biāo)系的值(xD,yD,zD)分別為:
xD=(x-cx)*z/fx
yD=(y-cy)*z/fy
zD=z
其中,cx,cy,fx,fy為深度攝像頭內(nèi)參,分別代表深度攝像頭光學(xué)在圖像上投影的橫坐標(biāo),縱坐標(biāo),焦距(以橫向像素?cái)?shù)為單位),焦距(以縱向像素?cái)?shù)為單位)。
按照上述方式獲得另外一個(gè)標(biāo)記點(diǎn)的三維坐標(biāo),進(jìn)而根據(jù)兩個(gè)標(biāo)記點(diǎn)的三維坐標(biāo)得出方向向量V在所述攝像頭坐標(biāo)系中的三維坐標(biāo)VD。
然后,根據(jù)所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo)和所述攝像頭坐標(biāo)系可獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣R。旋轉(zhuǎn)矩陣R即為攝像頭坐標(biāo)系的z軸ZD到反射鏡坐標(biāo)系的z軸(VD)的旋轉(zhuǎn)矩陣。旋轉(zhuǎn)矩陣R的具體計(jì)算方法如下:
ZD×VD是ZD與VD的向量積,[V]X為向量v的向量積矩陣,其中
其中,I表示單位矩陣。
步驟232、根據(jù)所述轉(zhuǎn)換參數(shù)和所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)。
假設(shè)點(diǎn)q’在攝像頭坐標(biāo)系的三維坐標(biāo)為X'D,因此可計(jì)算出q’在反射鏡坐標(biāo)系的三維坐標(biāo)X'M,X'M=X'DR+T。
步驟233、根據(jù)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)。
步驟233a、獲取坐標(biāo)轉(zhuǎn)換函數(shù)。
在此,假設(shè)設(shè)坐標(biāo)轉(zhuǎn)換函數(shù)mp(x,y,z)=(x,y,-z)。
步驟233b、利用所述坐標(biāo)轉(zhuǎn)換函數(shù)對(duì)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)進(jìn)行運(yùn)算,獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)。
由于反射鏡坐標(biāo)系的x-y平面為反射鏡平面,因此點(diǎn)q與其像點(diǎn)q’在x軸,y軸上的值均相等,只在z軸上的值相反。因此,利用該函數(shù)可計(jì)算點(diǎn)q在反射鏡坐標(biāo)系中的三維坐標(biāo)XM為:XM=mp(X'M)。
步驟234、根據(jù)所述轉(zhuǎn)換參數(shù)和所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
在此,將q點(diǎn)在反射鏡坐標(biāo)系中的三維坐標(biāo)XM轉(zhuǎn)換到其在攝像頭坐標(biāo)系的三維坐標(biāo)。根據(jù)上述獲得的q’在反射鏡坐標(biāo)系的三維坐標(biāo)和坐標(biāo)轉(zhuǎn)換函數(shù),最終獲取q點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo)XD=XMR-1-T。
由上可以看出,利用本發(fā)明實(shí)施例的方案可以無需像現(xiàn)有技術(shù)那樣轉(zhuǎn)動(dòng)物體并進(jìn)行多次掃描,而是通過利用反射點(diǎn)的三維坐標(biāo)轉(zhuǎn)換獲得攝像頭無法直接獲得的反射點(diǎn)的坐標(biāo)。因而,利用本發(fā)明實(shí)施例的方案提高了對(duì)物體進(jìn)行三維掃描的速度。
如圖4所示,本發(fā)明實(shí)施例三的對(duì)物體進(jìn)行三維掃描的裝置,包括:
第一獲取單元41,用于在對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo);第二獲取單元42,用于獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),其中所述成像點(diǎn)是所述反射點(diǎn)在對(duì)應(yīng)的反射鏡中的成像點(diǎn);第三獲取單元43,用于根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
其中,所述第二獲取單元42可包括:第一獲取子模塊,用于獲取從所述攝像頭坐標(biāo)系到所述反射鏡所在的反射鏡坐標(biāo)系的轉(zhuǎn)換參數(shù);第二獲取子模塊,用于根據(jù)所述轉(zhuǎn)換參數(shù)和所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);第三獲取子模塊,用于根據(jù)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);第四獲取子模塊,用于根據(jù)所述轉(zhuǎn)換參數(shù)和所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)。
具體的,所述第一獲取子模塊可包括:向量獲取子模塊,用于獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的平移向量;以及矩陣獲取子模塊,用于獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣。
其中,所述矩陣獲取子模塊具體用于:
任意選定兩個(gè)標(biāo)記點(diǎn),使得所述兩個(gè)標(biāo)記點(diǎn)組成的線段垂直于所述反射鏡 所在的平面;
分別獲取所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述兩個(gè)標(biāo)記點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo);
根據(jù)所述線段的方向向量在所述攝像頭坐標(biāo)系中的三維坐標(biāo)和所述攝像頭坐標(biāo)系獲取從所述攝像頭坐標(biāo)系到所述反射鏡坐標(biāo)系的旋轉(zhuǎn)矩陣;
所述旋轉(zhuǎn)矩陣為:
ZD×VD是ZD與VD的向量積,[V]X為向量v的向量積矩陣,其中
其中R表示旋轉(zhuǎn)矩陣,ZD表示所述攝像頭坐標(biāo)系的Z軸,VD表示所述反射鏡坐標(biāo)系的Z軸,I表示單位矩陣。
其中,所述第三獲取子模塊具體用于:獲取坐標(biāo)轉(zhuǎn)換函數(shù);利用所述坐標(biāo)轉(zhuǎn)換函數(shù)對(duì)所述成像點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo)進(jìn)行運(yùn)算,獲取所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo);
所述第四獲取模塊獲取的述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)表示為:
XD=XMR-1-T;
其中,XD表示所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),XM表示所述反射點(diǎn)在所述反射鏡坐標(biāo)系中的三維坐標(biāo),R表示旋轉(zhuǎn)矩陣,T表示平移向量。
本發(fā)明所述裝置的工作原理可參照前述方法實(shí)施例的描述,該裝置可位于深度攝像頭中。
由上可以看出,利用本發(fā)明實(shí)施例的方案可以無需像現(xiàn)有技術(shù)那樣轉(zhuǎn)動(dòng)物體并進(jìn)行多次掃描,而是通過利用反射點(diǎn)的三維坐標(biāo)轉(zhuǎn)換獲得攝像頭無法直接獲得的反射點(diǎn)的坐標(biāo)。因而,利用本發(fā)明實(shí)施例的方案提高了對(duì)物體進(jìn)行三維掃描的速度。
如圖5所示,本發(fā)明實(shí)施例四的對(duì)物體進(jìn)行三維掃描的系統(tǒng)50,包括: 至少一個(gè)深度攝像頭51和至少一個(gè)反射鏡52;
所述深度攝像頭51用于:在對(duì)目標(biāo)物體進(jìn)行拍攝時(shí),獲取目標(biāo)物體的直射點(diǎn)在攝像頭坐標(biāo)系中的三維坐標(biāo);獲取所述目標(biāo)物體的反射點(diǎn)的成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo),其中所述成像點(diǎn)是所述反射點(diǎn)在對(duì)應(yīng)的反射鏡中的成像點(diǎn);根據(jù)所述成像點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo)獲取所述反射點(diǎn)在所述攝像頭坐標(biāo)系中的三維坐標(biāo);所述反射鏡52用于對(duì)所述目標(biāo)物體進(jìn)行反射,形成所述反射點(diǎn)的成像點(diǎn)。
本發(fā)明所述系統(tǒng)的工作原理可參照前述方法實(shí)施例的描述。
由上可以看出,利用本發(fā)明實(shí)施例的方案可以無需像現(xiàn)有技術(shù)那樣轉(zhuǎn)動(dòng)物體并進(jìn)行多次掃描,而是通過利用反射點(diǎn)的三維坐標(biāo)轉(zhuǎn)換獲得攝像頭無法直接獲得的反射點(diǎn)的坐標(biāo)。因而,利用本發(fā)明實(shí)施例的方案提高了對(duì)物體進(jìn)行三維掃描的速度。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。