王 健 陳 政 張華良
(1、沈陽化工大學(xué),遼寧 沈陽 110142 2、工業(yè)控制網(wǎng)絡(luò)與系統(tǒng)實(shí)驗(yàn)室,中國科學(xué)院沈陽自動(dòng)化研究所,中國科學(xué)院機(jī)器人與智能制造創(chuàng)新研究院,遼寧 沈陽 110169)
三維激光掃描技術(shù)已經(jīng)日益成熟,點(diǎn)云數(shù)據(jù)采集及其預(yù)處理技術(shù)已經(jīng)成為現(xiàn)代工業(yè)中炙手可熱的新型掃描技術(shù),目前三維激光掃描在工業(yè)生產(chǎn)中的各個(gè)部位包括焊接、碼垛、裝配、噴涂、拋光、上下材料等各個(gè)領(lǐng)域均已經(jīng)得到了普遍的應(yīng)用。由于3D結(jié)構(gòu)的光技術(shù)既不必再需要使用很精確的時(shí)空延遲方式來測量又能夠解決雙目中的匹配算法存在的復(fù)雜性和魯棒特征問題。因此它們具有計(jì)算簡便、測量精確度較高的特點(diǎn),并且對于干擾較小的弱光條件、沒有明顯的紋理及其形狀改變的表層同樣也可以進(jìn)行精確的測量。但是在實(shí)際的采集物體點(diǎn)云數(shù)據(jù)過程中,由于物體本身材質(zhì)的粗糙不一、光照不均勻等原因,3D結(jié)構(gòu)光掃描出物體點(diǎn)云,易形成離群點(diǎn)和噪點(diǎn)。同時(shí)由于點(diǎn)云掃描測量設(shè)備的工作量程和應(yīng)用場景掃描深度等的限制,對于一些大型專業(yè)工件或者一些大型的技術(shù)實(shí)驗(yàn)應(yīng)用場地,不能直接進(jìn)行構(gòu)造和形成完整的點(diǎn)和云,必須同時(shí)進(jìn)行多次點(diǎn)云掃描進(jìn)行測量,因此每次點(diǎn)云掃描的測量結(jié)果常常都可能是多塊的且具有不同的軌跡坐標(biāo)曲線體系且極有可能同時(shí)存在較大下降噪聲的三維點(diǎn)云測量數(shù)據(jù),不能完全能夠滿足我們后續(xù)三維軌跡曲線規(guī)劃掃描算法的實(shí)際應(yīng)用發(fā)展要求,所以我們就常常需要多次同時(shí)掃描三維點(diǎn)點(diǎn)和云的測量數(shù)據(jù)庫并進(jìn)行多次去噪、簡化、配準(zhǔn)以及進(jìn)行下降噪聲采樣等的數(shù)據(jù)預(yù)處理。本文主要目的是深入研究基于點(diǎn)云數(shù)據(jù)模型的重要預(yù)處理應(yīng)用技術(shù),主要研究內(nèi)容功能包括點(diǎn)云除灰模型減少隨機(jī)噪聲、點(diǎn)云精確化、點(diǎn)云配準(zhǔn)以及點(diǎn)層層云除灰減少噪聲采樣等,并通過其在實(shí)踐中的檢驗(yàn)結(jié)果驗(yàn)證了其中的一些重要預(yù)處理應(yīng)用技術(shù)。
本文利用PCL點(diǎn)云庫進(jìn)行點(diǎn)云處理研究。PCL是一個(gè)跨平臺的開源點(diǎn)云庫。對于三維點(diǎn)的云數(shù)據(jù)處理,PCL庫是一個(gè)非常模塊化的結(jié)合現(xiàn)代c和c++應(yīng)用模板數(shù)據(jù)庫。從分析算法設(shè)計(jì)角度和從分析結(jié)果來看,PCL包括用于操作點(diǎn)云數(shù)據(jù)的各種三維處理算法,包括過濾,分段,注冊,檢索,特征提取,識別,跟蹤,表面重建,可視化等。根據(jù)基類劃分每種算法,嘗試將功能集成在整個(gè)流水線處理技術(shù)中,使整個(gè)算法緊湊,清晰。
主要有兩種方法可以在點(diǎn)云上收集數(shù)據(jù)采集,即接觸掃描集合或非接觸掃描集合。由于該接觸掃描的收集是直接接觸被檢測到的對象,很有可能對被檢測物品造成形變等影響,對于實(shí)驗(yàn)不利,因而使這種非接觸式掃描的采集手段應(yīng)用更為廣泛。
相比于傳統(tǒng)接觸式采集,非接觸式采集技術(shù)既具有算法簡潔、測量精度更高的特點(diǎn),又具有適合于光照不均勻、無明顯紋理和形態(tài)變化等特殊情況下的物體表面同樣也是可以直接進(jìn)行精密的測量并及時(shí)獲得關(guān)于物體表面的各種幾何紋理信息,目前己經(jīng)得到了廣泛的研究和應(yīng)用。在眾多的三維激光掃描儀器中,Mechmind3d面結(jié)構(gòu)的光相機(jī)是本文中主要用來實(shí)現(xiàn)工件掃描的一種儀器設(shè)備,其特點(diǎn)是它操作簡單、精度高、體積小、攜帶方便,而且從三維掃描中獲取物體的點(diǎn)云數(shù)據(jù)模型分析器的精度相對比較高,并且它們還可以產(chǎn)生多種格式的點(diǎn)云。
圖1 點(diǎn)云降采樣結(jié)果
一般來說,三維掃描裝置所獲取的點(diǎn)云信息數(shù)據(jù)模型由于數(shù)據(jù)量大,且信息點(diǎn)密集,不利于它們的存儲、傳遞和進(jìn)行計(jì)算,有必要針對這些信息進(jìn)行下降采樣。點(diǎn)云降采樣的基本原理是:對于曲率較大的點(diǎn)云降采樣模型,應(yīng)盡可能多地留下一個(gè)數(shù)據(jù)點(diǎn),而對于曲率較小的點(diǎn)云降采樣模型,應(yīng)盡可能少地保留數(shù)據(jù)點(diǎn)。點(diǎn)云降采樣技術(shù)主要可以分為四種:一是根據(jù)點(diǎn)云的采樣密度及其表面變化情況進(jìn)行降采樣,二是根據(jù)點(diǎn)云中點(diǎn)的個(gè)數(shù)及點(diǎn)云在其表面上的變化系數(shù)等因素進(jìn)行分塊降采樣,三是根據(jù)點(diǎn)云中點(diǎn)的曲率值等因素進(jìn)行上采樣,四是根據(jù)點(diǎn)云中點(diǎn)的曲率值等因素進(jìn)行降采樣,完成點(diǎn)云數(shù)據(jù)降采樣。無論在網(wǎng)絡(luò)上采用何種取樣方式,其主要目的都是為了在簡化數(shù)據(jù)時(shí)保持點(diǎn)云尖銳特點(diǎn)。
本文將使體素網(wǎng)格濾波器對點(diǎn)云進(jìn)行下降采樣。其通過原始點(diǎn)云數(shù)據(jù)創(chuàng)建一個(gè)三維體素柵格坐標(biāo)系,然后,在每個(gè)體素中,體素中的其他點(diǎn)由體素中的所有重心近似顯示,使體素中的所有點(diǎn)最終由一個(gè)重心表示。對于所有體素處理后得到的點(diǎn)云,該方法比體素中心逼近法速度慢,但對采樣點(diǎn)對應(yīng)的曲面精度更高。
圖2 點(diǎn)云濾波結(jié)果
以下幾個(gè)情況都是需要點(diǎn)云做出濾波和優(yōu)化的:第一,點(diǎn)云的空間排列非常雜亂,而且需要柔順。第二,因?yàn)椴豢煽挂蛩卣趽醯葐栴}導(dǎo)致距原始點(diǎn)云較遠(yuǎn)的離群點(diǎn)的數(shù)據(jù)需要被去除。第三,大量的數(shù)據(jù)都需要在群中進(jìn)行次級采樣。第四,噪音的數(shù)據(jù)是否需要被去除。
在工業(yè)上一般按照相機(jī)噪聲生成的條件把這些噪音分為兩種類型,即主動(dòng)和被動(dòng)噪聲,其中主動(dòng)和被動(dòng)噪音主要是由于相機(jī)自身的檢測精度所導(dǎo)致產(chǎn)生的誤差而直接引起的,而被動(dòng)和受影響環(huán)境中客觀物體受到干擾而間接引起。噪聲的種類不同,所需要采用的去噪技術(shù)也不一樣。主動(dòng)化的噪聲一般都是為了放大掃描工件的掃描區(qū)域范圍而引起的,通常會表現(xiàn)成一個(gè)大片點(diǎn)云,利用三維圖像模型信號處理軟件就能夠?qū)ζ溥M(jìn)行手動(dòng)地消除。一般來說,可采用meshlab軟件進(jìn)行手工去噪。被動(dòng)噪聲的消除通常采用去噪算法實(shí)現(xiàn),如八叉樹算法、k-D tree算法、空間單元格法、體素濾波、半徑濾波、Laplace平滑算法等。通常被動(dòng)噪聲在工業(yè)中較為頻繁,其處理方法通常有以下三種:
(1)點(diǎn)云體素分布濾波:點(diǎn)云體素的濾波概念與普通像素類似,使用像素aabb中的包圍盒將一個(gè)點(diǎn)云上的數(shù)據(jù)體素化,一般體素越密集的點(diǎn)在位置和密集地方上的信息就變得越多,噪音大的點(diǎn)和光線距離群的密集地方也就信息越多,這些都已經(jīng)可以直接通過點(diǎn)云體素的分布網(wǎng)格中被過濾去除。另外在其他技術(shù)方面若是我們使用一些高分辨率激光照相機(jī)等攝像裝置對一個(gè)點(diǎn)云上的數(shù)據(jù)庫信息進(jìn)行了實(shí)時(shí)采集,往往點(diǎn)云上的數(shù)據(jù)庫就可能會更加密集。點(diǎn)云盤的數(shù)量太大,給我們后續(xù)的數(shù)據(jù)分割線和操作管理帶來很大的困難。體素滑動(dòng)濾波器不僅能夠直接做到快速向下滑動(dòng)采樣,而且不至于直接破壞點(diǎn)陣微云自己的立體幾何基本結(jié)構(gòu)。
(2)半徑濾波:其中半徑濾波方法較為簡單而又粗暴。以某一圓為中心繪制的圓計(jì)算落在另一個(gè)圓中點(diǎn)上的數(shù)量,當(dāng)其中一個(gè)數(shù)量超過了給定值,則應(yīng)保留這個(gè)圓,其中一個(gè)數(shù)量超過了給定值則應(yīng)立即剔除這個(gè)圓。
(3)Laplace平滑:對網(wǎng)格中的每個(gè)頂點(diǎn)的坐標(biāo),用它鄰近連接點(diǎn)的坐標(biāo)的平均值代替。其公式如下:
其中,Sp為濾波修正點(diǎn)的位置;p為濾波前點(diǎn)的位置;q為鄰域內(nèi)的點(diǎn),不包括p。
然而,每一種算法都有一定的局限性,例如體素濾波比用體素中心來逼近的方法更慢,運(yùn)算效率較低。Laplace平滑算法會導(dǎo)致邊沿?fù)p失,尺寸總體變小。半徑濾波中圓的半徑和圓內(nèi)點(diǎn)的數(shù)目都需要人工指定。因此權(quán)衡各種濾波算法的利弊,為了提高運(yùn)算效率和過濾質(zhì)量,本文基于文獻(xiàn)[1]的二位圖像的經(jīng)典過濾算法——導(dǎo)向?yàn)V波器,對其進(jìn)行改進(jìn),使其適配于3D點(diǎn)云的過濾要求。
以下為改進(jìn)后的算法步驟:
步驟一:在三維點(diǎn)周圍,假設(shè)一個(gè)局部線性模型:
其中,Ak是被過濾的點(diǎn),pi是3*3矩陣,bk是3*1向量。
步驟二:在保持線性模型的同時(shí)使q和p之間的差異最小化。具體地說,就是使線性模型擁有最小重構(gòu)殘差:
步驟三:解決上述優(yōu)化問題后,得到:
其中,μi周圍是臨點(diǎn)3*3協(xié)方差矩陣,i是一個(gè)單位矩陣,?I為周圍臨點(diǎn)的均值向量。進(jìn)而可以調(diào)整最近鄰搜索半徑和去控制濾波器的濾波效果。導(dǎo)向?yàn)V波器最大的優(yōu)點(diǎn)是保留邊緣和輪廓。盡管雙邊濾波器可以達(dá)到同樣的效果,但是他需要一個(gè)明確的法向量估計(jì),這對于一些受噪聲干擾的點(diǎn)云來說是困難的。
圖3 點(diǎn)云配準(zhǔn)結(jié)果
在工業(yè)環(huán)境中,對于大型對象或場景,可以從多個(gè)位置捕獲點(diǎn)云。每個(gè)點(diǎn)云都是場景(對象)的部分表示,需要合并到單個(gè)點(diǎn)云中以形成整個(gè)場景。然后,配準(zhǔn)過程將從各個(gè)位置捕獲的部分點(diǎn)云組合成掃描場景的單個(gè)點(diǎn)云。局部點(diǎn)云并不總是在同一坐標(biāo)系中。因此,在配準(zhǔn)過程中要求在同一坐標(biāo)系中對齊。
點(diǎn)云配準(zhǔn)一般分為粗配準(zhǔn)和精配準(zhǔn)兩個(gè)步驟。粗配準(zhǔn)是為了減少點(diǎn)云數(shù)據(jù)之間的位移和旋轉(zhuǎn)錯(cuò)位,使精配準(zhǔn)不會偏離實(shí)驗(yàn)方向。常用的粗配準(zhǔn)方法有中央重疊法、標(biāo)記法、特征點(diǎn)(線、表面)提取、ICP等。最后一種方法通常用于特征明顯的點(diǎn)云數(shù)據(jù)。為了減小不同點(diǎn)之間的配準(zhǔn)差值,需要在粗配準(zhǔn)的基礎(chǔ)上進(jìn)行精配準(zhǔn)。最著名的基于原始數(shù)據(jù)的精準(zhǔn)配準(zhǔn)算法是BESL和McKay提出的最近鄰迭代算法(ICP)。
點(diǎn)云配準(zhǔn)算法改進(jìn):
ICP該算法的一個(gè)主要基本思路特點(diǎn)就是:在具有相鄰點(diǎn)對的云中可以進(jìn)行點(diǎn)點(diǎn)搜索以快速確定最鄰近的嚴(yán)密點(diǎn)和云對,利用點(diǎn)點(diǎn)尋找算法得到的最近嚴(yán)密點(diǎn)對可以透過和和ffaugeraheberc所結(jié)合提出的嚴(yán)密點(diǎn)對求解及計(jì)算法及過程公式來進(jìn)行計(jì)算被搜索檢測物的最近點(diǎn)對變換計(jì)算參數(shù),點(diǎn)對云的搜索及最近點(diǎn)對變換計(jì)算參數(shù)的嚴(yán)密求解及計(jì)算均因?yàn)樾枰紫炔捎玫犹娲儞Q方法后再進(jìn)行二次計(jì)算,直到每個(gè)目標(biāo)計(jì)算函子的數(shù)值被我們控制在一個(gè)我們可以完全承受的精度范圍內(nèi),停止迭加替代的計(jì)算過程。
然而,當(dāng)配準(zhǔn)相對簡單的點(diǎn)云時(shí),當(dāng)前的算法可以解決。但是,當(dāng)點(diǎn)的數(shù)量和點(diǎn)云的復(fù)雜性增加時(shí),現(xiàn)有算法會存在配準(zhǔn)精度誤差以及運(yùn)算時(shí)間長的問題。這是由于云的點(diǎn)的數(shù)量和拓?fù)浣Y(jié)構(gòu)變得過于復(fù)雜,而優(yōu)化成本函數(shù)所涉及的關(guān)鍵點(diǎn)的數(shù)量過高,從而導(dǎo)致不穩(wěn)定的結(jié)果。
為了有效解決這個(gè)復(fù)雜問題,我們將通過一種采用正交同態(tài)密度分布剛性變換(NDT)設(shè)計(jì)算法的這種方式應(yīng)用來快速確定兩個(gè)都包含有個(gè)數(shù)超過100,000個(gè)小數(shù)點(diǎn)的正態(tài)分布小點(diǎn)點(diǎn)和云之間的正態(tài)剛性分布變換。正態(tài)空間分布點(diǎn)數(shù)變換統(tǒng)計(jì)算法中所采用的點(diǎn)數(shù)是一種國際配準(zhǔn)統(tǒng)計(jì)算法,它將國際標(biāo)準(zhǔn)最新和優(yōu)化的計(jì)算技術(shù)成果運(yùn)用整合到了三維點(diǎn)數(shù)的統(tǒng)計(jì)計(jì)算模型中,以便于我們確定這兩個(gè)空間點(diǎn)的點(diǎn)數(shù)和云之間能否進(jìn)行最佳化的匹配。由于它們在節(jié)點(diǎn)配準(zhǔn)的工作過程中不能充分地綜合利用標(biāo)準(zhǔn)節(jié)點(diǎn)的某些特性點(diǎn)來進(jìn)行節(jié)點(diǎn)計(jì)算與標(biāo)準(zhǔn)匹配,所以配準(zhǔn)速度比其它的配準(zhǔn)方法來得要快。以下為該算法的具體運(yùn)算步驟:
步驟一:通過過濾各種輸入點(diǎn)云以有效地縮短匹配的時(shí)間,本步只對來自源文件的數(shù)據(jù)量進(jìn)行濾波和分析,減少其輸出的數(shù)據(jù)量達(dá)到原來的15%左右,而且目標(biāo)點(diǎn)云并沒有根據(jù)特定的情況需要進(jìn)行濾波和分析,由于NDT算法中所使用的體素網(wǎng)格數(shù)據(jù)結(jié)構(gòu)不僅僅是使用單一的點(diǎn),而是利用其每一個(gè)數(shù)據(jù)結(jié)構(gòu)的體素單元中所包含的點(diǎn)作為統(tǒng)計(jì)信息,因此不需要過濾目標(biāo)云。
步驟二:修改一些與比例有關(guān)的參數(shù)。由于NDT算法使用體素化數(shù)據(jù)結(jié)構(gòu)和More-Thuente線搜索,因此需要調(diào)整某些參數(shù)以適合數(shù)據(jù)。transformation epsilon兩個(gè)參數(shù)分別從其長度和弧度上來定義變換向向的矢量[x,y,z,roll,pitch,yaw]的最小遞增向向,一旦這些增量發(fā)生變化就會降至這個(gè)閾值以下,配準(zhǔn)就會終止。步長參數(shù)用來定義“more-thuente”線上搜索所能夠容納的最高步長。此線搜索算法可以確定一個(gè)低于此最高值的目標(biāo)點(diǎn)為其最佳步長,并且當(dāng)接近目標(biāo)點(diǎn)為最佳解決方案時(shí)會減少其步長。較大的最大步長將能夠以較少的迭代次數(shù)清除較大的距離,但存在過沖和最終以不希望的局部最小值結(jié)束的風(fēng)險(xiǎn)。最后,Resolution參數(shù)定義內(nèi)部NDT網(wǎng)格結(jié)構(gòu)的體素分辨率。這種結(jié)構(gòu)易于搜索,每個(gè)體素都包含統(tǒng)計(jì)數(shù)據(jù),均值,協(xié)方差等與其包含的點(diǎn)相關(guān)聯(lián)。
步驟三:將點(diǎn)云傳遞給NDT配準(zhǔn)程序。輸入點(diǎn)云是將要轉(zhuǎn)換的點(diǎn)云,目標(biāo)點(diǎn)云是輸入云將與之對齊的參考框架。添加目標(biāo)點(diǎn)云后,將使用目標(biāo)點(diǎn)云數(shù)據(jù)初始化NDT算法的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。
步驟四:創(chuàng)建一個(gè)點(diǎn)云配準(zhǔn)變換矩陣的初始估計(jì)。盡管無需進(jìn)行這種初始轉(zhuǎn)換就可以運(yùn)行該算法,但是如果使用這種初始轉(zhuǎn)換,易于獲得更好的結(jié)果,尤其是在參考幀之間存在較大差異的情況下。
步驟五:準(zhǔn)備對齊點(diǎn)云。生成的轉(zhuǎn)換后的源點(diǎn)云存儲在輸出點(diǎn)云中。然后,我們顯示比對結(jié)果以及歐氏適應(yīng)性得分,該得分的計(jì)算方式是從輸出云到目標(biāo)云中最近點(diǎn)的距離的平方和。
隨著機(jī)器人工業(yè)精度技術(shù)要求的進(jìn)一步提升,在機(jī)器人加工領(lǐng)域,3D掃描技術(shù)已成為一個(gè)研究的重點(diǎn),在醫(yī)療、工業(yè)、建筑領(lǐng)域都有極好的發(fā)展前景。由此可見,三維網(wǎng)絡(luò)點(diǎn)云數(shù)據(jù)處理是極其必需的。針對三維激光掃描點(diǎn)云數(shù)據(jù)進(jìn)行的處理技術(shù)主要有點(diǎn)云去噪和平滑,點(diǎn)云配準(zhǔn)及點(diǎn)云下采樣。點(diǎn)云數(shù)據(jù)處理的精確度對于機(jī)械臂最后一步形成加工路徑的精確度與執(zhí)行力有著至關(guān)重要的影響,同時(shí)也對提高算法運(yùn)行速度提出進(jìn)一步的要求。此外,對也要注意點(diǎn)云數(shù)據(jù)處理要保存原始點(diǎn)云數(shù)據(jù)的特征,根據(jù)物體間的點(diǎn)云數(shù)據(jù)差異性,選擇合適的處理算法以便達(dá)到最好的效果。