本發明涉及3D成像技術領域,特別涉及一種激光結構光3D成像方法。
背景技術:
目前的3D成像和3D投影等大多都是用散斑光源或者LED光源來成像。但是傳統的散斑成像,由于高空間相干性的問題,會產生大量隨機的斑點或顆粒狀的圖案,嚴重影響成像效果;LED光源成像雖然能夠避免這種失真,但是對于高速成像來說由于自身的亮度不夠使得它的應用具有一定的局限性。由于激光的亮度極高,相干性好,閃光時間短,能量密度極大等優點,使得激光的應用越來越廣泛,被廣泛應用到各種各樣的領域。MEMS微振鏡在偏轉激光束的時候由于偏轉過程中線速度的不同,使得得到的光柵的寬度不同和亮度不均勻,在3D建模成像過程中得到的圖像能量分布不均勻和噪聲等問題,使得它的應用受到一定限制。
技術實現要素:
為了解決上述發明問題,一種激光結構光3D成像方法,包括用于生成結構光的光學模組、攝像機、上位機及硬件控制電路,所述光學模組包括由激光器、透鏡、及MEMS微振鏡依次排列組成的光路;所述硬件控制電路由ARM模塊、FPGA模塊、振鏡驅動電路模塊、激光器驅動模塊、MEMS振鏡光電探測器模塊及LD光電探測器模塊組成。包括如下步驟:
步驟一,通過ARM模塊計算出等間距等亮度激光機構光的激光器的出光時刻點;
步驟二,ARM模塊將計算結果發送至FPGA模塊,FPGA模塊按照步驟一中的計算結果通過激光器驅動模塊對激光器進行控制、通過振鏡驅動模塊對MEMS微振鏡進行控制;
步驟三,激光器在FPGA模塊的控制下出射激光光束至透鏡;
步驟四,透鏡將激光器的入射光調制成散射均勻的激光線條,并入射至MEMS微振鏡;
步驟五,MEMS振鏡光電探測器模塊對MEMS振鏡的相位信息進行采集,并將采集到的信息傳遞給ARM模塊;LD光電探測器模塊對通過LD激光器的電流進行采集,并將采集的反饋信息傳遞給ARM模塊,以此控制LD激光器始終工作在閾值電流以上;ARM模塊根據接收的信息重新計算出激光器的出光時刻點,并將該出光時刻點信息傳遞給FPGA模塊;
步驟六,FPGA模塊根據ARM模塊傳遞的激光器時刻點信息,實時調整控制激光器和MEMS振鏡的轉動,MEMS振鏡將入射的激光線條輸出為等間距等亮度的結構光;
步驟七,用所述結構光掃描被檢測物體,CCD攝像機在ARM模塊的控制下對被檢測物體進行拍攝,記錄被該物體反射的結構光圖像,并通過圖像存儲模塊將圖像回傳給ARM模塊;
步驟八,ARM模塊將獲取圖像信息傳遞至上位機,并由上位機對圖像進行處理,通過標定對比得到被檢測物體掃描的三維坐標,上位機對三維坐標進行再次處理,以此得到物體的三維圖像。
優選為,所述步驟二中,ARM模塊根據如下公式獲得所述MEMS微振鏡的最大偏轉角度與所述激光器出光時刻點,
其中,βi為第i時刻出射光線距最大出射光線的角度,N為掃描半周期內的明線條或者暗線條的數量;
其中,ti為激光器的出光時刻點,f為振鏡頻率,T為振鏡的轉動周期;FPGA模塊控制MEMS微振鏡進行諧振;FPGA模塊控制激光器以ti為出光時刻點進行通斷。
優選為,所述激光器為LD激光器。
優選為,所述透鏡為雙面透鏡,其中一面為可以對入射光束進行聚焦和準直的入射面,另外一面為可將入射的光束發散成均勻線條的出射面。
一種均勻能量等間距的激光光源結構光控制算法
由于MEMS振鏡和激光器協同控制過程中,得到的結構光的具有寬度和亮度的不均勻的缺陷,本方法通過建模得到了等間距和等亮度的結構光,克服了這兩個缺陷,得到均勻能量的等間距結構光。
首先建立MEMS振鏡和激光器的參考模型,α是結構光的最大角度,βi為第i時刻出射光線距最大出射光線的角度,l1和l2為振鏡轉動過程中的兩個不同位置。N為掃描半周期內的明線條或者暗線條的數量。D為振鏡中心到掃描屏的距離。設定掃描線數N=8192、α=60°、MEMS振鏡的頻率f=456Hz,以MEMS振鏡的偏轉的最大角度為參考點,求出它所對應的運動軌跡表達式:
根據參考模型,推導得到
以此得到所對應時刻MEMS振鏡的偏轉角度;
將得到角度代入下式得到等間距的激光器出光時刻點,
分析得到結構光亮度最大的時間間隔的兩個時刻點t8192到t8193,用0~255這256個數來量化每個結構光的能量,通過計算每個結構光的的時間間隔,用255來表示最大亮度的結構光,求出最大亮度的時刻差,進行如下運算:
Δtmin=t8192-t8193
Δtmin*255=ξ(常數,量化的最大亮度)
求出每個結構光對應的能量,即可得到均勻亮度的結構光條紋:
Pu(t)=ξ/Δtmin
用得到的16384根等間距等亮度的結構光來重構得到不同的明暗條紋數,即可得到等間距等亮度的明暗條紋。
通過硬件和軟件實現得到的等間距等亮度的結構光條紋。
一種3D掃描成像系統,包括由依次排列的激光器、透鏡、振鏡組成的光路,振鏡與振鏡驅動電路模塊連接,激光器與激光器驅動模塊連接,所述振鏡驅動電路模塊與激光器驅動模塊均連接FPGA模塊,FPGA模塊還連接ARM模塊,所述振鏡為MEMS微振鏡;ARM模塊通過激光器光電探測模塊與激光器連接、通過振鏡光電探測模塊與振鏡連接;ARM模塊還分別連接圖像上位機、存儲模塊及左右兩個CCD攝像機;
優選為,所述透鏡為雙面透鏡,其中一面為可以對入射光束進行聚焦和準直的入射面,另外一面為可將入射的光束發散成均勻線條的出射面。
優選為,所述激光器為LD激光器。即半導體激光器。
優選為,ARM模塊根據如下公式獲得所述MEMS微振鏡的最大偏轉角度與所述激光器出光時刻點,
其中,βi為第i時刻出射光線距最大出射光線的角度,N為掃描半周期內的明線條或者暗線條的數量;
其中,ti為激光器的出光時刻點,f為振鏡頻率,T為振鏡的轉動周期;FPGA模塊控制MEMS微振鏡以βi為諧振角度進行諧振;FPGA模塊控制激光器以ti為出光時刻點進行通斷。
MEMS振鏡驅動模塊包括升壓電路、濾波電路,來得到驅動靜電式MEMS振鏡的電壓,另一方面通過ARM來輸出正弦信號或者方波信號來驅動振鏡以諧振頻率振動;
MEMS振鏡驅動模塊和LD激光器驅動模塊控制光學模組產生均勻的散射激光束,經過ARM和FPGA的協同控制得到等間距等亮度的激光光柵;
MEMS振鏡光電探測器模塊將采集到的信息傳遞給ARM,通過得到的反饋信息來檢測MEMS振鏡的頻率和相位;LD光電探測器模塊將采集的反饋信息傳遞給ARM,得到LD激光器的開啟閾值;
等間距等亮度的激光光柵掃描被檢測到的物體,ARM控制CCD攝像機模塊以一定的時間間隔拍攝被物體反射的激光光柵圖像,并將這些圖像傳遞給ARM進行緩存處理;
上位機模塊對ARM傳遞給的圖像進行增強、濾波、處理等,通過標定對比得到物體掃描的三維坐標,上位機對三維坐標進行再次處理,這些點云三維數據重構后得到物體的三維圖像。
3D掃描成像系統的工作過程為:
1、采用高功率的激光器出射激光光束,通過雙面透鏡的一面聚焦和準值,另一面發散激光束,散射成均勻的激光線條;
2、振鏡驅動電路模塊控制MEMS振鏡,使之按照一定的軌跡運動,達到諧振狀態;
3、MEMS振鏡光電探測器模塊對MEMS振鏡的相位信息進行采集,并將采集到的信息傳遞給ARM模塊;LD光電探測器模塊對通過LD激光器的電流進行采集,并將采集的反饋信息傳遞給ARM模塊,以此控制LD激光器始終工作在閾值電流以上;ARM模塊根據接收的信息重新計算出激光器的出光時刻點,并將該出光時刻點信息傳遞給FPGA模塊;
4、FPGA模塊根據ARM模塊傳遞的激光器時刻點信息,實時調整控制激光器和MEMS振鏡的轉動,MEMS振鏡將入射的激光線條輸出為等間距等亮度的結構光;
5、用所述結構光掃描被檢測物體,CCD攝像機在ARM模塊的控制下對被檢測物體進行拍攝,記錄被該物體反射的結構光圖像,并通過圖像存儲模塊將圖像回傳給ARM模塊;
6、ARM模塊將獲取圖像信息傳遞至上位機,并由上位機對圖像進行處理,通過標定對比得到被檢測物體掃描的三維坐標,上位機對三維坐標進行再次處理,以此得到物體的三維圖像。
其中上位機選用電腦,在上位機中,定義一個無限細分的二維網格,標定每個交點的坐標為(x0,y0),(x1,y1),(x2,y2),(x3,y3),…,(xn-1,yn-1),(xn,yn)
通過對比標定好的二維網格坐標和一定的算法,計算得到二維圖像上每個點的坐標,輸出并存儲每個點的二維坐標值。
通過激光的三角測距法得到物體上每個點距CCD攝像機的距離,上位機對這些數據進行重組篩選處理得到物體上每個點的深度坐標,同第一步得到的二維坐標重組,得到圖像上每個點的三維坐標。
將得到的攝像機坐標系的圖像的三維坐標進行轉換,得到世界坐標系下的每個圖像的三維坐標。
將得到的一系列三維坐標構成的點云數據進行處理,利用上位機軟件算法實現物體的3D建模,也即:重構得到三維的立體的物體形狀。二維圖像轉化至三維圖像為現有技術,在此不再贅述。
本發明實施例提供的技術方案帶來的有益效果是:使用MEMS微振鏡產生等間距等亮度的掃描機構光。
解決了激光器出射光線在MEMS在偏轉過程中得到的機構光條紋寬度和亮度的不均勻的問題,得到了等間距和等亮度的激光結構光。
通過ARM模塊和FPGA模塊協同MEMS振鏡、LD激光器和CCD攝像機,一方面降低了運行時對芯片資源要求,同時能夠提高運算速度和精度,另一方面,上位機處理圖像處理算法更方便快捷,可視化效果更好。因而,在激光投影、增強現實、結構光掃描、激光雷達和醫療顯像與掃描等各種各樣的領域有很好的應用前途。
附圖說明
圖1為本發明實施例的MEMS振鏡和激光器的參考建模圖。
圖2為本發明實施例的激光器出光時刻點所對應的結構光間距線圖。
圖3為本發明實施例的等間距結構光所對應的激光器的出光時刻曲線圖。
圖4為本發明實施例的N=4時,等間距結構光所對應的優化前后的激光器出光時刻和對比曲線。
圖5為本發明實施例的N=8時,等間距結構光所對應的優化前后的激光器出光時刻和對比曲線。
圖6為本發明實施例的N=1024時,等間距結構光所對應的優化前后的激光器出光時刻和對比曲線。
圖7為本發明實施例的8個等間距等亮度條紋。
圖8為本發明實施例的32個等間距等亮度條紋。
圖9為本發明實施例的64個等間距等亮度條紋。
圖10為本發明實施例的128個等間距等亮度條紋。
圖11為本發明實施例的原理框圖。
圖12為本發明實施例的實現流程圖。
圖13為本發明實施例的振鏡驅動電路圖。
圖14為本發明實施例的電壓變換電路圖一。
圖15為本發明實施例的電壓變換電路圖二。
圖16為本發明實施例的電壓變換電路圖三。
圖17為本發明實施例的電壓變換電路圖四。
圖18為本發明實施例的激光器供電電路圖。
圖19為本發明實施例的激光器驅動電路圖。
圖20為本發明實施例的上位機標定網格示意圖。
圖21為本發明實施例的攝像機坐標系和世界坐標系的轉換圖。
圖22為本發明實施例的左側CCD拍攝到的激光光柵掃描物體示例圖。
圖23為本發明實施例的右側CCD拍攝到的激光光柵掃描物體示例。
圖24為本發明實施例的3D重構的物體示例圖。
具體實施方式
實施例1
參見圖1至圖24,本發明提供一種激光結構光3D成像方法,包括用于生成結構光的光學模組、攝像機、上位機及硬件控制電路,光學模組包括由激光器、透鏡、及MEMS微振鏡依次排列組成的光路;硬件控制電路由ARM模塊、FPGA模塊、振鏡驅動電路模塊、激光器驅動模塊、MEMS振鏡光電探測器模塊及LD光電探測器模塊組成。包括如下步驟:
步驟一,通過ARM模塊計算出等間距等亮度激光機構光的激光器的出光時刻點;
步驟二,ARM模塊將計算結果發送至FPGA模塊,FPGA模塊按照步驟一中的計算結果通過激光器驅動模塊對激光器進行控制、通過振鏡驅動模塊對MEMS微振鏡進行控制;
步驟三,激光器在FPGA模塊的控制下出射激光光束至透鏡;
步驟四,透鏡將激光器的入射光調制成散射均勻的激光線條,并入射至MEMS微振鏡;
步驟五,MEMS振鏡光電探測器模塊對MEMS振鏡的相位信息進行采集,并將采集到的信息傳遞給ARM模塊;LD光電探測器模塊對通過LD激光器的電流進行采集,并將采集的反饋信息傳遞給ARM模塊,以此控制LD激光器始終工作在閾值電流以上;ARM模塊根據接收的信息重新計算出激光器的出光時刻點,并將該出光時刻點信息傳遞給FPGA模塊;
步驟六,FPGA模塊根據ARM模塊傳遞的激光器時刻點信息,實時調整控制激光器和MEMS振鏡的轉動,MEMS振鏡將入射的激光線條輸出為等間距等亮度的結構光;
步驟七,用結構光掃描被檢測物體,CCD攝像機在ARM模塊的控制下對被檢測物體進行拍攝,記錄被該物體反射的結構光圖像,并通過圖像存儲模塊將圖像回傳給ARM模塊;
步驟八,ARM模塊將獲取圖像信息傳遞至上位機,并由上位機對圖像進行處理,通過標定對比得到被檢測物體掃描的三維坐標,上位機對三維坐標進行再次處理,以此得到物體的三維圖像。
步驟二中,ARM模塊根據如下公式獲得MEMS微振鏡的最大偏轉角度與激光器出光時刻點,
其中,βi為第i時刻出射光線距最大出射光線的角度,N為掃描半周期內的明線條或者暗線條的數量;
其中,ti為激光器的出光時刻點,f為振鏡頻率,T為振鏡的轉動周期;FPGA模塊控制MEMS微振鏡進行諧振;FPGA模塊控制激光器以ti為出光時刻點進行通斷。
激光器為LD激光器。
透鏡為雙面透鏡,其中一面為可以對入射光束進行聚焦和準直的入射面,另外一面為可將入射的光束發散成均勻線條的出射面。
一種均勻能量等間距的激光光源結構光控制算法
由于MEMS振鏡和激光器協同控制過程中,得到的結構光的具有寬度和亮度的不均勻的缺陷,本方法通過建模得到了等間距和等亮度的結構光,克服了這兩個缺陷,得到均勻能量的等間距結構光。
首先建立MEMS振鏡和激光器的參考模型,α是結構光的最大角度,βi為第i時刻出射光線距最大出射光線的角度,l1和l2為振鏡轉動過程中的兩個不同位置。N為掃描半周期內的明線條或者暗線條的數量。D為振鏡中心到掃描屏的距離。設定掃描線數N=8192、α=60°、MEMS振鏡的頻率f=456Hz,以MEMS振鏡的偏轉的最大角度為參考點,求出它所對應的運動軌跡表達式:
根據參考模型,推導得到
以此得到所對應時刻MEMS振鏡的偏轉角度;
將得到角度代入下式得到等間距的激光器出光時刻點,
分析得到結構光亮度最大的時間間隔的兩個時刻點t8192到t8193,用0~255這256個數來量化每個結構光的能量,通過計算每個結構光的的時間間隔,用255來表示最大亮度的結構光,求出最大亮度的時刻差,進行如下運算:
Δtmin=t8192-t8193
Δtmin*255=ξ(常數,量化的最大亮度)
求出每個結構光對應的能量,即可得到均勻亮度的結構光條紋:
Pu(t)=ξ/Δtmin
用得到的16384根等間距等亮度的結構光來重構得到不同的明暗條紋數,即可得到等間距等亮度的明暗條紋。
通過硬件和軟件實現得到的等間距等亮度的結構光條紋。
一種3D掃描成像系統,包括由依次排列的激光器、透鏡、振鏡組成的光路,振鏡與振鏡驅動電路模塊連接,激光器與激光器驅動模塊連接,振鏡驅動電路模塊與激光器驅動模塊均連接FPGA模塊,FPGA模塊還連接ARM模塊,振鏡為MEMS微振鏡;ARM模塊通過激光器光電探測模塊與激光器連接、通過振鏡光電探測模塊與振鏡連接;ARM模塊還分別連接圖像上位機、存儲模塊及左右兩個CCD攝像機;
透鏡為雙面透鏡,其中一面為可以對入射光束進行聚焦和準直的入射面,另外一面為可將入射的光束發散成均勻線條的出射面。
激光器為LD激光器。即半導體激光器。
ARM模塊根據如下公式獲得MEMS微振鏡的最大偏轉角度與激光器出光時刻點,
其中,βi為第i時刻出射光線距最大出射光線的角度,N為掃描半周期內的明線條或者暗線條的數量;
其中,ti為激光器的出光時刻點,f為振鏡頻率,T為振鏡的轉動周期;FPGA模塊控制MEMS微振鏡以βi為諧振角度進行諧振;FPGA模塊控制激光器以ti為出光時刻點進行通斷。
MEMS振鏡驅動模塊包括升壓電路、濾波電路,來得到驅動靜電式MEMS振鏡的電壓,另一方面通過ARM來輸出正弦信號或者方波信號來驅動振鏡以諧振頻率振動;
MEMS振鏡驅動模塊和LD激光器驅動模塊控制光學模組產生均勻的散射激光束,經過ARM和FPGA的協同控制得到等間距等亮度的激光光柵;
MEMS振鏡光電探測器模塊將采集到的信息傳遞給ARM,通過得到的反饋信息來檢測MEMS振鏡的頻率和相位;LD光電探測器模塊將采集的反饋信息傳遞給ARM,得到LD激光器的開啟閾值;
等間距等亮度的激光光柵掃描被檢測到的物體,ARM控制CCD攝像機模塊以一定的時間間隔拍攝被物體反射的激光光柵圖像,并將這些圖像傳遞給ARM進行緩存處理;
上位機模塊對ARM傳遞給的圖像進行增強、濾波、處理等,通過標定對比得到物體掃描的三維坐標,上位機對三維坐標進行再次處理,這些點云三維數據重構后得到物體的三維圖像。
外圍電路方面不是本發明的技術要點,不存在必要的發明特征,本領域技術人員可以用其它相關電路進行替換使用。
MEMS微振鏡,采用靜電式MEMS振鏡,通過振鏡驅動電路模塊驅動振鏡使振鏡達到諧振狀態,MEMS振鏡的最大偏轉角度為60度。
激光器驅動模塊,通過驅動芯片控制LD激光器的通斷時間間隔,以及LD激光器的亮度調制等;激光器控制模塊的主控芯片型號是MAX3601A。
MEMS振鏡驅動電路模塊,主要包括直流穩壓電源、升壓芯片、運算放大電路。該模塊用來輸出驅動MEMS振鏡所需要的電壓;MEMS振鏡驅動模塊是以LM2733YML為主控芯片控制的升壓電路
ARM模塊,計算出等間距等亮度激光機構光的LD激光器的出光時刻點,傳遞給FPGA來控制激光器和MEMS振鏡的偏轉,ARM模塊的主控芯片型號是STM32F107VCT6。
FPGA模塊,協同控制MEMS振鏡和LD激光器,伴隨著MEMS振鏡的諧振,使得均勻的激光機構光變成等間距等亮度的激光機構光。FPGA模塊的主芯片XC6SLX45-2CSG32。
以上所述僅為本發明的較佳實施例,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。