梁艷陽,周集華,葉達(dá)游,石峰,黃子健,孫偉霖,王瓊瑤,曹梓涵,何春燕
(五邑大學(xué)智能制造學(xué)部,廣東江門 529020)
三維點(diǎn)云數(shù)據(jù)是一種能夠描述最原始物體的數(shù)據(jù)形式[1],包含基本的位置坐標(biāo)、顏色信息、法向量以及亮度信息等,能夠?yàn)橛?jì)算機(jī)視覺任務(wù)提供比二維圖像更加豐富的信息[2]。在自動化生產(chǎn)線上,無序工件的高質(zhì)量分割能夠更好地提高生產(chǎn)效率。工件的無序擺放以及結(jié)構(gòu)光相機(jī)采集點(diǎn)云的角度局限性問題,導(dǎo)致采集點(diǎn)云數(shù)據(jù)時產(chǎn)生不同程度的遮擋,給基于視覺引導(dǎo)的工件位姿估計(jì)和抓取帶來較大的挑戰(zhàn)[3]。對于深度學(xué)習(xí)點(diǎn)云處理算法,主要有基于體素、點(diǎn)和注意力機(jī)制3 種方式。
基于體素的方法,將無序、不規(guī)則的點(diǎn)云數(shù)據(jù)以大小固定的立方塊作為空間像素點(diǎn)來表示,將三維點(diǎn)云體素網(wǎng)格化[4]。經(jīng)過體素網(wǎng)絡(luò)后可直接應(yīng)用在3D卷積上進(jìn)行特征學(xué)習(xí)[5],在傳統(tǒng)的點(diǎn)云處理方法中,采用基于八叉樹的OctNet 方法對三維數(shù)據(jù)進(jìn)行處理[6]。ZHOU、TUZEL[7]提出VoxelNet,該網(wǎng)絡(luò)是基于體素網(wǎng)格,在特征學(xué)習(xí)層將點(diǎn)云劃分為等間隔的3D體素,接著進(jìn)行隨機(jī)降采樣,并通過新引入的體素特征編碼(Voxel Feature Encoding,VFE)層將每個體素內(nèi)的一組點(diǎn)轉(zhuǎn)換為單一特征表示。
基于點(diǎn)的方法,將點(diǎn)云的原始數(shù)據(jù)直接應(yīng)用于網(wǎng)絡(luò)中,如QI 等[8-9]提出PointNet、PointNet++網(wǎng)絡(luò)結(jié)構(gòu),一種端到端的深度神經(jīng)網(wǎng)絡(luò),基于多尺度特征提取。該方法能夠較好融合局部和全局特征信息,節(jié)省空間內(nèi)存和計(jì)算性能,但忽略了點(diǎn)與點(diǎn)之間的結(jié)構(gòu)信息和位置關(guān)系。WU 等[10]提出一種新穎的高效計(jì)算權(quán)重函數(shù)的方法Pointon,把卷積核視為一個作用在局部三維點(diǎn)坐標(biāo)系上。該方法可應(yīng)用于點(diǎn)云搭建深度卷積網(wǎng)絡(luò),由權(quán)重和密度函數(shù)組成的非線性函數(shù),解決最遠(yuǎn)點(diǎn)采樣中非均勻采樣帶來的特征信息丟失的問題。
基于Transformer and self-attention 的方法,GUO等[11]提出PCT 網(wǎng)絡(luò),將原始的位置編碼與輸入嵌入到一個基于坐標(biāo)的嵌入模塊中,通過自注意力機(jī)制對嵌入的點(diǎn)云特征權(quán)重進(jìn)行學(xué)習(xí)。ZHAO 等[12]提出Point Transformer 網(wǎng)絡(luò)結(jié)構(gòu),在點(diǎn)云轉(zhuǎn)換層的基礎(chǔ)上,構(gòu)建了高性能的點(diǎn)云轉(zhuǎn)化網(wǎng)絡(luò),并完全基于自注意力和逐點(diǎn)操作。
以上方法雖能實(shí)現(xiàn)點(diǎn)云的分割任務(wù),但是存在丟失局部特征信息或者產(chǎn)生較大的空間復(fù)雜度問題。受PointNet++、二維圖像注意力機(jī)制SE_block 模塊[13]的啟發(fā),提出了PointECA 深度學(xué)習(xí)網(wǎng)絡(luò)。特征提取模塊結(jié)合多尺度特征融合方法和自適應(yīng)性通道維度注意力模塊,得到更為豐富的全局特征信息,更好地實(shí)現(xiàn)工件部件分割。本文作者所做的工作有以下幾點(diǎn):
(1)提出了PointECA 網(wǎng)絡(luò),基于Multi-Scale Grouping(MSG)特征提取層結(jié)合自適應(yīng)性通道維度自注意力進(jìn)行點(diǎn)云特征提取,該特征學(xué)習(xí)方法適用于無序、離散且有遮擋的場景。
(2)采用結(jié)構(gòu)光相機(jī)對實(shí)際場景下的工件點(diǎn)云數(shù)據(jù)進(jìn)行采集和數(shù)據(jù)標(biāo)注,制作數(shù)據(jù)集Workpieces,該數(shù)據(jù)集的格式與ShapeNet 數(shù)據(jù)格式一致,用于工件部件語義分割。
(3)在Workpieces 數(shù)據(jù)集下進(jìn)行了大量的實(shí)驗(yàn),驗(yàn)證了文中方法的有效性。實(shí)驗(yàn)結(jié)果顯示:該算法能夠更好地提高點(diǎn)云的特征學(xué)習(xí)能力,進(jìn)一步提高部件語義分割性能。
網(wǎng)絡(luò)包含以下幾個步驟,首先對數(shù)據(jù)進(jìn)行降采樣,并采用多尺度局部特征提取與自適應(yīng)性通道注意力機(jī)制融合方法進(jìn)行特征提取,得到豐富的特征語義信息。接著網(wǎng)絡(luò)采用跳躍連接方式,對全局特征圖進(jìn)行傳播。最后對上采樣后的特征圖進(jìn)行預(yù)測實(shí)現(xiàn)語義分割。算法流程如圖1 所示。
圖1 算法流程Fig.1 Flowchart of the algorithm
特征提取層分為兩個部分進(jìn)行處理:(1)基于PointNet++的多尺度提取方法,采樣分組后進(jìn)行逐點(diǎn)特征提??;(2)插入自適應(yīng)通道維度注意力。首先采用最遠(yuǎn)距離采樣法進(jìn)行降采樣,再采用多尺度(半徑)球形鄰域搜索方法進(jìn)行采樣分組。每個尺度設(shè)置不同的采樣數(shù)量,將其分為n個不同且有交集的點(diǎn)云簇,能夠擴(kuò)大局部點(diǎn)云特征的感受野。
在單個尺度操作時,如將輸入的(B,6,1 024)特征圖采樣分組為(B,6,64,512),由1 024 轉(zhuǎn)為64 個包含512 個點(diǎn)云的點(diǎn)云簇。接著對點(diǎn)云簇采用多層感知機(jī)(MLP)共享權(quán)重的方式對每個點(diǎn)云簇進(jìn)行逐點(diǎn)卷積[14],提取點(diǎn)云的特征信息。同時提高了每個點(diǎn)的通道特征維度,將特征圖的尺寸由(B,6,64,512)提升至(B,64,64,512)。
將以上所得的特征圖作為輸入,使用自適應(yīng)性通道注意力來交互各個通道之間的結(jié)構(gòu)依賴關(guān)系,對通道重要的特征信息進(jìn)行加權(quán)計(jì)算同時抑制不重要或者有噪點(diǎn)的通道特征。該通道注意力由通道壓縮編碼和通道學(xué)習(xí)模塊[15]組成,壓縮模塊由自適應(yīng)性池化函數(shù)實(shí)現(xiàn)(如公式(1)所示),對輸入的空間特征圖(B,64,64,512)進(jìn)行壓縮提取,得到空間表征的聚合信息(B,64,1,1)。
式中:uC、uC(i,j)、uC(K,N)分別表示第C通道的特征圖;K×N、uC(i,j)為每一個通道上的每個點(diǎn)以及每一個通道的點(diǎn)云簇。
對于通道學(xué)習(xí)模塊,由一維卷積核來實(shí)現(xiàn)通道權(quán)重的計(jì)算,其中卷積核的大小K由公式(2)進(jìn)行自適應(yīng)計(jì)算。
式中:C為通道維度;γ、b分別設(shè)置為2 和1,用于設(shè)置通道數(shù)與卷積核大小之間的比例;表示對K取奇數(shù)。
最后將輸出的特征信息與輸入的特征圖進(jìn)行乘積,實(shí)現(xiàn)對升維后的特征通道進(jìn)行加權(quán),并且特征圖尺寸保持不變,如公式(3)所示:
其中:UC為該模塊輸入的特征圖。
最后,采用最大池化聚合空間特征信息[16]。以上完成了單個尺度的局部特征提取,在通道維度上具有豐富的關(guān)鍵語義信息以及位置結(jié)構(gòu)關(guān)系。對于每一層多尺度注意力特征提取網(wǎng)絡(luò),如圖2 所示,將點(diǎn)云特征圖劃分3 個不同尺度進(jìn)行采樣,得到3 個不同感受野的點(diǎn)云簇。經(jīng)過特征提取后,將3 個尺度特征圖進(jìn)行融合,得到該層的特征信息P1。
圖2 多尺度分割網(wǎng)絡(luò)Fig.2 Multiscale segmentation network
部件分割模塊將工件點(diǎn)云分割為手柄和本體兩部分,通過逆向插值和跳躍網(wǎng)絡(luò)(Skip Connection)對特征圖進(jìn)行上采樣。在特征傳播時,首先通過跳躍網(wǎng)絡(luò)(如圖1 所示),計(jì)算對應(yīng)的特征提取層中輸入的空間坐標(biāo)l3與其降采樣的坐標(biāo)l4的反距離權(quán)重。接著通過反距離權(quán)重與對應(yīng)特征圖p4加權(quán)求和來提升坐標(biāo)信息維度。歸一化每個點(diǎn)的權(quán)重,并通過查找最鄰近k值方法(k=3)進(jìn)行加權(quán)得到特征圖,如公式(4)—(5)所示。插值后的特征圖與對應(yīng)層輸入特征圖p3進(jìn)行拼接實(shí)現(xiàn)上采樣。
其中:f(j)(x)為插值后的特征信息;d(x,xi)2為采樣點(diǎn)之間的距離;C為特征通道維度。
最后一層采樣層中使用one-hot 編碼類別張量(B,4,N),將其與原始輸入的點(diǎn)云空間坐標(biāo)特征l0、p0進(jìn)行拼接,作為跳躍網(wǎng)絡(luò)的輸入。最終上采樣層將點(diǎn)由[B,1 024,1]提升至[B,128,2 048]。最后,采用log_softmax 函數(shù)[如公式(6)所示],對每個點(diǎn)的特征進(jìn)行分類打分,實(shí)現(xiàn)部件分割。
使用CloudCompare 軟件制作數(shù)據(jù)集,通過結(jié)構(gòu)光相機(jī)采集4 類工件(圓柱、圓錐、齒輪和六棱柱)的點(diǎn)云數(shù)據(jù),樣本數(shù)量分別為796、661、739、872。由于結(jié)構(gòu)光相機(jī)與工件存在一定的角度,且工件是無序擺放的,因此在采集點(diǎn)云數(shù)據(jù)時會造成不同程度的遮擋,導(dǎo)致所得的點(diǎn)云數(shù)據(jù)會有不同程度的損失,如圖3 所示。
圖3 實(shí)驗(yàn)場景點(diǎn)云圖像Fig.3 Cloud images of the experimental field of view:(a)image acquisition by structured light camera;(b)cloud map of the site;(c)point cloud map after pre-processing
此外,對標(biāo)注好的點(diǎn)云數(shù)據(jù)進(jìn)行歸一化以及中心化處理,并且打亂各類數(shù)據(jù)后按照7 ∶3 的比例,將數(shù)據(jù)集分劃分為2 153、915 個樣本分別用于訓(xùn)練和測試。
實(shí)驗(yàn)基于PyTorch 平臺,在Tesla V100 上進(jìn)行訓(xùn)練。所測試的模型均使用Adam 優(yōu)化器對網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,初始學(xué)習(xí)率為0.001,訓(xùn)練的批大小為128。所設(shè)置的動量和權(quán)重衰減分別為0.9、0.000 1 用于調(diào)整學(xué)習(xí)率,并使用交叉熵?fù)p失函數(shù)[17]來計(jì)算其損失值。此外,對每個點(diǎn)云樣本進(jìn)行降采樣,N=2 048。對于分割任務(wù),模型的評估指標(biāo)有每個類的平均交并比(Mean Intersection over Union,MIoU),如公式(7)所示:
其中:pii為預(yù)測值與真實(shí)值相同的點(diǎn)。
采用不同算法對工件數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)測試,其結(jié)果如表1 所示,平均MIoU 為4 種工件MIoU 的平均值,其他為每類工件各自的MIoU。最后使用PointECA 算法進(jìn)行測試,并將每種工件的部分代表性預(yù)測結(jié)果進(jìn)行可視化,如圖4 所示。
表1 幾種不同算法在Workpieces 數(shù)據(jù)集下的IoU 和網(wǎng)絡(luò)大小Tab.1 IoU and network size of several different algorithms with Workpieces dataset
圖4 4 種工件分別在3 種不同位置和視角下的點(diǎn)云部件真實(shí)分割圖與PointECA 預(yù)測結(jié)果Fig.4 True segmentations of point cloud parts with PointECA prediction for each of the four types of workpieces at three different positions and views:(a)conical workpiece;(b)cylindrical workpiece;(c)gear workpiece;(d)hexagonal workpiece
由圖4 可得,在復(fù)雜場景下,無序工件點(diǎn)云數(shù)據(jù)有不同程度的缺損。分割的難點(diǎn)主要在于工件銜接處分布不均、離散的點(diǎn),導(dǎo)致算法可能會誤判斷少量的點(diǎn)。通過對通道加注意力多尺度融合后,獲取豐富局部特征的上、下位置結(jié)構(gòu)信息,進(jìn)一步提高部件分割能力。由表1 可得,PointECA 算法相對其他幾個較好的算法,MIoU 提升了1.67%,雖然其占用的空間內(nèi)存與PointNet++相比大5 MB,但綜合模型計(jì)算時間以及準(zhǔn)確率,PointECA 網(wǎng)絡(luò)整體上提高了分割的性能,能夠更好地應(yīng)用在工業(yè)環(huán)境中。
為了解決無序工件點(diǎn)云的部分分割在工業(yè)場景中效果不佳的問題,提出一種基于點(diǎn)云的多尺度通道維度注意力框架PointECA,在提升點(diǎn)云通道特征維度的同時,學(xué)習(xí)通道間的依賴關(guān)系,通過多尺度局部特征融合來增強(qiáng)局部和全局表征信息,進(jìn)一步提高網(wǎng)絡(luò)的特征提取能力。此外,制作無序的工件點(diǎn)云數(shù)據(jù)集用于訓(xùn)練和測試。實(shí)驗(yàn)結(jié)果表明:PointECA 網(wǎng)絡(luò)能夠更好地提取局部離散的點(diǎn)云上、下結(jié)構(gòu)信息,進(jìn)而提高無序工件的點(diǎn)云部件分割能力,相比較其他的較好點(diǎn)云分割網(wǎng)絡(luò)提高了1.67%,并且對有缺損的點(diǎn)云仍有較好的分割效果。