劉慧,王秀麗,沈躍,徐婕
(江蘇大學 電氣信息工程學院,江蘇 鎮江 212013)
我國是世界上林業面積最大的國家之一,病蟲害的防治是林業管理的重要部分,繁重的農藥噴灑作業需求使得噴霧機器人技術的應用顯得尤為重要[1-4].噴霧機器人實現自主作業的前提是精確感知并檢測到目標,隨后是執行精準對靶噴霧的作業[5-6].
農業領域常用算法大多基于二維圖像.早期的研究主要采用傳統圖像處理的方法,Chen 等[7]利用梯度直方圖和支持向量機訓練初始樹干分類器,提取直方圖特征,提高分類器識別精度.白帆等[8]利用最大熵閾值和GrabCut 算法分割花朵圖像.傳統算法雖然應用在特定場景效果好,但是泛化能力以及魯棒性較差.基于圖像的深度學習目標檢測方法具有強大的特征學習能力、自適應性和魯棒性,能夠達到很高的檢測精度,常用的目標檢測網絡包括SSD[9]、YOLO 系列[10-12],已經廣泛應用于農業領域.劉慧等[13]采用改進的SSD 方法實現果園行人的實時檢測.蔡舒平等[14]采用改進型的YOLOv4 網絡實現了對果園障礙物的實時檢測.
圖像數據的采集易受光照、拍攝角度的影響,導致獲取的有效信息有限,不能準確反映目標的特征,影響識別效果.與二維圖像相比,三維點云不受外部環境因素的影響,具有豐富的空間信息,因此基于三維點云的方法被引入目標分類中.基于點云的分類方法主要分為傳統的機器學習方法和深度學習方法.傳統的機器學習方法主要包括基于隨機森林(RF)[15]、支持向量機(SVM)[16],基于深度學習的點云分類方法分為間接基于點云的方法和直接基于點云的方法.間接基于點云的方法包括基于多視圖、體素方法[17-20],這些方法均通過將不規則的三維點云數據轉換為其他規則化的格式來實現分類,會丟失點云的三維空間信息和固有的幾何屬性,還會增加計算的復雜度,因此只能用于小型或特定的場景,難以滿足大范圍復雜場景下的分類要求.直接基于點云的方法能夠充分利用點云數據的幾何特性,最大程度上保留了原有的空間特征.PointNet[21]是這類方法的先驅,它通過直接對原始點云數據進行處理,將未處理的無規則點云數據輸入網絡,避免了信息的丟失,缺點是只考慮了全局特征,忽略了局部特征.Qi 等[22]提出PointNet++網絡以最遠點采樣的方式將輸入點集劃分局部區域,在局部區域上使用PointNet 捕獲局部特征,提高了點云分類精度.基于深度學習的點云分類方法效果顯著,在農業領域得到進一步應用.王浩云等[23]使用KinectV2相機獲取綠蘿葉片點云數據,提出基于多分辨率編碼點云深度學習網絡和自編碼器模型,估測了綠蘿葉片的外形.Jayakumari 等[24]對PointNet 框架進行改進,提出CropPointNet 深度卷積神經網絡,對蔬菜作物進行了分類.Qian 等[25]增加了PointNet網絡的跨層次特征連接結構,以便更好地提取水稻種子的表面結構特征,實現了水稻品種的高效分類.以上研究表明,直接基于點的深度學習方法可以充分利用數據特征,對目標進行較為準確的分類.
由于采用直接基于點的深度學習方法對苗圃場景進行多目標分類的研究較少.為了實現苗圃場景多目標分類任務,本研究提出基于融入卷積塊注意力模塊的PointNet++多目標分類網絡.以PointNet++網絡為基礎,通過在特征提取層中嵌入注意力機制模塊,從通道、空間2 個維度篩選特征,加權輸出特征來提取關鍵特征,在降低參數量的同時增強網絡的特征學習能力.引入LeakyReLU激活函數避免負值時梯度消失問題.采集6 類苗圃中的常見目標制作數據集,來驗證所提方法的多目標分類準確性,給農業機器人的分類作業任務提供參考.
數據集采集地點為江蘇省鎮江市的一處苗圃,采集方式為大疆激光雷達Livox Horizon 掃描,采集時間為2021 年11 月至2022 年5 月,采集數據包含冬季和春季不同狀態的樹木,數據采集的場景如圖1 所示,激光雷達參數見表1.每次從不同角度、不同位置掃描目標樣本,分別采集不同類別的樣本點云數據.考慮到農業機器人在苗圃中進行作業時可能會遇到的各種靶標(不同高度、不同形態的樹木) 和非靶標(如指示牌、行人、其他),將靶標根據樹木高度與冠層密度劃分為高樹、灌木、枯樹,冠層密度不同設置的噴藥量不同,非靶標則避開不進行作業.苗圃點云數據集分為高樹、灌木、枯樹、行人、指示牌和其他(不含樹木的種植盆) 6 種類別標簽.

表1 Livox Horizon 激光掃描儀的設備參數Tab.1 Specifications of Livox Horizon laser scanner

圖1 苗圃點云數據采集場景Fig.1 Nursery point cloud data acquisition scene
1.2.1 點云處理 通過CloudCompare 軟件對采集的數據文件進行預處理.考慮到點云近密遠疏特性,處理數據時一般取雷達掃描范圍為[0, 10] m的、密度合適的點云數據.原始點云的大小不一,通過點云預處理可以增強網絡對目標物體的識別能力.利用CloudCompare 軟件對原始點云數據進行濾除背景、地面點云操作,僅保留感興趣區域點云,并手動標注點云標簽.PointNet++網絡輸入的樣本點數固定,通過對點云密度高的下采樣(隨機下采樣法)至10 000 個點和對點云密度稀疏的上采樣(移動最小二乘法)至10 000 個點來保持輸入一致,再對獲得的各個樣本點云進行歸一化處理,將點坐標歸一化到[-1, 1].數據集部分樣本如圖2 所示,對應預處理后點云如圖3 所示.

圖3 苗圃數據集預處理后的樣本點云Fig.3 Pre-processed sample point cloud of nursery datasets
1.2.2 數據增強 一般而言,神經網絡需要大量數據進行訓練,訓練的數據越多,精度就越高;數據量較少可能會導致訓練模型過擬合,網絡泛化能力差,從而影響分類精度.在實際工程應用中,往往存在樣本數量不足的問題,采集新的數據會耗費大量的成本.本研究采用數據增強的方法來獲得更多的數據.通過隨機抖動的方式對已有的點云數據進行數據擴增,可以增強網絡的魯棒性,使得網絡模型具有更好的泛化效果.將擴充后的數據按7∶3 隨機劃分為訓練集和測試集,其中訓練集包括2 349 個樣本點云,測試集包括1 008 個樣本點云.數據抖動后的樣本及點云xyz坐標變化示例如圖4 所示,數據擴增前、后的不同類別樣本數量na、nb如表2 所示.

表2 擴增前、后不同類別樣本數量Tab.2 Number of different types of samples before and after amplification

圖4 抖動前、后點云變化Fig.4 Point cloud changes before and after jittering
PointNet 作為直接處理原始點云的先驅可以直接進行3D 點云數據分類,但無法獲得局部特征.PointNet++作為PointNet 的后續改進網絡,通過對輸入點集進行區域劃分,以分層的方式提取點的特征.借鑒卷積神經網絡(convolutional neural network,CNN)的思想,PointNet++在不同尺度提取局部特征,從小的點云鄰域中捕獲點的特征,并沿著層次結構在越來越大的鄰域中獲得越來越高的特征.如圖5 所示,PointNet++利用多個集合采樣層構造多層次結構來提取點云特征,每組集合采樣層都由3 個部分組成:采樣層、分組層和特征提取層.采樣層使用最遠點采樣法從輸入點云中選擇一組點作為局部區域的質心點.其中N為點數,d為維度,C為特征維數,K為局部區域最大采樣點數.分組層根據質心點以球查詢方式進行局部區域的劃分.特征提取層使用小型PointNet模塊作為特征提取器,捕獲局部區域近鄰點對質心點的特征關系.提出多尺度分組(multi-scale grouping,MSG)和多分辨率分組(multi-resolution grouping,MRG)方法,當輸入點云密度不均時,該方法能夠學習不同尺度區域的特征,有效解決點云密度近密遠疏的問題,克服PointNet 在復雜場景的適用性差的缺點.

圖5 PointNet++分類網絡模型Fig.5 PointNet++ classification network model
注意力機制在機器視覺領域具有廣泛應用,很多學者嘗試在目標檢測算法中添加注意力模塊,在增加少量成本的同時提高目標檢測精度[26-28].注意力模型本質上是對目標特征數據進行加權變化,生成不同的權重,有選擇性地對信息進行篩選.Woo 等[29]提出卷積塊注意力模塊 (convolutional block attention module, CBAM),與SENet[30]不同,注意力機制使用單獨的通道注意力模塊,僅在通道維度上提升檢測性能,CBAM 沿著通道和空間這2 個維度來提取特征信息,以較低的算力實現了較高的性能改進.作為輕量級的通用模塊,CBAM可以嵌入任意已有的卷積神經網絡中進行訓練.
CBAM 包含通道注意力機制模塊(channel attention module, CAM) 和空間注意力機制模塊(spatial attention module, SAM).這2 個模塊以2 種不同的維度壓縮特征圖,并利用平均池化和最大池化提取特征圖中的關鍵信息,計算過程為
式中:MC(F) 為特征F經過通道注意力的輸出權值,MC(F′)為F′經過空間注意力的輸出權值, ? 為矩陣的逐點相乘,F′′為最終的優化輸出.CAM從通道維度對點云特征信息進行篩選加以不同權重,有選擇性地增強目標區域的特征權重.具體方式:通過執行平均池化(AvgPool)和最大池化(MaxPool)對目標點云的特征信息進行增強,得到平均池化特征和最大池化特征.2 種池化方式得到的特征信息可以相互補充,再將特征送至由多層感知機和隱藏層組成的共享網絡,生成通道注意力MC∈RC×1×1(C為通道數),計算式為
式中:σ 為sigmoid 激活函數;MLP 為多層感知機;W0∈RC/r×C,W0為MLP 的隱藏層權重,r為降維系數;W1∈RC×C/r,W1為MLP 的輸出層權重.空間注意力作為通道注意力的補充,沿著通道進行平均池化和最大池化操作,將獲得的特征進行拼接,再通過7×7 的卷積操作Conv 和sigmoid 歸一化得到空間注意力特征圖MS(F)∈RH×W, 計算式為
本研究在PointNet++網絡的每個集合采樣層(set abstration,SA)的特征提取模塊中添加卷積塊注意力模塊CBAM,經過注意力模塊后,新的特征結合通道和空間維度上的注意力權重,提高了各個特征在通道和空間上的聯系,增強了網絡對目標點云關鍵特征的提取,同時弱化了無關信息,通過注意力里的卷積操作極大地減少了參數和計算量.改進后的PointNet++多目標分類網絡結構如圖6 所示.其中N、N1為 輸入點的數量,C、C1為特征維度.輸入點云先通過集合采樣層(SA)模塊的采樣和分組操作得到多個局部點集,再通過PointNet 模塊對點集進行特征提取,通過特征提取模塊中嵌入的注意力機制對輸入特征進行加權強化目標點云信息,可以提高網絡的特征學習能力.通道注意力對不同特征圖按通道權重進行劃分,學習不同通道之間的關系,可以增強提取目標點云的輪廓特征的能力,空間注意力可以提高網絡對目標點云的關注,減少噪點的干擾.使用最大池化層對點云特征進行壓縮,并輸出到下個集合采樣層進行重復的操作,再通過全連接層輸出分類結果.添加注意力機制的網絡在訓練過程中能夠根據通道和空間維度特征的不同重要程度,給點云加以不同注意力權重來強化有用特征并降低無用特征的干擾,最大程度上學習目標點云的關鍵特征,從而提升網絡分類精度,實現苗圃多目標分類.

圖6 改進的PointNet++多目標分類網絡Fig.6 Improved PointNet++ multi-object classification network
學習苗圃中多種目標特征,選擇合適的激活函數可以提高網絡的效率.PointNet++網絡中使用的是ReLu 激活函數,該函數只有在輸入為正時導數不為0,在當輸入為負值時,函數值等于0 處于硬飽和狀態,神經元不會更新權重.本研究選擇LeakyReLu 函數作為具有良好性能的激活函數,以緩解梯度消失問題,方程式為
式中:系數ɑ的取值范圍為(0,∞).LeakyReLu 函數當輸入小于0 時梯度也不會為0,而且推理速度與ReLu 功能基本相同,避免了梯度消失問題.選取 LeakyReLu 激活函數在一定程度上加快了訓練速度,提高了網絡的效率.
實驗的操作系統為Windows10,以Pytorch 為框架,顯卡為NVIDIA Quadro RTX4000 GPU,處理器為Intel(R)Core(TM)i9-10900K CPU @ 3.70 GHz.訓練階段使用Adam 優化器,batchsize 為18,設置epoch=150,學習速率為0.001.
主流的點云分類精度衡量指標包括總體精度OA 和平均分類精度mAcc.OA 指場景中正確預測類別的點數與場景總點數的比值,是多類別分類問題中常用的指標;mAcc 指評價模型所有類別分類精度取平均.為了評估分類網絡對樣本的分類性能,使用OA、mAcc 和每個類別的精度Acc 作為評判標準,計算式分別為
式中:TP 為正確預測結果的數量,FP 為錯誤預測結果的數量,W為數據集中點云的總數,n為類別數.
3.3.1 苗圃數據集上的各個網絡分類結果對比 為了探究改進算法在苗圃場景中的多目標分類效果,使用自制的數據集進行分類實驗驗證,分別計算每個類別的分類精度作為額外的指標來評估改進后網絡的性能.如表3 所示為PointNet、PointNet++以及改進PointNet++在林果園場景數據集中6 個類別的分類準確率.可以看出,與PointNet++網絡相比,改進后網絡對大多數類別的預測精度都有著不同程度的提高,各個類別的分類準確率均超過90%.其中高樹、灌木、枯樹和其他4 個類別的準確率在改進網絡中更高,分別比PointNet++網絡高出1.54、0.74、2.28 和4.13 個百分點,表明融入注意力機制在很大程度上提升了網絡的分類精度,特別是對不同形態樹木的分類,有利于為農業機器人的靶標精準識別提供參考信息.行人、指示牌這2 個類別的準確率相比原網絡有所下降.可能是由于在采集點云數據時,采集樹的類別和數量占據的比重較大,導致分類精度相對較高,而其他類別所占的比重較少,對分類結果的精度有一定的影響.苗圃中的農業噴霧機器人主要是對不同形態的靶標進行作業,改進方法對不同種形態樹木的分類精度都比改進前有一定的提高,能夠更好地分類識別出靶標,更有利于為機器人的對靶作業提供參考.

表3 不同網絡在苗圃數據集上的標簽分類結果對比Tab.3 Comparison of classification results of different networks for labels in nursery datasets
在PointNet++中相同的位置插入SENet 注意力進行分類實驗對比.如表4 所示,插入SENet 注意力的網絡的總體精度和平均精度略有提升,分別達到94.53% 和94.08%,相比于原網絡提高0.24 和0.44 個百分點.本研究使用的CBAM 注意力機制改進網絡的總體精度和平均精度相比于原網絡提高2.09 和2.22 個百分點.說明改進網絡對苗圃場景的目標分類性能提升更加明顯,更符合本研究的需求.將訓練階段的準確率和損失函數Loss 的變化進行了可視化處理,曲線變化如圖7所示.除分類精度外,網絡運行速度v也是衡量網絡性能的重要指標.如表4 所示,PointNet 的分類速度最快達到0.01 幀/s,總體精度最低只有88.36%;PointNet++的分類速度為0.07 幀/s,精度達到94.29%;插入SENet 注意力改進后的網絡分類速度為0.06 幀/s,總體精度為94.53%;改進網絡的分類速為0.04 幀/s,分類精度最高達到96.38%.實驗結果表明,改進網絡的分類精度在參與對比的模型中表現最好,且分類速度也有一定提升.綜合精度和速度考慮,本研究使用的注意力模塊改進后的網絡更適于應用在苗圃多目標分類任務中.

表4 不同網絡在苗圃數據集上的分類結果對比Tab.4 Comparison of classification results of different networks in nursery datasets

圖7 各網絡在苗圃數據集上的訓練準確率和損失函數曲線Fig.7 Training accuracy and loss function curve of each network in nursery datasets
3.3.2 ModelNet40 數據集上的分類結果對比 在點云分類領域權威的公共數據集ModelNet40 上對PointNet、PointNet++以及改進網絡分別進行分類訓練與測試.ModelNet40 共包含40 個類別對象的12 311 個網格CAD 模型,其中9 832 個模型作為訓練數據,2 468 個模型作為測試數據.訓練階段的準確率和損失函數的變化如圖8 所示,隨著迭代次數的增加,準確率不斷增加,損失函數值不斷減小.在訓練開始階段損失值下降幅度很大,準確率曲線上升明顯.當迭代次數達到50 次時,損失曲線趨于平穩,準確率曲線變化緩慢,當訓練迭代次數達到150 次時基本收斂,網絡逐漸趨于穩定,準確率也達到最高.在整個訓練過程中,改進網絡的損失值一直小于原網絡,精度也是高于原網絡.對訓練好的模型進行測試.PointNet、PointNet++以及改進網絡的分類測試結果對比如表5 所示.與PointNet 網絡相比,改進網絡的總體精度提高了2.90 個百分點,平均精度提高了3.99 個百分點;與PointNet++網絡相比,改進后PointNet++網絡的總體精度提高了0.96 個百分點,平均精度提高了1.21 個百分點.實驗結果表明,所提方法的分類精度與速度在原網絡良好的基礎上還有提高,證明改進網絡具有一定的優越性.

表5 各網絡在ModelNet40 數據集上的分類結果對比Tab.5 Comparison of classification results of each network in ModelNet40 datasets

圖8 各網絡在ModelNet40 數據集上的訓練準確率曲線和損失函數曲線Fig.8 Training accuracy curve and loss function curve of each network in ModelNet40 datasets
3.3.3 綜合性能的消融實驗 為了進一步驗證同時采用的CBAM 和選用LeakyReLu 的有效性,將注意力模塊和激活函數分別單獨加入網絡中設計4 組消融實驗,在自制苗圃數據集和ModelNet40數據集上進行分類訓練和測試,結果如表6 所示.消融實驗的結果表明,單獨使用任一模塊時,網絡分類精度的提升有限,將CBAM 與LeakyReLu配合使用時的分類性能最好,網絡的總體精度和平均精度也是最高的.

表6 苗圃數據集與ModelNet40 數據集上的消融實驗Tab.6 Ablation experiments in nursery datasets and Model-Net40 datasets%
提出基于融合卷積塊注意力模塊的PointNet++多目標分類方法.采用基于點云的深度學習方法,利用PointNet++和CBAM 構建分類網絡模型,將注意力機制嵌入PointNet++主干網絡的特征提取層中,對特征進行加權,增強對關鍵特征的提取,降低無關特征的干擾,引入LeakyReLu 激活函數解決梯度消失的問題.根據苗圃中的不同靶標與非靶標種類制作數據集,該數據集包含不同形態的樹木、行人、指示牌等6 個標簽類別.在分類實驗中,將改進網絡與PointNet 和PointNet++的分類結果進行比較.結果表明,改進網絡在苗圃數據集上準確率達到96.38%,分類速度達到0.04 幀/s,在ModelNet40 數據集上的分類準確率達到92.87%,均高于PointNet 和PointNet++.實驗結果表明,所提方法具有更高分類精度和更快的分類速度,能夠較好實現多目標分類,有利于農業機器人的靶標識別,為機器人的分類作業提供參考.如何進一步提高網絡性能并將網絡部署至農業機器人平臺上有待更深層次研究.