范彬彬, 秦訓鵬, 吳 強, 王 哲, 畢玖琚
(1.武漢理工大學 汽車工程學院,湖北 武漢 430070; 2.現(xiàn)代汽車零部件技術湖北省重點實驗室,湖北 武漢 430070)
鋼鐵回收過程中,不同大小尺寸的廢舊鋼鐵回收價格不同,并且廢舊鋼鐵回收處理過程中,如果鋼鐵尺寸過大,會使龍門剪切機卡料,損壞器械,因此需要對回收的鋼鐵進行尺寸判別,依據(jù)尺寸大小定價,并根據(jù)尺寸大小確定廢舊鋼鐵的處理流程。雙目視覺測量是依據(jù)人類視差成像原理,利用兩臺相機通過左、右兩幅圖像獲取視差進而生成三維點云數(shù)據(jù)的測量方式[1]。雙目視覺測量雖然精度相比激光雷達點云精度存在差距[2],但是憑借雙目視覺的高效率、精度適宜、結構簡單、成本低的特點,在工業(yè)生產(chǎn)、三維測量領域得到了廣泛的應用。
目前,點云的目標分割方法可分為基于深度學習的點云分割和基于顏色、幾何等特征的點云分割?;谏疃葘W習的三維點云語義分割模型主流上有Point Net、Point Net++、KD-Net、3D-MPA等[3-6]。這類方法對數(shù)據(jù)集有非常高的要求,應用的廣泛性受到很大的限制?;陬伾?、幾何等特征的點云分割沒有數(shù)據(jù)集的要求,具有更大的應用面。較為常用的特征有邊緣特征[6-8]、表面特征[9-10]、顏色特征[11-12]等。其中,顏色特征是雙目點云與激光雷達點云的一個顯著區(qū)別,雙目點云的顏色來源于圖像顏色,因此雙目點云結合顏色特征進行分割得到廣泛應用。針對開放式場景的復雜情況,本文結合基于圖像的目標檢測和實例分割,針對圖像實例分割像素精度不高的問題,提出通過實例分割掩膜自適應提取顏色閾值的方法對點云進行顏色濾波和歐式聚類,得到更加完整的實例點云。
鋼鐵回收領域的突出特點是開放式環(huán)境的復雜背景,往往在廢舊鋼鐵中會混雜有其他非鋼鐵物體,因此本文采用Mask R-CNN模型對圖像進行目標檢測和實例分割,目標檢測由于較高的識別精度,能夠快速定位廢舊鋼鐵的位置。由于實例分割掩膜的不完整性和低精確度,本文根據(jù)掩膜提取目標顏色閾值再對點云進行顏色濾波,以避免掩膜不完整造成的點云缺失,再通過有向包圍盒(oriented bounding box,OBB)對鋼鐵點云進行尺寸估計。
本文獲取目標點云及尺寸估計的算法如圖1所示。
圖1 雙目視覺目標點云分割流程
該算法的具體步驟如下。
1) 對采集的雙目圖像進行立體校正,并對左視圖進行目標檢測與分割,獲得目標所在的矩形區(qū)域及掩膜。
2) 對校正圖像進行立體匹配與視差計算,并進行目標矩形區(qū)域裁剪。
3) 結合視差與標定參數(shù)進行計算,得到三維點云。
4) 根據(jù)Mask R-CNN模型得到的mask掩膜自適應獲取HSV顏色空間閾值。
5) 根據(jù)顏色閾值對點云進行顏色濾波。
6) 通過歐式聚類的方法將目標點云分割出來。
7) 通過OBB對鋼鐵點云進行尺寸估計。
Mask R-CNN模型[13]是在Fast R-CNN基礎上,在原本的分類與回歸分支上擴展并添加語義分割分支,實現(xiàn)對圖像的目標檢測與實例分割。Mask R-CNN是一種兩階段目標檢測方法:第1階段通過區(qū)域建議網(wǎng)絡(region proposal network,RPN)生成一系列建議框;第2階段通過生成的建議框與感興趣區(qū)域對齊,再對特征層進行截取。最后將截取特征輸入分類、回歸和掩碼3個分支進行不同的預測任務。本文所用Mask R-CNN模型以ResNet101為主干特征提取網(wǎng)絡,在特征提取后利用壓縮2~5次的特征層構建特征金字塔,實現(xiàn)多尺度特征融合。將提取到的P2~P6作為RPN的有效特征層進行建議框的提取,將P2~P5作為3個分支的有效特征層對建議框進行最終預測。通過RPN對有效特征層獲取先驗框調整參數(shù)并判斷框內是否存在物體,隨后對先驗框進行調整和篩選后得到建議框。建議框是對圖片有物體的區(qū)域進行初步篩選,再結合主干特征提取網(wǎng)絡獲得的多個公用特征層,經(jīng)由ROI Align網(wǎng)絡根據(jù)建議框對特征層進行截取,截取后的特征經(jīng)卷積后輸入到不同的檢測分支對建議框進行調整和預測,并得到最終預測結果。Mask R-CNN網(wǎng)絡框架圖如圖2所示。
圖2 Mask R-CNN網(wǎng)絡框架圖
采用單獨使用深度學習的方式對目標進行像素級的圖像分割具有很大的限制。首先,對數(shù)據(jù)集的數(shù)量和質量要求較高,圖像采集和打標簽的工作量也非常龐大;其次,目前的實例分割模型對目標的邊緣還無法做到精度很高的分割。然而,深度學習在目標檢測領域能達到非常高的精度,因此本文采用Mask R-CNN模型作為點云算法的預處理模塊,其功能包含目標檢測和實例分割功能。目標檢測得到的目標框將目標截取出來,減少計算量并突出目標,減少背景干擾;實例分割的邊緣精度不高但是能夠提取出目標的主體部分作為自適應顏色閾值算法的輸入。自適應顏色閾值算法對目標邊緣不敏感,只需要獲得目標的主體顏色,因此不需要追求實例分割的高精度,這大大降低了對數(shù)據(jù)集的要求。
本文使用open CV庫中半全局塊匹配(semi-global block matching,SGBM)算法[14]對校正圖像進行立體匹配與視差計算,如圖3所示。
圖3 圖像裁剪
計算出的視差圖如圖3b所示,由于圖像像素大小為2 048×2 040,先對左視圖和視差圖進行目標截取,根據(jù)識別出的目標框,截取圖像獲得更小的圖片,減少計算量和背景干擾。
雙目視覺利用雙目視差原理計算物體實際坐標,如圖4所示。
圖4 雙目立體視覺示意圖
計算公式如下:
(1)
(2)
(3)
其中:B為左右基線距離;Xleft、Xright、Yu為相機坐標系下的圖像坐標;ul、vl為左相機圖像的像素坐標;cx、cy為光心坐標。通過式(1)~(3)可計算物體在左相機坐標系下的坐標。
本文選取的實驗目標是汽車B柱,具有典型的銀白色金屬光澤。針對場景中前景有多個干擾物體的情況,本文通過顏色的差異先對前景的物體進行處理,對目標進行顏色濾波,將非目標點云離散化,同時也減少點云數(shù)量,提高后續(xù)點云處理速度。
圖像的顏色分割可通過不同的顏色空間進行區(qū)分,較為常用的有RGB顏色空間、HSV顏色空間、YCbCr顏色空間和Lab顏色空間。根據(jù)實際場景采集的圖片,進行調參實驗發(fā)現(xiàn),HSV顏色空間能夠取得更理想的分離效果,能夠在將前景中汽車B柱較完整保留下來的同時,將前景目標邊緣的像素濾除,實驗結果如圖5所示,因此本文顏色濾波采用HSV顏色空間。
圖5 不同顏色空間下的顏色濾波圖
通過掩膜提取目標的RGB三通道值,并轉化到HSV顏色空間,再計算HSV三通道的像素分布。RGB顏色空間到HSV顏色空間的轉化公式如下:
(4)
(5)
V=cmax
(6)
其中:H、S、V分別為HSV顏色空間三通道的像數(shù)值;R、G、B分別為RGB顏色空間三通道的像數(shù)值;cmax、cmin分別為當前像素點RGB三通道中的最大值和最小值。
根據(jù)實驗發(fā)現(xiàn),頻率分布區(qū)間劃分越多,閾值計算越準確,同時計算量也將加大,本文選擇了100個分布區(qū)間。將HSV三通道的頻率分布數(shù)列輸入自適應顏色閾值選取算法中,得到目標物體的顏色分割閾值,算法偽代碼如下。
Input:顏色頻率分布a,b;顏色占比scale=0.9
//a存儲頻率,b存儲區(qū)間
Output:顏色閾值{thresholdmin,thresholdmax}
x←max a//將最高頻率賦值給x
m,n←index(maxa)//左右起始閾值賦值
whilex
ifm m++//最大閾值右移 x←x+a[m]//頻率和增加 end if ifn> 0 then//最小值未越界 n--//最小值左移 x←x+a[n]//頻率和增加 end if end while thresholdmin←b[n] thresholdmax←b[m+1] return thresholdmin,thresholdmax 將獲得的點云的RGB顏色空間轉化到HSV顏色空間,并根據(jù)自適應HSV顏色閾值進行點云顏色濾波,使非目標點云離散而目標點云保持連通。 通過上一步點云的顏色濾波,將非目標點云離散化而最大限度保留了目標點云的完整和連通。針對顏色濾波后的點云特點,本文結合歐式聚類的方法,將目標點云分割。歐式聚類利用點與點之間的歐式距離進行聚類,點與點之間的歐式距離小于設定閾值則視為一類。由于點云數(shù)據(jù)較大,為提高計算速度,本文在歐式聚類前先對點云進行隨機下采樣,同時采用構建K-d樹的方法提高計算速度,算法偽代碼如下。 Input:P-Could,tolerance,P-Sizemin,P-Sizemax //點云,最大距離,最小、最大點云數(shù)量 Output:點云聚類結果{clusters} kdtree←EstablishKdtree(P-Could) P-Num←P-Cloud.length for idx=0 →P-Num do if processed[idx]==1 then//該點已處理 continue end if seedq←idx//加入一個種子點 processed[idx] ← 1//標記該點已處理 sqidx← 0 while sqidx k,Ind←kdtree(P-Could[seedq[sqidx]]) //獲取種子點的鄰近點數(shù)量及索引 ifk==1 then sqidx++ continue end if forj=0 →kdo if Ind[j]==P-Num‖ processed[Ind[j]]==1 then continue //已經(jīng)處理的近鄰點則跳出此次循環(huán)繼續(xù) end if seedq← Ind[j] processed[Ind[j]]=1 //加入種子點,并標記 end for sqidx++ end while if P-Sizemax>seedq.length>P-Sizemin then clusters ←seedq //聚類結果存入clusters end if end for return clusters 算法中最大距離參數(shù)的選擇與圖像大小和相機視野大小有關,計算公式如下: 1.1αFS≤t≤1.8αFS (7) (8) 其中:t為最大距離閾值;α為點云下采樣倍率;FS為比例因子;Fov為單邊相機視野;P為單邊圖像像素大小;L、W分別為長和寬,Fov和P的長或寬要相對應。 鋼鐵回收過程中需要對廢舊鋼鐵進行尺寸估計以進行定價和回收處理。針對點云的尺寸估計,本文采用OBB的方式進行尺寸估計, 它沿著點云的主成分方向生成一個最小的可以隨物體旋轉的矩形包圍盒,能夠更緊密地貼近物體,該方法比較廣泛地用于碰撞檢測中。 點云的有向包圍盒將通過對點云的主成分分析獲得特征向量,以這些特征向量作為包圍盒的主軸。點云的協(xié)方差矩陣A的特征向量表示有向包圍盒的主軸方向。點云的中心為包圍盒的中心,以點云中心為包圍盒的中心,沿主軸方向計算x、y、z3個方向的半長度,即可求出點云的有向包圍盒。具體計算公式如下: cov(Xi,Xj)=E[(Xi-μi)(Xj-μj] (9) (10) 式(9)為協(xié)方差計算公式,其中,μ為均值。 實驗平臺包括圖像采集設備和算法運行環(huán)境,圖像采集設備采用2個相同型號的工業(yè)相機(Basler acA2440-20gc)和工業(yè)鏡頭(C0828-5M)組成雙目立體視覺,如圖6所示,最大圖像像素大小為2 440×2 048,工作距離為2 m,視野大小為2.1×1.775 m。深度學習模型Mask R-CNN在工作站上完成GPU加速訓練后將權重下載并移植到算法運行環(huán)境中。運行環(huán)境如下:操作系統(tǒng)為Windows 10;CPU為Intel(R) Core(TM) i5-7300HQ;IDE為VS Code;深度學習框架為Tensorflow 1.13.1+keras 2.1.5。 圖6 雙目相機 將400張金屬汽車零部件的圖像按照6∶2∶2的比例劃分訓練集、驗證集和測試集,再對訓練集進行數(shù)據(jù)增強到3 000張圖像,輸入Mask R-CNN模型中進行訓練,訓練100次迭代的損失曲線如圖7所示,從圖7可以看出,在迭代約80次后趨于收斂,在0.50~0.95全部IoU閾值下,回歸框的平均精確率為0.892,平均召回率為0.902;掩膜的平均精確率為0.672,平均召回率為0.900。 圖7 Mask R-CNN模型訓練迭代過程 校正后的圖像對如圖8所示,目標檢測和實例分割的圖像為校正后的左相機圖像,識別結果如圖9所示。為減小運算量,對左視圖和視差圖進行裁剪,如圖3所示,并進行三維重建得到初始點云。為提高運行速度,將初始點云進行下采樣,下采樣倍率α=10。因此,依據(jù)式(7)、式(8)取聚類閾值t=10。通過顏色濾波與歐式聚類得到的聚類點云如圖10所示。 圖9 汽車B柱目標檢測圖 圖10 點云歐式聚類示意圖 為定量分析雙目視覺目標點云分割算法的性能,參考文獻[12,15-16]的濾波誤差評價方法,將原始點云O分為目標點OT和非目標點OF,分割后的點云分為目標點ST和非目標點SF,濾除的點云包括目標點DT和非目標點DF。第Ⅰ類誤差為將非目標點判斷成目標點的誤差,即Ea=(SF/DF)×100%;第Ⅱ類誤差為總誤差,將非目標點誤判為目標點和將目標點誤判為非目標點,即Eb=[(SF+DT)/O]×100%;定義目標的分割完整度為分割的目標點云與目標點云的比值,即I=(ST/OT)×100%。其中,真實的目標點云通過人為劃分的方法來確定。 為驗證本文算法的可行性,采用部分替換及與其他方法進行對比的方式進行對比實驗。文獻[17]提出了采用半徑濾波進行預處理后采用歐式聚類的方法進行目標點云分割;文獻[18]采用Mask R-CNN實例分割算法對橋梁進行目標檢測與實例分割,根據(jù)分割掩膜對點云進行分割;基于此基礎上,將2種算法結合,將Mask R-CNN模型與半徑濾波和歐式聚類結合。 為驗證目標檢測模型對本文算法的影響,本文采用YOLOv5s-seg模型替換為Mask R-CNN模型后再進行顏色濾波與歐式聚類的方法,并通過對比進行驗證本文算法。YOLOv5s-seg是基于YOLOv5網(wǎng)絡的輕量級實例分割模型。在相同的數(shù)據(jù)集訓練后,0.50~0.95全部IoU閾值下回歸框的平均精確率為0.664,掩膜的平均精確率為0.673。 圖像的識別結果如圖9所示。從圖9可以看出:Mask R-CNN模型的目標框識別準確率更高,在圖像中能夠將目標物體更加完整地包圍;YOLOv5s-seg則沒能完整地包圍目標物體,且掩膜中存在錯誤掩膜。 汽車B柱點云為本文實驗對象,雙目重建后原始點云中點數(shù)目為107 142,其中:目標點數(shù)目為25 416;需要濾除的點數(shù)目為81 726。將本文算法與以上4種算法進行對比,結果見表1所列,效果圖如圖11所示。從表1和圖11可以看出,本文算法對目標點云的分割誤差比其他算法更小,點云完整度也更高。文獻[17]利用半徑濾波和歐式聚類的方法無法從前景的多個物體中將目標分離出來,雖然完整度很高,但是第Ⅰ類誤差和第Ⅱ類誤差均超過了20%。 表1 算法誤差對比 圖11 算法效果對比圖 文獻[18]利用Mask R-CNN模型結合圖像分割點云,雖然誤差減小,但是點云附近增加了很多噪點,并且由于圖像像素分割不夠準確,點云邊緣還有很多非目標點云。在文獻[18]基礎上增加歐式聚類,可以將點云邊緣附近的非目標點云濾除,減小誤差,但從圖11中可以發(fā)現(xiàn),由于目標檢測算法的掩膜分割不夠準確,點云中的目標點丟失很多,導致點云缺失了一部分。將目標檢測模塊換成YOLOv5s-seg模型后,由于目標檢測回歸框的準確率較低,導致無法將目標完整地框選,因此會使保留的目標點ST減少,濾除的目標點DT增大,進而增大2種誤差。同時,目標框內出現(xiàn)的錯誤掩膜將會影響顏色率波。由于YOLOv5s-seg模型識別的掩膜中出現(xiàn)了非目標物體,掩膜的顏色分布將會出現(xiàn)變化,顏色濾波的自適應閾值也會偏移,導致的結果如圖11f所示,點云中出現(xiàn)了較大的空洞,導致點云的完整度降低。由以上分析可知,目標檢測模型的回歸框將影響最終點云的完整度,回歸框應盡可能完整地包圍目標;掩膜影響最終點云的分割誤差和完整度,主要是由于錯誤掩膜的影響,掩膜輪廓精度對最終效果無影響。 本文所提出的算法充分考慮到圖像前景干擾物體多,深度學習算法數(shù)據(jù)集不夠充分的情況,利用圖像的顏色、幾何、統(tǒng)計等特征,根據(jù)目標的顏色分布,設計了自適應顏色閾值選取算法,結合歐式聚類對目標進行點云分割,分割點云的完整度可達到90%以上,第Ⅰ、第Ⅱ類誤差分別為0.615%、2.807%。綜合來看,本文提出的算法效果最佳。根據(jù)圖11算法效果對比可知,本文算法對于邊緣點云的分割更加精確。 同時,在多個廢舊鋼鐵汽車零部件上,本文算法均表現(xiàn)出較好的分割性能,具有一定的泛化能力。不同物體效果如圖12所示,圖12中:物體a為汽車B柱;物體b為汽車上的廢舊零部件;物體c為一塊方形廢鋼。通過本文算法進行雙目點云自適應分割,得到的效果圖能夠較為清晰的表現(xiàn)出物體形貌。 圖12 不同物體效果圖 根據(jù)實驗統(tǒng)計,在本文的設備環(huán)境下,本文算法對圖12的3個物體進行點云分割的運行時間統(tǒng)計結果見表2所列。 表2 不同物體數(shù)據(jù)對比 總運行時間包括目標檢測時間、立體校正和三維重構時間、顏色濾波時間、歐式聚類時間,其中顏色濾波和歐式聚類占用的時間較多,這主要與目標點云的數(shù)量有關,目標點云越多,耗費時間越多。從表2可以看出,點云分割誤差也表現(xiàn)較好,說明本文算法具有一定的泛用性和實用價值。本文算法的應用對象為雙目點云,因此點云的規(guī)模是可控制的,實驗所用設備采集的最大圖像像素為2 448×2 040,物體通常在整個圖像上不會超過畫面的1/4。這種情況下,物體原始未處理點云通常不會超過1×106個點,為提高運行效率需要在不影響計算準確度和點云形貌的基礎上進行下采樣,一般可以進行10∶1下采樣,因此本文算法的點云處理規(guī)模通常為105以下。當圖像中出現(xiàn)多物體時,采用多線程技術處理點云可以提高效率,本文算法處理一對圖像的點云時間30 s左右。當采用性能更加優(yōu)秀的計算機并對目標檢測模型進行剪枝、知識蒸餾以及采用更高的下采樣倍率,都將縮減運行時間。 根據(jù)OBB計算方法計算物體a點云的主方向和半長度大小,包圍盒效果圖如圖13所示。 圖13 物體a的OBB效果 點云的長、寬、厚分別為1 139.28、 451.48、120.91 mm。OBB能夠緊密地包裹住點云,較為準確地估計出點云的大小,實現(xiàn)了在鋼鐵回收過程中對廢舊鋼鐵的尺寸評估,提高了鋼鐵回收效率和經(jīng)濟效益。 本文針對鋼鐵回收開放式環(huán)境下雙目視覺點云數(shù)據(jù),分析了場景和點云的幾何、顏色、統(tǒng)計分布等特征信息,提出了一種針對鋼鐵回收開放式場景下的雙目視覺鋼鐵點云分割和尺寸估計算法。首先通過基于Mask R-CNN的實例分割算法進行初步處理,將目標區(qū)域裁剪出來;然后通過掩膜區(qū)域進行自適應HSV空間顏色閾值自適應選取,對裁剪區(qū)域進行三維重建生成點云;再對點云進行顏色濾波和歐式聚類,從而得到完整的目標點云;最后通過OBB對目標點云進行尺寸估計,得到點云的三維信息。 本文以廢舊汽車B柱為實驗目標,模擬回收中面臨的開放式環(huán)境進行對比實驗,實驗結果表明,本文算法對汽車B柱點云的提取效果優(yōu)于其他同類型算法。同時,對于點云邊緣的完整性明顯優(yōu)于其他算法。算法還存在一些不足之處,如目標點云中存在少數(shù)點云的顏色與其他點云顏色不同,則該部分點云會被顏色濾波濾除,導致有一小部分目標點云缺失,點云完整度受到影響,因此進一步的工作是建立更完備的點云提取模型,以提高鋼鐵回收過程中鋼鐵點云的提取精度。1.4 歐式點云聚類
1.5 點云尺寸估計
2 實驗結果與對比分析
2.1 實驗平臺
2.2 實驗結果
2.3 對比分析
3 結 論