謝浩彬,陳新度,2,3,吳 磊,2,3,劉躍生
(1. 廣東工業大學機電工程學院,廣東廣州510006;2. 廣東工業大學廣東省計算機集成制造重點實驗室,廣東廣州 510006;3. 廣東工業大學省部共建精密電子制造技術與裝備國家重點實驗室,廣東廣州 510006)
在現有鑄件打磨加工系統中,大部分采取特定夾具將鑄件固定,通過對準基準坐標,利用離線編程或者固定軌跡規劃,對鑄件進行打磨加工,去除飛邊。采取這類加工方案的通常是大批量和尺寸類似的鑄件,而對于小批量、尺寸多變的鑄件加工,則需要設計多種夾具,提前進行離線編程等工作,才能進行打磨加工。
2016年,Qi等人提出了直接面向無序點云識別的神經網絡框架——Point-Net[1],其利用變換矩陣解決點云的空間旋轉不變性,以及對稱函數解決點云的無序性。2017年,Qi等人改進并提出了Point-Net++[2],級聯嵌套了Point-Net單元,提升了網絡的局部表達能力和特征提取能力。自此,直接面向無序點云識別的神經網絡如雨后春筍,提出了許多基于Point-Net++神經網絡的變體框架,其中,主要有Point-CNN[3]、Point-SIFT[4]、GAC-Net[5]和Rand-LA-Net[6]等網絡。其中,GAC-Net專注于圖注意力機制,對點云鄰域信息比較敏感,可以在邊緣分割達到較好的效果[8],因此,本文提出一種GAC-Net的鑄件飛邊識別算法,通過提取鑄件飛邊點云信息,輸入機器人系統,有助于機器人對加工軌跡進行自動規劃,從而實現鑄件飛邊的自適應打磨操作。

圖1 本文算法框架
本文研究的直接對象是鑄件,目的是尋找出鑄件的飛邊空間信息,為機器人打磨系統提供視覺引導,減少人工參與的過程,提高生產制造的智能化程度。
在鑄件鑄造成型過程中,因上下模合模處存在空隙,在分型面形成厚度、大小、形狀隨機的片狀飛邊,具有如下特征。
首先,一般飛邊的面積在整個鑄件點云中比例較小,通常僅有2%,而GAC-Net模型使用了采樣均勻的最遠點采樣算法,有可能在降采樣過程中丟失飛邊點云,不利于飛邊的分割,因此需要改進網絡的降采樣方式,使其可以根據特征進行選取采樣點,令網絡朝著分割精度提高的效果進行采樣。其次,本文的直接處理對象是三維點云,GAC-Net模型使用了圖注意力的方式聚合了鄰域信息,為進一步提高點云的特征提取能力,應引入成熟的二維卷積,因此,需要解決點云的無序性,才能將二維卷積應用于點云深度模型。最后,在GAC-Net模型中,上采樣過程采用線性插值的方式,僅僅獲取了局部信息,因此,在上采樣過程中,必須提高網絡的感受野,融合局部和全局信息,讓網絡可以根據飛邊與整體的關聯進行識別。
本文的任務是對鑄件的點云模型進行識別,通過構建深層神經網絡算法,實現對鑄件點云的分割。算法的輸入是鑄件的點云模型,輸出是點云模型中每個點的語義類別,包括地面、鑄件和飛邊。其中,飛邊信息用于機器人對加工軌跡進行規劃,地面和鑄件信息用于對規劃過程中添加約束。
本文算法框架和核心模塊如圖1和圖2所示,其中,如圖2所示,對圖注意力卷積GAC模型進行改進,利用提出的對稱函數激活和最遠點采樣融合算法進行采樣,提高網絡采樣過程的針對性,同時,將GAC獲取的特征融合采樣過程產生的全局特征和排列不變卷積特征,構造M-X-GAC模塊,提高網絡的特征豐富度,其輸入與輸出均為每一層點云P(N*C,N為點云的數量,C是點云的坐標空間x,y,z)及對應特征F(N*D,D是點云的特征維度)、采樣過程產生的全局特征。將GAC-Net中的上采樣過程融合全局特征,構造局部-全局特征提取模塊L-NL進行上采樣,最終,將采樣過程中最大化的特征與最終特征進行融合,經過多層感知機(MLP),得到最終的預測結果。其中,MAX-FPS、M-X-GAC和L-NL模塊的詳細描述參見第4節。整體網絡框架如圖1所示,輸入是數量為N的點云,包含空間坐標C及其初始特征D0(法向量、色彩和強度值等),本文算法輸入為點云的坐標點,屬于基于點的語義分割網絡,輸出為每個點云所屬的K種類別。整體架構呈現U-Net[7]的編碼-解碼框架,利用多個M-X-GAC模塊迭代地對點云進行降采樣的同時,提高網絡的特征維度,再結合前一層的信息,進行上采樣,將點云的數量上采樣至輸入點云的數量,將降采樣過程產生的S維全局特征Fpn-max復制N份并進行特征融合,最終經過多層感知機,得到每一個點的預測結果,實現點云的語義分割。

圖2 M-X-GAC模塊
本文算法主要通過提高采樣層的自適應能力,以及對圖注意力卷積GAC改進來提高特征提取能力,同時結合局部與全局信息進行上采樣,以下對各模塊進行分析。

圖3 MAX-FPS原理圖
在GAC-Net中,采用最遠點采樣的方式對點云進行降采樣,然而,在鑄件飛邊點云分割任務中,飛邊點云的數量占比較少,若采用最遠點采樣,雖然可以保持整體的均勻性,但是飛邊點云的數量可能較少,甚至由于最遠點采樣的隨機性,無法獲得飛邊點云,因此,需要尋找一種更具有針對性和更具有代表性的點作為采樣點。受Point-Net利用對稱函數(MAX)的啟發,其克服了點云的無序性,通過激活點云中具有代表性的點的特征值,達到對點云的整體識別。并且,在對抗-攻擊領域中,將最大化激活處的點云進行隨機偏移或者刪除,大大降低了原始神經網絡的性能[8]。綜上,可以看出最大值激活有助于選取點云中具有代表性的點,因此,本文提出一種基于最大化激活的最遠點采樣算法(MAX-FPS),其算法流程圖和原理圖如圖3和算法1所示,輸入為輸入點PL以及對應的特征FL,輸出為采樣點PL+1及對應的特征FL+1、中間特征Fpn以及最大化后的特征Fpn-max。首先,將輸入點通過多層感知機進行特征升維,然后,利用最大值函數,取得激活處的點,再利用最遠點采樣算法對采樣點進行補充,得到最終采樣的點,同時,輸出經過索引后的中間特征Fpn以及最大化后的特征Fpn-max,將特征融入后續特征,利用反向傳播,讓網絡學習到更有利于點云識別的激活點。
算法1:MAX-FPS算法
輸入:PL,FL
輸出:PL+1,FL+1,Fpn,Fpn-max采樣點及對應特征
1)Fpn=MLPU(PL) 對輸入點進行特征升維
2)Fpn-max,idxs=max(Fpn) 對Fpn取最大值
3)PL+1,idx=FPS(PL,idxs) 利用最遠點算法對采樣點進行擴充
4)FL+1=index(FL,idx) 根據索引進行特征選取
5)Fpn=index(MLPD(Fpn),idx) 先降維,根據索引進行特征選取
GAC-Net將圖注意力的思想應用到點云的識別中,引入注意力機制,提高點云對鄰近點的敏感性能,對有利于點云識別的鄰近點給予較大權重,對點云識別無作用的點給予較小權重,權重的選取由神經網絡中反向傳播自動確定最佳參數。因此,點云中每個點的“視野”來自有利于自身分類的鄰近點云,因此有利于點云的分類識別。如圖4所示,GAC首先輸出權重矩陣,再將其應用于鄰近點,進行特征聚合,實現特征的升維,其整體算法流程如算法2所示,輸入為采樣點p、鄰近點P、采樣點特征f和鄰近點特征F,輸出為采樣點特征fp。由于其對于鄰近點的可選擇性,相當于實現了卷積的可變性性,這對于局部特征識別具有重大作用,因此,GAC模塊可提高網絡的性能,從而提高整體網絡的分類性能。

圖4 GAC模塊
算法2:GAC算法輸入:p,P,f,F
輸出:fp領域點聚合后的特征
1)P′=P-p 坐標歸一化
2)F′=MLPg(F-f) 特征相似度度量
3)α=Softmax(MLPα(P′‖F′)) 計算臨近點權重
4)fp=∑~α*F′+b 聚合鄰域特征
雖然GAC可以增強點云對其領域信息的敏感性,但是無法解決點云的無序性,無法進行二維卷積,受Point-CNN啟發,通過構造變換矩陣,從而消除點云無序性與不規則性對點云卷積造成的結果不一致性,從而可以對點云進行普通卷積。排列不變卷積X-Conv算法原理如算法3所示,輸入為卷積核K、采樣中心點p、鄰近點P和特征f,輸出為采樣點新的特征。本文X-Conv將應用于此,解決點云的無序性,提高網絡的特征提取能力。
算法3:Х-Conv算法
輸入:K,p,P,F
輸出:Fp領域點聚合后的特征
1) P′=P-p 坐標歸一化
2) Fδ=MLPδ(P′) 逐點提取領域特征
3: F*=[Fδ,F] 將原始特征與提取的特征拼接
4: χ=MLP(P′) 學習χ-變換矩陣
5: Fχ=χ x F*利用χ-變換矩陣對特征進行重排列
6: Fp=Conv(K,Fχ) 常規卷積
在GAC-Net中,對點云進行降采樣時,采用最遠點采樣算法,該算法可以保持點云的均勻性,但是,由于鑄件中飛邊點云的數量占比少,造成飛邊采樣點較少,因此,將采樣方式替換為本文提出的MAX-FPS采樣方法,讓網絡可以根據分割結果動態選取采樣點,使網絡在訓練過程中朝著分割精度提高的方向發展。
如圖2所示,本文將GAC中的采樣模塊替換MAX-FPS,并且,融合排列不變卷積信息,提出了M-X-GAC模塊,該模塊實現對點云的降采樣以及特征的提取。首先,利用本文提出的MAX-FPS對點云進行降采樣的同時,獲取局部特征Fpn和全局特征Fpn-max。然后,在原有GAC對點云進行特征提取FG的基礎上,融合X-Conv信息FX和Fpn,實現對點云的特征提取。M-X-GAC模塊的整體過程如算法4所示。
算法4:M-X-GAC算法
輸入:PL,FL,Fpn-max-L
輸出:PL+1,FL+1,Fpn-max-L+1
點及特征
1: PL+1,FL+1,Fpn,Fpn-max-L+1=MAX-FPS(PL,FL,Fpn-max-L)
降采樣
2: FX-L+1=X-Conv(PL+1,FL+1)
X特征
3: FG-L+1=GAC(PL+1,FL+1)
GAC特征
4: FL+1=concat(FX-L+1,FG-L+1,Fpn)
融合特征
在GAC-Net中,對點云進行上采樣時,采用了距離插值[2]的方式對點進行特征獲取,僅僅考慮了領域的信息,即局部特征,極大地限制了特征獲取的視野。受Point-ASNL[9]的啟發,通過計算查詢點與輸入點的權重矩陣,對輸入點進行升維,將特征聚合到查詢的每個點,可獲得全局特征。因此,本文將全局特征NL(None-Local)與距離插值獲得的局部特征L(Local)進行融合,構造L-NL上采樣模塊,擴大點云獲取特征的視野。如圖5所示,L-NL上采樣模塊分為兩條路線,首先,利用距離加權方式得到上采樣后的局部特征,并進行特征升維,同時,利用采樣點及特征和初始點及特征獲取全局特征。L-NL整體算法如算法5所示,輸入為輸入點坐標PL、采樣點坐標PL+1、輸入點特征FL和采樣點特征FL+1,輸出為采樣點新特征。本文利用L-NL進行上采樣,有利于提高網絡對局部與全局信息的融合。

圖5 L-NL模塊
算法5:L-NL算法
輸入:PL,PL+1,FL,FL+1

1)Fmid-L=Interpolation
(PL,PL+1,FL,FL+1) 利用插值獲取局部特征
2)α=softmax(MLPq(FL+1)*MLPk1(FL)T)
獲得權重矩陣
3)Fmid-NL=MLPout(α*MLPk2(FL)) 獲得全局特征

為了驗證本文提出的算法在鑄件飛邊分割任務中的有效性,通過仿真建模多個不同的鑄件模型,共42個鑄件模型,每個零件隨機采集12份點云,獲得504份點云,再利用點云標注軟件對點云進行標注。將504份點云按照5:1分為訓練集與測試集。點云包含的類別分為地面、鑄件和飛邊。
點云語義分割任務中,常用的評價指標有整體準確率、類別平均準確率、整體交并比和類別平均交并比。由于本文任務是飛邊點云分割,而飛邊類別的點云個數遠遠小于鑄件與地面的點云個數,因此,本文采用類別平均交并比和飛邊交并比,從而更好地評價點云分割的效果。對于類別i,其交并比的計算公式如公式(1)所示,其中TP指標簽與預測均為類別i的總數量,FP指預測為類別i而標簽不是類別i的總數量,FN指標簽為i而預測不為i的總數量,交并比可以衡量類別之間預測整體準確度。本文采用公式(2)的平均交并比作為評價指標,即取所有類別的交并比平均值。

(1)

(2)
本文在對網絡進行訓練時,在線對點云進行隨機旋轉(繞z軸)、隨機拉伸和小范圍隨機平移。同時,由于飛邊存在于零件的周圍,因此對飛邊進行z軸方向的隨機平移,豐富樣本的多樣性,有利于網絡進行特征學習。
本文算法框架每一層中降采樣的個數,特征的維度設置,如表1所示,其中,N為每一層采樣的個數,K為點的領域點個數,F為輸出特征的維度,SA為特征提取-降采樣層,FP為上采樣層。

表1 網絡框架參數設置

圖7 鑄件點云分割結果
進行實驗的計算機,采用Intel(R) Core(TM) i5-9400F CPU
2.90GHz芯片和NVIDIA GeForce RTX 2060顯卡。采用軟件環境為win10系統,編程語言采用python3.7,采用pytorch深度學習框架進行網絡訓練,CUDA版本為10.1,CUDNN版本為7.6.5。小批次數量設置為4,訓練過程為250個周期,初始學習率為0.001,每20個周期衰減至原有的0.7,采用Adam優化器進行訓練,利用交叉熵損失CrossEntropy-Loss作為損失函數,利用梯度下降及反向傳播更新網絡參數,優化網絡學習特征。
通過訓練,如圖6所示,訓練過程中的訓練集的損失loss與測試集的m-IOU分別呈現下降與上升,m-IOU達到97.80%,達到了工業要求。同時,本文進行了對比實驗,在同樣的硬件和軟件條件下,將傳統的基于全局特征的Point-Net和最新的基于局部特征與全局特征的Point-CNN、GAC-Net、Point-ASNL網絡框架作為對比實驗,并對分割結果進行可視化,如圖7所示,可見,傳統的基于全局特征的Point-Net算法的分割結果并不理想,在鑄件表面的點云被誤分為飛邊,即使在引入局部特征的GAC-Net和Point-CNN在飛邊與鑄件的過度面(圖中方法處)分割亦存在差錯,導致飛邊的IOU比較低,會對后續機器人打磨加工造成一定的影響,而本文提出的算法,在過度面處分割效果較好,論證了本文算法的有效性,具體實驗結果如表2所示。

表2 點云分割對比實驗結果

圖6 Loss與m-IOU變化值
為論證本文提出的各模塊算法的有效性,因此進行消融實驗,其實驗結果如表3所示。其中,實驗1表示采用最原始的GAC-Net,實驗2表示融入排列不變性卷積X-Conv信息,實驗3將全局信息融入上采樣方式中,實驗4表示將原始的最遠點采樣點替換為本文提出的MAX-FPS算法。

表3 消融實驗
由于本文算法應用于機器人打磨打工中的視覺引導,需要對其計算效率進行分析。采用如4.3節中所述的硬件實驗條件,模擬實際加工過程中運算過程(即小批次數量設置為1),計算算法在預測過程中的幀速率(FPS,幀/秒)、模型參數和每秒浮點運算次數(FLOP)。實驗結果如表4所示。

表4 點云分割效率
分析圖6可知,網絡前期loss下降速度很快,這是由于地面與鑄件的分割較為容易,因此損失值迅速下降,后期訓練網絡主要集中學習飛邊與鑄件的分割,因為飛邊與鑄件有著直接的聯系,辨別分割飛邊與鑄件成為了網絡的后期主要任務。隨著網絡對飛邊的正確分割,可以看到測試集上m-IOU呈現上升狀態,證明本文算法的有效性。
分析表2可知,本文提出的算法在鑄件飛邊點云分割的任務達到了最優效果,m-IOU達到97.80%,比GAC-Net算法效果高出5.34%,飛邊IOU達到95.59%,而傳統的基于全局特征的Point-Net算法的飛邊識別IOU僅有77.13%,本文算法相較其高出18.46%,論證了本文算法的有效性和實用性。
分析表3可知,融入排列不變卷積信息后,分割結果m-IOU較原始的GAC-Net上升了3.9%,說明其可以更近一步地提取經過圖注意力卷積后的特征,有利于提升網絡的特征提取能力。將全局特征融入上采樣過程中,其m-IOU進一步提升了1.3%,說明采用局部信息進行上采樣,其特征提取能力較差,需要全局信息對其進行彌補。采用對稱函數激活的最遠點采樣方法,其分割結果m-IOU比僅采用最遠點采樣方法高出0.14%,飛邊-IOU高出0.22%,這是由于最遠點采樣僅僅關注降采樣的均勻性,而忽略了飛邊點云較少的問題,而采用對稱函數激活的最遠點采樣方法,可根據分割結果和梯度下降反向傳播,動態地調整采樣過程,使采樣朝著分割精度提升的方向行走,因而更精確的分割結果,說明了MAX-FPS算法的有效性。
分析表4可知,本文提出的算法在時間消耗上與Point-CNN等算法相差不大,并且運算的幀速率達到6幀/秒,即完成每次分割僅僅需要0.17秒,同時,參數量和FLOP在本實驗硬件條件下均得到滿足,不會出現內存爆炸和運算量不足的問題。本文在引入多個模塊的同時,能保持高效的運算效率,主要原因是各個模塊之間存在信息復用(如采樣點和鄰近點等)。在實際應用過程中,僅需要在初始進行鑄件飛邊識別,將識別結果進行保存,即可為后續加工提供視覺引導,因此本文算法具有實用性。
本文針對傳統鑄件飛邊打磨過程中零件放置固定、夾具要求高和需要人工前期示教或離線編程等局限性,提出了一種基于圖注意力的鑄件飛邊點云識別算法,對GAC-Net模型進行改進,融合了對無序點云具有較強處理能力的排列不變性卷積模塊,提出結合最大化激活的最遠點采樣算法,以及采用結合局部特征與全局特征的方式進行上采樣,構建了一種鑄件點云語義分割框架。實驗表明,本文算法優于Point-Net和GAC-Net等算法,通過消融實驗論證本文算法對于GAC-Net算法改進的有效性。