陳鑌,黃曉權(quán)
?。ㄎ湟膶W(xué)院 機(jī)電工程學(xué)院,福建 武夷山 354300)
摘要:激光掃描測(cè)距儀以飛思卡爾MK60DN512ZVLQ10微控制器為處理及控制的核心單元,通過(guò)CMOS圖像傳感器對(duì)線狀激光在物體上形成截面反射進(jìn)行實(shí)時(shí)捕捉采集圖像,利用DMA快速儲(chǔ)存方式存儲(chǔ)圖像,并對(duì)圖像進(jìn)行分析處理獲得激光的坐標(biāo),再結(jié)合舵機(jī)旋轉(zhuǎn)掃描獲得多列數(shù)據(jù),最終將數(shù)據(jù)轉(zhuǎn)化為各點(diǎn)的三維坐標(biāo),由此獲得掃描物體或場(chǎng)景的三維點(diǎn)云數(shù)據(jù)并實(shí)現(xiàn)三維模型重建。該設(shè)計(jì)方案可靠,成本低廉,同時(shí)擁有良好的測(cè)量精度。
關(guān)鍵詞:激光掃描;CMOS圖像傳感器;飛思卡爾MK60;點(diǎn)云數(shù)據(jù);3D模型重建
0引言
人類(lèi)對(duì)于外界事物的感知80%是通過(guò)視覺(jué)來(lái)獲取的[1]。而通過(guò)激光掃描實(shí)現(xiàn)的實(shí)景復(fù)制則可以很好地重現(xiàn)立體視覺(jué)感知,所以3D掃描技術(shù)具有相當(dāng)廣泛的用途,例如工業(yè)設(shè)計(jì)、機(jī)器人導(dǎo)航、地貌測(cè)量、逆向工程、數(shù)字文物典藏、生物信息、電影制片、游戲素材創(chuàng)作等都可應(yīng)用。
但3D激光掃描研究更多地被應(yīng)用于大型工程精確測(cè)量中,實(shí)際用于家庭及個(gè)人的民用低成本研究相對(duì)較少,并且成熟的設(shè)計(jì)方案也不多。因此研究低成本并具有良好性能的激光掃描測(cè)距儀有十分重要的現(xiàn)實(shí)意義和市場(chǎng)價(jià)值。
1激光掃描儀系統(tǒng)結(jié)構(gòu)
本設(shè)計(jì)基于飛思卡爾公司Kinetis系列的MK60DN512ZVLQ10(K60)ARM CortexM4內(nèi)核架構(gòu)的微處理器,其外圍功能豐富,最高主頻可達(dá)100 MHz,具有強(qiáng)大的數(shù)據(jù)處理能力和豐富的功能外設(shè),具備了所需的PWM、DMA、IIC等功能模塊,并且擁有FlexBus存儲(chǔ)接口,支持外部SRAM的擴(kuò)展[2]。具體的系統(tǒng)結(jié)構(gòu)圖如圖1所示。
激光掃描系統(tǒng)不僅需要控制舵機(jī)完成圖像序列掃描,而且需要實(shí)時(shí)采集大量的圖像數(shù)據(jù),并對(duì)這些圖像數(shù)據(jù)進(jìn)行分析處理生成精確的點(diǎn)云數(shù)據(jù)。所以系統(tǒng)對(duì)ARM的控制要求較高,它不僅要負(fù)責(zé)傳感器的控制和數(shù)據(jù)傳輸,還需外擴(kuò)SRAM用于圖像存儲(chǔ),同時(shí)為了提高數(shù)據(jù)傳輸速率還需配置DMA通道,完成采集和執(zhí)行數(shù)據(jù)處理算法,計(jì)算出點(diǎn)云數(shù)據(jù)再通過(guò)UART輸出到計(jì)算機(jī)。該系統(tǒng)結(jié)構(gòu)能夠充分利用控制器的內(nèi)部資源,提高運(yùn)行效率。同時(shí)也讓掃描變得更靈活,控制器可以不依賴計(jì)算機(jī)單獨(dú)運(yùn)行,最后的數(shù)據(jù)輸出可以通過(guò)藍(lán)牙無(wú)線傳送。
2圖像采集和存儲(chǔ)
2.1OV7670圖像傳感器的采集
型號(hào)為OV7670的圖像傳感器是市面上較為常見(jiàn)并且價(jià)格較低的一款可編程傳感器,很適合運(yùn)用于嵌入式的底層設(shè)計(jì)。為了便于調(diào)試觀察可將圖像傳感器配置為輸出固定QVGA的八色的色條測(cè)試圖案。圖像傳感器默認(rèn)的圖案數(shù)據(jù)輸出格式為YUV的YUYV(4∶2∶2)。為了便于數(shù)據(jù)觀察,將U值和V值的輸出配置成固定值,在上位機(jī)只顯示Y值即灰度值,效果如圖2。
測(cè)試圖案的采集涉及到的寄存器配置相對(duì)較少,而拍攝圖像的采集要涉及到上百個(gè)寄存器的配置,其中關(guān)鍵的配置在于時(shí)鐘,時(shí)鐘的配置直接影響到圖像采集是否成功。這涉及到微處理器地址0X11內(nèi)部時(shí)鐘的選擇和0X6B內(nèi)部PLL控制這兩個(gè)關(guān)鍵寄存器的配置。對(duì)0X11使用內(nèi)部時(shí)鐘并二分頻,0X6B中PLL配置為輸入時(shí)鐘×4,即可正常使用OV7670采集圖像數(shù)據(jù),通過(guò)OV7670采集得到的部分灰度圖像如圖3所示。
2.2SRAM的擴(kuò)展和圖像的完整采集與存儲(chǔ)
對(duì)于圖像傳感器采集的大量數(shù)據(jù),一般的微控制器自帶的SRAM根本不夠存儲(chǔ),由計(jì)算可得一幀YUV格式的QVGA至少要占用150 KB的容量,而微控制器自帶的SRAM只有128 KB,不能完整地存儲(chǔ)一幀YUV格式的QVGA圖像。所以圖像的存儲(chǔ)便涉及到SRAM的擴(kuò)展。SRAM的擴(kuò)展可以通過(guò)外部存儲(chǔ)和設(shè)備控制總線接口FlexBus實(shí)現(xiàn)。分配的外部SRAM分別進(jìn)行全范圍的8位、16位和32位的寫(xiě)入讀出操作,通過(guò)判斷數(shù)據(jù)的正確與否來(lái)驗(yàn)證外部SRAM是否正確驅(qū)動(dòng)。對(duì)QVGA圖像的完整采集和存儲(chǔ)就要結(jié)合圖像傳感器的采集和外部SRAM的存儲(chǔ)。實(shí)現(xiàn)兩者之間的連接可以直接將DMA的目標(biāo)地址指向外部SRAM的基地址,從而完整地存儲(chǔ)圖像傳感器采集的數(shù)據(jù),在實(shí)現(xiàn)QVGA八色顏色條的采集和存儲(chǔ)基礎(chǔ)上,對(duì)拍攝圖像同樣進(jìn)行采集和存儲(chǔ),如下圖4、5所示。圖4完整的QVGA八色顏色條灰度顯示
3點(diǎn)云數(shù)據(jù)計(jì)算及3D模型重建
要獲得點(diǎn)云數(shù)據(jù)就需要先進(jìn)行圖像分析,識(shí)別出激光光斑的像素坐標(biāo)并處理輸出,再根據(jù)原理分析公式與實(shí)際校正數(shù)據(jù)擬合的曲線公式計(jì)算獲得實(shí)際距離,并由幾何計(jì)算獲得整列激光各點(diǎn)的實(shí)際距離值,同時(shí)結(jié)合舵機(jī)進(jìn)行轉(zhuǎn)角掃描獲得多列距離數(shù)據(jù),最后由距離數(shù)據(jù)再經(jīng)三維坐標(biāo)的轉(zhuǎn)換獲得點(diǎn)云數(shù)據(jù)。之后,將點(diǎn)云數(shù)據(jù)傳輸?shù)接?jì)算機(jī)并導(dǎo)入第三方模型編輯軟件,實(shí)現(xiàn)3D模型的重建。
3.1圖像分析和處理
圖像采集和輸出中一直只用Y值即灰度值,所以圖像分析也用Y值進(jìn)行分析。Y值的范圍為0X00~0XFF,0X00為黑色,0XFF為白色,激光光斑的值是每行中最高的,因?yàn)榧す夤獍邔?shí)質(zhì)是反射的光源,而激光正是定向發(fā)光且亮度極高的光源,另外由于圖像傳感器加裝了紅外慮光片,很好地削弱了可見(jiàn)光,保留了紅外激光。但激光光斑并不是僅占一個(gè)像素點(diǎn),所以應(yīng)該以激光光斑像素點(diǎn)中的最高值代表激光光斑中心的位置[3]。圖像分析算法可以逐行求出Y的最高值以確定激光光斑中心的位置,再輸出轉(zhuǎn)換計(jì)算后的坐標(biāo)值。如下圖6所示。
3.2曲線擬合
公式中運(yùn)用的參數(shù)在實(shí)際中并不能準(zhǔn)確地由測(cè)量獲得,所以這些參數(shù)應(yīng)以實(shí)際的校正為準(zhǔn)。本設(shè)計(jì)結(jié)合攝像頭的參數(shù),采用指數(shù)函數(shù)曲線進(jìn)行擬合[4]。從擬合結(jié)果中可以看出,擬合公式和采集的數(shù)據(jù)吻合度還是非常高的,如下圖7所示,曲線擬合的公式將可以實(shí)現(xiàn)縱列中點(diǎn)的單點(diǎn)測(cè)距,公式如下:
3.3整列激光各點(diǎn)實(shí)際距離的計(jì)算
在求得了單點(diǎn)激光距離的基礎(chǔ)上,再擴(kuò)展到整列激光各點(diǎn)的實(shí)際距離計(jì)算,同時(shí)在求出垂線距離d’后,需再經(jīng)過(guò)幾何計(jì)算轉(zhuǎn)化為實(shí)際的距離D,如圖8所示,進(jìn)行距離計(jì)算分析[5]。
3.4整列激光各點(diǎn)實(shí)際距離的計(jì)算
點(diǎn)云數(shù)據(jù)是掃描物體外表面各點(diǎn)三維坐標(biāo)的集合,點(diǎn)云數(shù)據(jù)的計(jì)算實(shí)質(zhì)就是對(duì)各點(diǎn)激光的實(shí)際距離經(jīng)幾何計(jì)算轉(zhuǎn)換為三維坐標(biāo)的過(guò)程[5]。三維坐標(biāo)求解公式如下:
pX=real_distance×cos(pitch_angle)×sin(yaw_angle+CurrentAngle×π/180)
pY=real_distance×cos(pitch_angle)×cos(yaw_angle+CurrentAngle×π/180)
pZ=real_distance×sin(-pitch_angle)
本設(shè)計(jì)中3D模型的重建直接采用第三方模型編輯軟件Meshlab,需要將點(diǎn)云數(shù)據(jù)從系統(tǒng)傳輸至計(jì)算機(jī)并保存成軟件能夠查看的文件格式如:.txt、.ply或.xyz文件。
最終得到的3D重建效果如圖9、10所示。圖9掃描的真實(shí)環(huán)境圖像
4結(jié)論
經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,基于飛思卡爾K60激光掃描測(cè)距儀在0~3 m范圍內(nèi)的掃描精度為0.045 m,并且整個(gè)系統(tǒng)可靠,價(jià)格低廉。該設(shè)計(jì)使用圖103D掃描重建的正視效果
便攜掃描的方案,讓3D掃描儀能方便地運(yùn)用于不同場(chǎng)合,如家用小場(chǎng)景小模型的三維掃描、機(jī)器人的智能導(dǎo)航、室內(nèi)復(fù)雜場(chǎng)景三維建模等。同時(shí)自主研究了一套圖像傳感器底層嵌入式驅(qū)動(dòng)的方法,具有廣泛的應(yīng)用價(jià)值。
參考文獻(xiàn)
?。?] 湛金輝.基于激光和CCD的三維重建關(guān)鍵技術(shù)研究[D].南昌:南昌航空大學(xué),2008.
?。?] 飛思卡爾技術(shù)部.ARM CortexM4高性能MCU:Kinetis K系列[EB/OL].(20151207)http://www.freescale.com/zhHans/webapp/sps/site/taxonomy.jsp?code=KINETIS_K_SERIES&cof=0&am=0.
?。?] 向勁松,吳金勇,李曉雙,等.高幀頻激光光斑采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(1):1315,19.
?。?] 王剛,張超.電渦流傳感器及其最佳特性曲線擬合方程式[J].石油化工自動(dòng)化,2005(3):2628.
?。?] 劉江,汪濤,唐清清,等.激光三角法厚度測(cè)量?jī)x的設(shè)計(jì)與研究[J].微型機(jī)與應(yīng)用,2014,33(10):1619.