王梓凌 張震 王一璋 周哲海
1.北京信息科技大學(xué),光電測(cè)試技術(shù)及儀器教育部重點(diǎn)實(shí)驗(yàn)室;2.北京盛想科技有限公司
線結(jié)構(gòu)光3D智能相機(jī)因其成像速度快、精度高等優(yōu)勢(shì)在人工智能、工業(yè)檢測(cè)、人臉支付、VR/AR等領(lǐng)域獲得了廣泛的應(yīng)用。搭建了一種線結(jié)構(gòu)光3D智能相機(jī)成像系統(tǒng),開展了數(shù)據(jù)獲取及處理的理論和實(shí)驗(yàn)研究,使用Python作為編程語言,使用Numpy、OpenCV、Open3D、Math等庫,結(jié)合相機(jī)標(biāo)定方法、光平面標(biāo)定方法和線結(jié)構(gòu)光三維重構(gòu)理論,編寫了三維重構(gòu)算法,實(shí)現(xiàn)了三維重構(gòu)。相對(duì)于已有的數(shù)據(jù)處理算法,該算法具有速度更快、精度更高的優(yōu)勢(shì),體現(xiàn)了較大的應(yīng)用價(jià)值。
隨著信息技術(shù)的不斷發(fā)展,特別是人工智能技術(shù)的迅猛發(fā)展,3D信息獲取已經(jīng)成為當(dāng)前信息獲取和處理的關(guān)鍵,3D智能相機(jī)或深度相機(jī)逐漸成為獲得物體3D信息的主要技術(shù)手段。3D智能相機(jī)根據(jù)其深度數(shù)據(jù)計(jì)算方式進(jìn)行分類,主要分為結(jié)構(gòu)光相機(jī)、雙目立體視覺相機(jī)與TOF相機(jī),結(jié)構(gòu)光相機(jī)又包括雙目結(jié)構(gòu)光和散斑結(jié)構(gòu)光等類型[1-3]。其中,目前發(fā)展比較成熟且應(yīng)用最廣泛的技術(shù)為基于結(jié)構(gòu)光的三維成像技術(shù)[4]。結(jié)構(gòu)光三維成像的硬件主要由相機(jī)和投射器組成,結(jié)構(gòu)光就是通過投射器投射到被測(cè)物體表面的主動(dòng)結(jié)構(gòu)信息,如激光條紋、格雷碼、正弦條紋等;然后,通過單個(gè)或多個(gè)相機(jī)拍攝被測(cè)表面即得結(jié)構(gòu)光圖像;最后,基于三角測(cè)量原理經(jīng)過圖像三維解析計(jì)算從而實(shí)現(xiàn)三維重建?;诮Y(jié)構(gòu)光的三維成像,實(shí)際上是三維參數(shù)的測(cè)量與重現(xiàn),主要是區(qū)別于純粹的像雙目立體視覺之類的被動(dòng)三維測(cè)量技術(shù),因而被稱為主動(dòng)三維測(cè)量??傮w而言,結(jié)構(gòu)光主要可以分為兩類:線掃描結(jié)構(gòu)光、面陣結(jié)構(gòu)光。線掃描結(jié)構(gòu)光較之面陣結(jié)構(gòu)光較為簡(jiǎn)單,精度也比較高,在工業(yè)中廣泛用于物體體積測(cè)量、三維成像等領(lǐng)域。
線結(jié)構(gòu)光三維成像技術(shù)的研究已有20多年的歷史[5-6],其真正快速發(fā)展主要源于體感游戲。2010年,微軟公司推出了體感游戲硬件產(chǎn)品“Kinect”,它之所以可以讓游戲用戶完全脫離游戲控制器,僅僅是簡(jiǎn)單地通過虛擬語音和各種移動(dòng)式的手勢(shì)就能操縱Xbox360游戲機(jī),是因?yàn)樵撚螒驒C(jī)器里面裝配有紅外攝像頭、紅外結(jié)構(gòu)光激光投影器等多種圖像傳感器。紅外結(jié)構(gòu)光激光投影器將30萬個(gè)不同紅外線發(fā)射光點(diǎn)同時(shí)投射出來到一個(gè)待觀測(cè)場(chǎng)景上,紅外攝像頭可以快速拍攝到并得到這些紅外反射圖像信息,由此可以對(duì)被拍攝物體進(jìn)行三維重構(gòu)。2017年9月,蘋果公司發(fā)布的iPhone X使得該技術(shù)又受到了極大關(guān)注。iPhone X獨(dú)特的“劉?!鄙弦呀?jīng)集成了大量的電子元器件,他們共同組成了Face-ID部件,F(xiàn)ace-ID的組件中包含了紅外線攝像頭、泛光燈、距離強(qiáng)度傳感器、環(huán)境光強(qiáng)度傳感器、聽筒、麥克風(fēng)、前置攝像頭和紅外線點(diǎn)陣投影器,其運(yùn)作的一個(gè)主要原理也與Kinect類似,是通過直接使用紅外線點(diǎn)陣投影器將數(shù)萬個(gè)肉眼幾乎看不到的紅外線光點(diǎn)直接投射到用戶的臉上,從而獲取三維數(shù)據(jù)、分析數(shù)據(jù)并繪制出用戶的三維面譜。iPhone X的巨大成功標(biāo)志著三維光學(xué)圖像傳感器已經(jīng)全面的走入了普通民眾的視野里,手機(jī)、移動(dòng)穿戴設(shè)備的研發(fā)制造商們也立馬主動(dòng)跟進(jìn),許多國(guó)內(nèi)手機(jī)廠家及時(shí)地趕上了這一大波進(jìn)入新興設(shè)備市場(chǎng)的研發(fā)熱潮。小米8作為目前公認(rèn)的國(guó)內(nèi)首款可以通過人臉識(shí)別技術(shù)解鎖的國(guó)產(chǎn)高端移動(dòng)智能手機(jī),其人臉識(shí)別模塊使用的三維結(jié)構(gòu)光技術(shù)是以色列Mantis Vision公司提供的;而后正式發(fā)布的OPPO Find X則是直接采用國(guó)內(nèi)奧比中光公司的三維結(jié)構(gòu)光傳感器硬件和國(guó)內(nèi)曠視科技公司提供的算法;而在華為的手機(jī)Mate20 Pro上的三維人臉結(jié)構(gòu)光傳感技術(shù)則是基于華為自主研究的算法。迄今為止,三維智能人臉識(shí)別解鎖技術(shù)已經(jīng)成為所有中低高檔智能手機(jī)的統(tǒng)一標(biāo)配。
本項(xiàng)目搭建了一種基于DOE的線結(jié)構(gòu)光3D智能相機(jī)成像系統(tǒng),開展了數(shù)據(jù)獲取及數(shù)據(jù)處理算法研究,相對(duì)于已有的數(shù)據(jù)處理算法,該算法具有速度更快、精度更高的優(yōu)勢(shì),體現(xiàn)了較大的應(yīng)用價(jià)值。
線激光掃描三維重構(gòu)理論是基于光學(xué)三角測(cè)量原理。線激光器向被測(cè)物體發(fā)射一條光束,光束所受到的調(diào)制作用主要來自于被測(cè)物體表面深度的變化影響和物理間隙的影響,對(duì)于攝像機(jī)采集到的圖像而言,對(duì)應(yīng)的情況就是畸變和不連續(xù)性,當(dāng)物體表面的深度出現(xiàn)增大的時(shí)候,畸變的程度也會(huì)出現(xiàn)增大,物體表面的物理間隙對(duì)應(yīng)的就是圖像的不連續(xù)性,固定線激光器和攝像機(jī)兩者之間的距離或相對(duì)位置,為了對(duì)物體表面的形狀和輪廓進(jìn)行重構(gòu),需要采用的方式是光條的二維畸變圖像坐標(biāo)。因?yàn)楣馐c被測(cè)物體表面的交點(diǎn)是光束上的眾多光點(diǎn),因此可以形成超級(jí)多的三角幾何約束關(guān)系,這使得測(cè)量的信息量大量增加,可顯著提高三維重構(gòu)的精確度。
圖1是搭建的線結(jié)構(gòu)光3D智能相機(jī)的成像系統(tǒng)結(jié)構(gòu)示意圖。該3D成像系統(tǒng)的部件包括:一個(gè)羅技的c270攝像頭,物理分辨率為720p;一個(gè)波長(zhǎng)為650nm,功耗為10mW的一字激光器;一個(gè)木頭小椅子作為被測(cè)物體;兩張矩形內(nèi)框圖;一臺(tái)裝有Ubuntu系統(tǒng)和Pycharm的筆記本用來控制攝像頭的拍攝和數(shù)據(jù)處理。
圖1 線結(jié)構(gòu)光3D智能成像系統(tǒng)結(jié)構(gòu)示意圖Fig.1 Schematic diagram of 3D smart imaging system based on line structured light
三維重構(gòu)算法主體主要分為三個(gè)步驟:確定空間平面,得到平面間的單應(yīng)性轉(zhuǎn)換矩陣;找到激光光點(diǎn),標(biāo)出激光光點(diǎn)密集區(qū)域,使用DBSCAN算法把密度聚類中的留下,其余去掉;最后使用上兩步的結(jié)果進(jìn)行三維重構(gòu)。
論文所用的三維重構(gòu)算法主要使用了Math、OpenCV、Open3D、Numpy等庫,如圖2所示。其中,sklearn.cluster庫中的DBSCAN算法具有非常重要的作用,這種方法本質(zhì)上是一種空間聚類算法,是建立在密度的基礎(chǔ)上。如果某些區(qū)域的密度滿足要求,采用這種算法可以將這個(gè)區(qū)域表示為簇,可以采用任意形狀的簇表示噪聲的空間數(shù)據(jù)庫,采用密度相連點(diǎn)的最大集合可以表示簇。換句話說,以一個(gè)選中的樣本點(diǎn)為中心,以給定的半徑畫圓,這個(gè)圓圈內(nèi)樣本點(diǎn)個(gè)數(shù)達(dá)到最少是對(duì)應(yīng)的就是滿足要求的樣本點(diǎn),相應(yīng)的就是密度相連點(diǎn)的最大集合。如果在這個(gè)圓圈內(nèi)存在很多樣本點(diǎn),在這種情況下,內(nèi)部樣本點(diǎn)將作為這個(gè)圓圈的圓心,進(jìn)一步會(huì)重復(fù)上面的步驟,重新畫圓以重新圈出樣本點(diǎn),這就類似傳銷一樣,一直去發(fā)展下線,以預(yù)先規(guī)定的值為標(biāo)準(zhǔn),當(dāng)傳遞的圓圈對(duì)應(yīng)的樣本點(diǎn)數(shù)量低于這個(gè)標(biāo)準(zhǔn)的時(shí)候,將會(huì)停止這個(gè)過程,則核心點(diǎn)對(duì)應(yīng)的就是起始的點(diǎn),則邊界點(diǎn)對(duì)應(yīng)的就是停下位置處的點(diǎn),停止后還在圓外的點(diǎn)為離群點(diǎn)。
圖2 算法使用的庫Fig.2 Database for DBSCAN algorithm
規(guī)定每個(gè)圓的半徑設(shè)為1,圓內(nèi)最少包含的點(diǎn)數(shù)設(shè)為6個(gè)點(diǎn),如圖2所示。運(yùn)行結(jié)束后,效果如圖3所示,可以看出圖中共有6個(gè)簇,分別對(duì)應(yīng)6種顏色,而沒有顏色的點(diǎn),就是離群點(diǎn)。
圖3 設(shè)置參數(shù)(a)及運(yùn)行結(jié)果(b)Fig.3 Set parameter(a)and operation results(b)
本論文采用的系統(tǒng)中的相機(jī)位置是固定不變的,故采用經(jīng)典的標(biāo)定方法——張正友標(biāo)定法對(duì)重構(gòu)中使用的相機(jī)進(jìn)行標(biāo)定。制作如圖4(a)所示的標(biāo)定板,標(biāo)定板由6行8列48個(gè)正方形組成。調(diào)整棋盤格標(biāo)定紙和攝像頭的相對(duì)位置,并將棋盤格標(biāo)定紙擺放成不同的姿勢(shì),用攝像頭采集不同擺放姿勢(shì),不同角度的棋盤格照片,這樣可以得到更準(zhǔn)確的鏡頭畸變參數(shù)。為了使結(jié)果更加準(zhǔn)確,總共拍攝了81張不同姿勢(shì)的標(biāo)定板的照片,如圖4(b)所示。
圖4 棋盤格標(biāo)定板(a)及不同姿勢(shì)的標(biāo)定板(b)Fig.4 Checkerboard calibration board (a) and arrangements with different orientation (b)
本文使用了圖像處理OpenCV開源庫中的函數(shù)編程對(duì)棋盤格提取角點(diǎn)和亞像素角點(diǎn),如圖5所示。對(duì)所有圖片都標(biāo)出角點(diǎn)后,就可以得到相機(jī)的內(nèi)參數(shù)和鏡頭的畸變參數(shù),結(jié)果數(shù)據(jù)存儲(chǔ)在Calibration文件夾中的intrinsics.xml里。
圖5 標(biāo)定板的角點(diǎn)提取Fig.5 Corner extraction of calibration board
經(jīng)過上述過程,獲得了相機(jī)的標(biāo)定結(jié)果。其中相機(jī)的內(nèi)參數(shù)如表1所示,鏡頭畸變參數(shù)如表2所示。
雖然理論上使用3幅不同角度,不同姿態(tài)的棋盤格圖像就可以完成標(biāo)定,但是實(shí)際上棋盤格間角度差異過小就會(huì)影響其標(biāo)定精準(zhǔn)度,因此使用多少幅圖像來標(biāo)定也需要研究一下。通過表1和表2的數(shù)據(jù)可知,使用3、4、6、12幅圖像時(shí),因?yàn)檫x取圖像數(shù)量少,選取的圖像間差距也可能比較小的緣故,導(dǎo)致相機(jī)參數(shù)和鏡頭畸變參數(shù)都與30、50、81張時(shí)差距比較大,因而不能采用;30、50、81幅時(shí),相機(jī)參數(shù)差距不大,但是鏡頭畸變參數(shù)30、50幅的與81幅的差距巨大,考慮到使用的不同姿態(tài),不同角度的棋盤格圖像越多,鏡頭畸變參數(shù)越準(zhǔn)確,所以最終選擇81幅圖像時(shí)的相機(jī)參數(shù)和鏡頭畸變參數(shù)作為相機(jī)標(biāo)定的結(jié)果。圖6是最終的三維重建結(jié)果,證明了算法的有效性。
圖6 三維重構(gòu)及結(jié)果Fig.6 3D reconstruction and results
表1 不同圖像幅數(shù)相機(jī)參數(shù)Tab.1 Camera parameters with different frames
表2 不同圖像幅數(shù)鏡頭畸變參數(shù)Tab.2 Lens distortion parameters for different image frames
論文簡(jiǎn)要介紹了線結(jié)構(gòu)光掃描三維重構(gòu)原理,闡述了DBSCAN算法,并使用點(diǎn)云數(shù)據(jù)進(jìn)行三維重構(gòu)。然后使用搭建的系統(tǒng)拍攝被測(cè)物圖像,對(duì)相機(jī)進(jìn)行標(biāo)定,對(duì)比了不同圖像幅數(shù)下相機(jī)內(nèi)參和鏡頭畸變參數(shù)的數(shù)據(jù),分析了數(shù)據(jù)差異的原因并最終選定81幅圖像的數(shù)據(jù)。然后對(duì)激光光束進(jìn)行提取,并識(shí)別出桌面和墻面的矩形框,得到被測(cè)物體的三維圖像。結(jié)果表明,本文提出的三維重構(gòu)算法具有可執(zhí)行性,可達(dá)到比較快的三維重構(gòu),具有一定的實(shí)際應(yīng)用價(jià)值。
論文研究工作得到了國(guó)家自然科學(xué)基金(61875237)北京長(zhǎng)城學(xué)者支持計(jì)劃項(xiàng)目(CIT&TCD20190323)、北京青年拔尖人才支持計(jì)劃項(xiàng)目(Z2019042)和北京市實(shí)培計(jì)劃項(xiàng)目的支持。