解則曉, 李美慧
(中國海洋大學工程學院,山東 青島 266100)
隨著數(shù)字掃描技術(shù)及計算機技術(shù)的不斷發(fā)展,測量數(shù)據(jù)的處理也引起人們的廣泛關(guān)注。點云數(shù)據(jù)是最常見的測量數(shù)據(jù)之一,因其較好的對復(fù)雜形狀的描述能力、簡單的存儲格式、易于處理等特點廣泛應(yīng)用于逆向工程[1]、城市建設(shè)[2-3]、文物保護[4-5]等眾多領(lǐng)域。其應(yīng)用的基礎(chǔ)大多在于基于點云的三維物體識別工作,即從掃描獲得的測量點云數(shù)據(jù)中識別分離出目標物體,同時估計出物體位置和姿態(tài)。機器人對環(huán)境的感知[6]、無人駕駛汽車對周邊車輛的識別[7]等,都有賴于三維物體識別。三維物體識別也因此成為計算機視覺領(lǐng)域中的研究熱點[8-10]。
自從人工智能于1956年在Dartmouth大學問世以來,已經(jīng)形成了一系列理論和方法[11-14]。機器學習是人工智能的一個分支,簡單地來說,機器學習就是通過算法,使得機器能從大量已知的數(shù)據(jù)中學習其固有的規(guī)律,從而對未知的、新的樣本做出智能識別或某種預(yù)測。20世紀80年代末Rumelhart和McCelland領(lǐng)導(dǎo)的科學家小組提出了誤差反向傳播算法,引起了機器學習發(fā)展的第一次浪潮,從此掀開了基于統(tǒng)計模型的機器學習的帷幕。2006年,深度學習的提出,充分展示了多層神經(jīng)網(wǎng)絡(luò)的優(yōu)越性,人工神經(jīng)網(wǎng)絡(luò)發(fā)展進入了新的黃金時期,機器學習的發(fā)展被推向另一個高峰。
目前,基于局部特征、整體特征的特定物體識別己經(jīng)有很多研究成果,但是隨著數(shù)據(jù)量的增大,目標物體環(huán)境的復(fù)雜程度增加等問題的出現(xiàn),需要高效性、通用性、魯棒性較強的識別系統(tǒng)。隨著自動化程度的提高,機器人導(dǎo)航[15-18]、工業(yè)零件檢測及抓取[19]等眾多領(lǐng)域?qū)τ嬎銠C視覺系統(tǒng)的要求越來越高,常規(guī)的物體識別己經(jīng)無法滿足人類的要求。因此機器學習在基于點云數(shù)據(jù)的三維物體識別領(lǐng)域的研究也引起了人們的重視。
點云數(shù)據(jù)是指通過測量儀器獲得的掃描資料以點的形式記錄,每一個點包含有三維坐標,有些可能含有顏色(RGB)信息或反射強度信息(Intensity)。如何從已知的點云數(shù)據(jù)中提取出更多和目標相關(guān)的特征,屬于特征抽取和特征挖掘的范疇。特征提取通常要提取具有如下性質(zhì)的特征描述,即來自同一類別的不同樣本的特征值應(yīng)該非常相近,而來自不同類別的樣本的特征值應(yīng)該有很大差異[20]。
常用的點云特征有:高程及高程紋理特征、幾何形態(tài)特征、回波特征、反射強度和光譜特征[21]。特征提取按照點云的劃分方式一般分為四類:(1)以點及其鄰域的某種特征進行分類,分類結(jié)果的單位為單個點。(2)將點云劃分為人為規(guī)定的形狀大小即點云塊,進行特征提取,分類結(jié)果的單位是點云塊。(3)將原始點云進行聚類等分割操作,以整個物體為單位,分類結(jié)果單位是單個分割好的物體。(4)利用卷積神經(jīng)網(wǎng)絡(luò)直接對點云的原始數(shù)據(jù)或者原始數(shù)據(jù)的初步處理結(jié)果進行卷積,提取特征,分類結(jié)果精確到單個點。前兩類特征屬于手工特征,特征的提取采用傳統(tǒng)的人工設(shè)計算法,作為機器學習的輸入進行分類運算。2018年佟國峰等[22]基于密度(DBSCAN)的聚類算法對點云進行分割,提取分割后點云的垂直方向切片采樣直方圖和質(zhì)心距直方圖特征,通過支持向量機對室外大場景點云進行分類?;诰垲惖姆椒ǚ诸惥群艽蟪潭壬弦蕾囉诰垲惖慕Y(jié)果,而點云的疏密程度、遮擋、噪聲往往會影響聚類結(jié)果的好壞。
基于卷積神經(jīng)網(wǎng)絡(luò)的特征提取,核心在于解決點云的無序性及特征的旋轉(zhuǎn)、平移不變性,重點在于解決點云的無序性問題。在點云數(shù)據(jù)結(jié)構(gòu)構(gòu)造層面,Wu Z等[23]提出對點云進行體素化處理的方法解決點云的無序性,對點云生成一個固定的包圍盒,設(shè)置分辨率,將三維包圍盒按照設(shè)置的分辨率劃分成“立體柵格”。然后利用三維卷積對體素化的數(shù)據(jù)進行處理。但是,體素化之后獲得的數(shù)據(jù)一般非常稀疏,有效數(shù)據(jù)占比少,只能在較小的分辨率下操作,維度過高可能發(fā)生維度爆炸,且對于較遠的物體,需要很大的卷積核,會帶來額外的計算開銷。WANG P S等[24]提出利用Octree來處理點云,只存儲有點云數(shù)據(jù)的物體表面信息,對于沒有點云的空間信息則不生成葉子節(jié)點,不參與運算。類似的,Shen Y等[25]通過構(gòu)造K最近鄰圖,利用鄰域信息進行核相關(guān)構(gòu)造特征;Roman Klokov等[26]使用KD樹構(gòu)建具有一定順序的點云作為網(wǎng)絡(luò)輸入;Li J等[27]構(gòu)建自組織映射結(jié)構(gòu)來模擬點云的空間分布;Wang Y等[28]提出借助于有向圖表示邊緣特征的算法;Yizhak Ben-Shabat等[29]提出三維修正Fisher矢量(3DmFV)表示點云的算法,來解決點云的無序問題從而獲得點云特征。在分類網(wǎng)絡(luò)構(gòu)造層面,Matan Atzmon等[30]對傳統(tǒng)CNN網(wǎng)絡(luò)進行改進,采用分段池化的方式進行特征提??;Wang C等[31]將局部譜特征學習與遞歸聚類和池化相結(jié)合,為無組織點云的點集特征提取提供新的架構(gòu);Xu Y等[32]通過參數(shù)化一系列卷積濾波器,將卷積運算從規(guī)則的柵格擴展到可嵌入的不規(guī)則點集。2018年Li Y等[33]提出使用多層感知器[34]根據(jù)K個輸入點(p1,p2,…,pk)的坐標來學習K×K的X變換,即X=MLP(p1,p2,…,pk),然后將其用于對輸入特征同時進行加權(quán)和重新排列,最后再將典型的卷積應(yīng)用在這個變換后的特征上。該算法應(yīng)用提出的變換,使得無序點云具有特征的不變性。具有比較好的識別、分割精度,但是該網(wǎng)絡(luò)存在過擬合現(xiàn)象。2017年7月Qi Charles R等[35]以無序的具有三維坐標特征的點云為處理對象,通過變換矩陣、多層感知機等操作,得出1024維全局信息和64維局部信息,最后利用分類器實現(xiàn)對逐個點分類的PointNet算法。但是,PointNet提取的是每一個獨立點的特征描述以及全局點云特征的描述,并沒有考慮到點的局部特征和結(jié)構(gòu)約束,因此與MVCNN[36]相比,在局部特征描述方面能力稍弱。同年12月他們又改進提出PointNet++算法[37],主要就是在PointNet的基礎(chǔ)上,加入局部特征提取以及在進行局部分割時在網(wǎng)絡(luò)結(jié)構(gòu)中加入密度適應(yīng)使得分割更加準確合理的處理點云數(shù)據(jù)。PointNet及PointNet++算法的提出對于機器學習在基于點云的三維物體識別領(lǐng)域的應(yīng)用具有里程碑式的意義,開啟了散亂點云數(shù)據(jù)直接處理的機器學習的大門。不同算法的類別平均準確率(Mean per-class Accuracy,MA)、整體準確率(Overall Accuracy,OA)以及運行時間(Forward Time,F(xiàn)T)基于ModelNet40數(shù)據(jù)的運行結(jié)果如表1所示。可知當前識別算法并不能做到百分之百的準確,而且在數(shù)據(jù)量比較大的時候,運行時間較長。
大部分機器學習的應(yīng)用往往受限于單一領(lǐng)域,一個很重要的原因就在于特征的相關(guān)性[38-39]。如何去掉那些相關(guān)度不大的特征,將更少的特征應(yīng)用于機器學習流程,該過程稱為特征選擇。特征選擇主要致力于解決三個問題:維度災(zāi)難[40]、過擬合[41]問題和噪聲問題。目前,在基于點云的三維物體識別領(lǐng)域應(yīng)用的主流方法有:主成分分析法、集成的方法和神經(jīng)網(wǎng)絡(luò)方法。
主成分分析[42](Principal component analysis, PCA),是一種簡單有效的降維方法。其主要思想是將n維特征映射到k維上,這k維是全新的正交特征也被稱為主成分,是在原有n維特征的基礎(chǔ)上重新構(gòu)造出來的k維特征。2014年張蕊等[43]對點云三維坐標數(shù)據(jù)進行主成分分析,獲得3個特征值,依據(jù)建筑物和樹葉的3個特征值間的大小關(guān)系不同,結(jié)合BP神經(jīng)網(wǎng)絡(luò)進行分類。但是,系統(tǒng)訓(xùn)練耗費時間長,且BP神經(jīng)網(wǎng)絡(luò)參數(shù)受經(jīng)驗值的影響。因此系統(tǒng)泛化能力差,容易造成錯誤分類。PCA的過程中進行特征的提取和選擇是無監(jiān)督的,利用的是自變量本身的相關(guān)關(guān)系。但是,當數(shù)據(jù)量比較大時,可能造成數(shù)據(jù)存儲困難。
表1 不同點云識別算法精度、運行時間對比
集成的方法主要分為兩類:一類是基于Boosting思想的模型[44]。Boosting是借助于降低偏差來提升模型效果。2013年郭波等[45]以包含地面、植被、建筑物、電力塔、電力線等場景的機載LiDARa點云為研究對象,在粗差剔除的基礎(chǔ)上,定義了10類點云分類所需要的關(guān)鍵特征,結(jié)合地物空間上的相互關(guān)聯(lián)關(guān)系,提出了一種利用JointBoost[46]實現(xiàn)序列化點云特征降維及分類的方法。其具體特征選擇方法是對于特定類別定義弱分類器最小值和,利用此值對特征進行重要性排序,優(yōu)先選擇數(shù)值大的特征。但是文獻方法,分類精度、實時性及特征的有效性均有待改善。另一類是基于bagging思想的模型[47]。Bagging方法是通過降低方差來提升模型效果。2017年Ni H等[48]提出了將隨機森林[49]與基于分段特征的分類方法相結(jié)合,對機載激光掃描點云進行分類。利用基于袋外數(shù)據(jù)(oob)誤差的后向消除方法進行特征選擇,并確定隨機森林中使用樹數(shù)量的適當值。其方法存在一個限制,即無法識別幾何可分辨性較低的物體。通過集成的方法進行特征選擇不需要額外的算法、程序,在分類器訓(xùn)練的同時即可完成特征降維,但是具體實現(xiàn)相對比較復(fù)雜。
神經(jīng)網(wǎng)絡(luò)方法是借助于設(shè)置神經(jīng)元的層級和相互之間的鏈接將特征進行層層抽象,在訓(xùn)練模型的過程中可以實現(xiàn)沒有人為干預(yù)就能夠進行特征抽取和特征選擇。2006年Hinton G E[50]利用神經(jīng)網(wǎng)絡(luò)將高維度輸入數(shù)據(jù),采用梯度下降法調(diào)節(jié)權(quán)重,輸出低維度特征數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)降維處理。2017年Li B[51]將檢測的激光雷達掃描區(qū)域分割為立體柵格空間,將點云處理為4D圖像輸入包含4個卷積層的全卷積網(wǎng)絡(luò)進行特征抽取和選擇,最后利用softmax進行分類?;谏窠?jīng)網(wǎng)絡(luò)方法的特征選擇一般與特征分類集成在同一個網(wǎng)絡(luò)中,PointNet和PointNet++就是很好的實現(xiàn)案例,它可以實現(xiàn)局部特征與全局特征的結(jié)合應(yīng)用,具有高度的抽象性,同時這也是當前需要解決的問題之一,即特征的抽象性難以用理論的方法來解釋其具體含義。神經(jīng)網(wǎng)絡(luò)的方法需要的訓(xùn)練數(shù)據(jù)量較大,比較耗費硬件空間。
三維物體的識別本質(zhì)上是對提取特征的分類,然后依據(jù)特征向量與點云的對應(yīng)關(guān)系,找到相應(yīng)特征的點云數(shù)據(jù)塊,給此點云數(shù)據(jù)塊所代表的被測對象賦予相應(yīng)類別的標記。機器學習分類器總體來說可以分為兩類:淺層學習和深度學習。淺層學習可以看作是具有一層隱層節(jié)點或者沒有隱層節(jié)點的學習模型。深度學習的實質(zhì),是指通過構(gòu)建有很多隱層的機器學習模型和海量的訓(xùn)練數(shù)據(jù),來學習更有用的特征,從而提升分類或預(yù)測的準確性。
淺層學習中,常用的分類器有:支持向量機[52]、隨機森林[53-56]、AdaBoost[57]、JointBoost[58]、樸素貝葉斯分類器[59]和最大期望算法[60]等。2007年Suresh Lodha[60]使用最大期望(Expectation-Maximization, EM)算法將三維航空激光雷達散射高度數(shù)據(jù)利用高度、高度變化、法向變化、激光雷達回波強度和圖像強度五個特征,分為道路、草地、建筑物和樹木四類。2013年Liu C等[61]開發(fā)了一個改進的神經(jīng)振蕩網(wǎng)絡(luò)(Locally Excitatory Globally Inhibitory Oscillator Networks,LEGION),從高質(zhì)量的數(shù)字表面模型(Digital surface models,DSMS)中采用灰度共生矩陣同質(zhì)性度量DSM高度紋理,分割提取建筑物同時采用具有垂直約束的最小二乘法求解規(guī)則化直線建筑邊界。2013年,Kim H B[62]研究采用超視距分類方法對機載激光雷達數(shù)據(jù)中的走廊景觀進行分類,采用隨機森林作為監(jiān)督分類器,提出了一種基于點云的分類方法,對線路、塔架、建筑、植被、低目標等5個關(guān)鍵的走廊景觀設(shè)計了包括垂直相關(guān)特征在內(nèi)的21個特征,該方法可以有效地對走廊景觀進行分類。2013年Zhang J等[63]提出了一種基于對象的城市地區(qū)機載激光雷達分類方法。在分類過程中,采用表面生長算法進行聚類,計算幾何、拓撲和回波等特征,利用支持向量機進行分類,三維點云的連通分量分析方法優(yōu)化原始分類結(jié)果。2014年Niemeyer等[64]將隨機森林分類器集成到條件隨機域(Conditional Random Field,CRF)框架中對復(fù)雜的城市機載激光雷達點云進行分類。2016年Zhang等[65]提出用于從機載激光掃描(ALS)點云有效地提取物體的形狀特征,對點云中的大小物體進行分類的SCLDA工作框架。在該框架中,基于自然指數(shù)函數(shù)閾值將點云分成不同大小的分層簇,結(jié)合LDA(Latent Dirichlet Allocation)算法和稀疏編碼(Sparse coding)提取和編碼多層次點云的形狀特征,以不同層次的特征來捕獲不同大小的對象形狀的信息。這樣,可以識別物體的穩(wěn)健和有區(qū)別的形狀特征。應(yīng)用淺層網(wǎng)絡(luò)對點云進行識別、分割,其精度依賴于手工設(shè)計特征的好壞,很大程度上充當了特征的分類器,代替了傳統(tǒng)點云處理中特征匹配算法,應(yīng)用場景有一定的局限性。
深度學習中,物體的特征識別算法往往不是設(shè)計的重點,一般都是采用全連接網(wǎng)絡(luò)進行特征的分類。如文獻[35,66-67]采用了輸出節(jié)點為(512,256,k)的多層感知器,其中k為類別數(shù)量。Softmax也是常用的分類函數(shù)。深度學習處理點云,主要部分在于通過設(shè)計網(wǎng)絡(luò)自動地提取可以充分代表點云的特征,對于特征的分類,對最后獲得的結(jié)果精度影響相對較小。
采用三維點云數(shù)據(jù)進行目標物體的識別,相比二維圖像可以獲得更多的位置信息,在面對遮擋、噪聲等不利因素時,具有更好的識別效果。機器學習從淺層網(wǎng)絡(luò)到深層網(wǎng)絡(luò)有著極大的發(fā)展,同時也給基于點云的三維物體識別提供了新的方法,本文圍繞基于點云的三維物體識別的特征提取、特征選擇、特征識別三個方面涉及的機器學習方法進行了系統(tǒng)的總結(jié)和歸納。近幾年,經(jīng)過國內(nèi)外學者的研究,已經(jīng)取得一些成果,但是由于點云散亂、遮擋、噪聲、數(shù)據(jù)量大等帶來的處理困難,點云的處理仍面臨很多挑戰(zhàn)。
(1)點云的無序性。當下熱門研究方向仍是應(yīng)用直接處理點云數(shù)據(jù)的相關(guān)研究,此方法能夠最大限度的保留三維數(shù)據(jù)的原始信息,使得模型精度擁有更高的提升空間。在此基礎(chǔ)上首先要解決改善的問題是點云的無序性。由于點云的表示形式是空間中相對位置的三維坐標,與三維坐標之間的順序、排列并無關(guān)系,因此點云數(shù)據(jù)實際上具有集合性質(zhì),其鄰域之間的特征關(guān)系難以獲得,現(xiàn)有的處理方法,其需要的處理器處理的時間、空間開銷相對較大。
(2)大數(shù)據(jù)下的并行處理問題。海量點云數(shù)據(jù)并行處理的模式有很多種,可以單機并行,也可以集群并行;可以將任務(wù)分解并行,也可以將數(shù)據(jù)分解并行。針對不同的數(shù)據(jù)處理任務(wù)研究特定的并行算法,或者對特定算法進行并行化設(shè)計是點云高性能信息提取的主要任務(wù)。
(3)遷移學習的應(yīng)用。每一個訓(xùn)練好的分類算法都只針對特定的樣本,當目標場景、目標物體一旦發(fā)生變換,就需要重新訓(xùn)練分類器,再次消耗時間和空間。遷移學習的出現(xiàn),使得網(wǎng)絡(luò)中每個節(jié)點的權(quán)重可以從一個訓(xùn)練好的網(wǎng)絡(luò)遷移到一個全新的網(wǎng)絡(luò)里,而不是從頭開始訓(xùn)練,充分利用不同任務(wù)間的相關(guān)性,借用一個任務(wù)的知識解決另外一個任務(wù)的問題。目前,遷移學習[68-69]正在尋找一種能在不同場景中可擴展的類別區(qū)分算法,它在點云信息提取中亦有廣泛的應(yīng)用潛力。
基于機器學習尤其是深度學習的點云數(shù)據(jù)物體識別發(fā)展才剛剛起步,未來研究中,仍有很多方向值得探索。散亂點云以提高檢索、查詢速度,減少存儲空間為目的的有效組織與管理方式;目標物體的自動快速、精確識別;深度學習中卷積神經(jīng)網(wǎng)絡(luò)以及其他技術(shù)在點云數(shù)據(jù)目標物體識別中的推廣應(yīng)用;以及與其他領(lǐng)域技術(shù)的交叉融合,拓展三維點云數(shù)據(jù)的應(yīng)用,從以上等方面來不斷提高物體識別的智能化程度,將是未來研究的熱點與重點。