盧海林,馮其波,,徐昌源
(1 北京交通大學發光與光信息教育部重點實驗室,北京 100044;2 東莞市諾麗電子科技有限公司,廣東 東莞 523050)
隨著我國鐵路事業的進步,對于列車的運行速度和承載安全性也越來越受到重視,其關鍵部件的故障檢測也因此變得極為重要。列車在長時間運行過程中,由于碰撞、老化等問題,列車底部中心鞘螺栓部位會出現表面裂紋、磨耗、松動、缺失等故障[1],容易引發重大交通事故。對于車底關鍵部件的檢測,車輛需要停放在檢修段,列檢工作人員現場進行逐一檢修,工作強度大,同時在檢修過程中由于人為因素可能出現漏檢,形成安全隱患。為此,國內外學者開展自動檢測故障和算法等方面的研究,張洪?。?]對貨車螺栓丟失故障圖像進行了識別檢測算法的研究,首先應用CDLBP算子提取故障圖像在不同尺度和方向下的Gabor響應圖像的紋理特征,然后對每個通道分別進行SVM分類識別獲得判別結果。路繩方[3]結合螺栓幾何結構的特點,提出了一種基于圖像Sobel梯度邊緣的完備局部二進制模型特征提取算法,結合二值分類器的訓練與學習,完成螺栓丟失故障的自動檢測。李萍、王剛和汪洋等[4-6]利用深度學習中的目標檢測框架,采用大量的列車故障圖像數據訓練模型,實現了列車關鍵零部件圖像故障視覺檢測。但是由于二維圖像本身的局限性,即不包含深度信息,所以以上方法只能通過螺栓數目的判定來識別螺栓缺失,不能對螺栓松動程度進行判斷。目前針對2D圖像的識別技術已經趨向成熟,與2D圖像相比,3D點云攜帶了更多的空間信息,且受光照、尺度和空間位置等因素的影響小。因此基于點云處理的檢測技術,克服了2D圖像測量中存在的無法獲得深度信息的不足,可以獲得更全面的三維物體的幾何參數。
文中重點研究了列車中心鞘螺栓部位的結構信息,利用三維點云的處理方法,提出了一種檢測螺栓松動和缺失的算法。試驗結果表明,算法檢測正確率高,檢測速度快,可應用于列車底部中央牽引拉桿中心鞘螺栓部位故障檢測。
檢測系統如圖1所示,車底成像系統主要由智能巡檢機器人攜帶的2個成像組件構成,相機采用高亮度激光補光,保證高質量成像穩定性。在實際拍攝的過程中,機器人在車底行走拍攝,對機車關鍵部進行動態測量。3D成像組件的相機視場角為33°,采集的二維圖像的分辨率為1 280×960像素,景深范圍為300~800 mm,它不僅可以采集二維圖像,還能夠有效地捕捉目標的深度信息,可以直接得到檢測目標相對于傳感器的三維坐標。傳感器在不同的工作距離下有不同的精度,工作距離為500 mm時,精度可達0.06 mm。對一個關鍵部件的圖像獲取時間不超過0.2 s,可以滿足實時檢測的需求。

圖1 測量系統示意圖
支持向量機(Support Vector Machine,SVM)是一種基于監督學習對數據分類的方法,其原理是通過映射算法將線性不可分樣本變換為高維特征空間;然后尋找一個線性最大間隔超平面進行數據樣本分離[7]。而方向梯度直方圖(Histogram of Oriented Gradient,HOG)特征[8]是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述子。它通過計算和統計圖像局部區域的梯度方向直方圖來構成特征。利用HOG-SVM進行中心鞘螺栓缺失檢測,第一部分是數據準備階段,需要制作螺栓在不同光照,不同尺度和角度下的正樣本集和負樣本集,根據螺栓的特點,制作了64×64 pixel的螺栓圖像的正樣本1 000張,負樣本1 500張,部分樣本如圖2所示。第二部分是特征提取和訓練階段,對螺栓數據進行HOG特征提取,提取方法是首先把圖像分割為若干個像素的單元,把梯度方向平均劃分為9個區間,在每個像素單元里面對所有像素的梯度方向在各個方向區間進行直方圖統計,得到一個9維的特征向量,每相鄰的4個單元構成1個塊,把1個塊內的特征向量合并為36維的特征向量,用塊對正負樣本圖像進行掃描,掃描步長為1個像素單元。最后將所有塊的特征連起來,就得到圖像HOG特征。將特征送入SVM分類器進行模型訓練,其中未識別和識別錯誤的螺栓圖像作為負樣本輸入負樣本集,進行再次訓練,直到達到檢測預期效果。最后根據識別出的螺栓數量來判斷是否存在螺栓缺失,檢測流程如圖3所示。根據每張圖像上螺栓數量來判斷螺栓是否存在缺失情況,螺栓識別結果如圖4所示。

圖2 部分中心鞘螺栓正負樣本圖像

圖3 SVM模型訓練流程圖

圖4 中心鞘螺栓圖像識別結果
3.1.1 點云拓撲結構的建立
K維樹(KD-tree)是一種組織K維數據的結構,可以對傳感器采集的無序空間三維坐標進行拓撲結構的建立,方便點云數據的區間搜索和最近鄰搜索。利用KD-tree對傳感器采集的中心鞘螺栓點云進行數據結構的建立,如圖5所示。此外點云密度,即點云最近鄰點之間的平均距離,是影響算法參數設置的重要點云屬性。對中心鞘螺栓點云遍歷每一個點,搜索其最近鄰點,然后計算兩點之間的歐式距離。求出所有點的最近鄰點距離之和除以點云大小即點云密度。

圖5 KD樹結構
3.1.2 點云下采樣
由于傳感器采集的原始點云十分稠密,運算過程中十分耗時,需要采取下采樣的方法對點云進行精簡:通過輸入的點云數據創建一個三維體素柵格,然后在每個體素內用體素中所有點的重心來近似代替體素中其他點,對于所有體素處理得到過濾后的點云。體素柵格葉大小根據點云密度確定,設體素柵格葉大小/點云密度=R,下采樣前點云大小為395 605,不同R大小對應的點云采樣情況見表1:R值越大,采樣的柵格葉越大,點云采樣越稀疏。

表1 不同R值對應的下采樣結果
3.1.3 移除離群點
傳感器在采集螺栓點云的過程中,除了測量隨機誤差產生的噪聲點之外,由于受到外界干擾如視線遮擋,障礙物等因素的影響,點云數據中存在著一些離中央牽引拉桿中心鞘螺栓較遠的離散點,即離群點。采用統計濾波的方法可以有效地移除這種離群點,算法步驟如下:
Step1:首先對點云數據構建KD-tree,建立三維點之間的拓撲關系。
當主機發送回需求道路信息的具體內容時,本系統將自動接收并更新到地圖中去,無需用戶操作。圖5為車載系統接收到主機發送的農機手需求信息后,自動顯示在地圖中。其中,黑點圓點依然表示農機手當前所在位置,綠色方框即為新增信息,表示農機手需求信息的最近一處的位置。
Step2:對KD-tree中的每個三維點搜索離其K個最近鄰點組成K鄰域,計算鄰域內的點到中心點的歐式距離d。
Step3:計算每個點對應的K個最近鄰點的平均歐式距離dˉ,并計算所有點的K鄰域距離的標準差σ,為式(1):

Step4:利用計算得到的鄰域內每個點到鄰域內其他點的平均距離及標準差設置閾值ε,通過每個點對應k近鄰點的平均距離與設置閾值ε=dˉ±λσ作比較,若大于設定的閾值,即被認定為離群點,需要移除;相反,則是正常螺栓點,需要保留。經過移除離群點,點云去除了絕大部分的噪聲數據見表2。處理后的點云圖像如圖6所示,其中圖6(a)是傳感器采集的中心鞘螺栓圖像,圖6(b)是采集的初始稠密點云,圖6(c)是對點云進行下采樣的結果,圖6(d)是移除離群點后的螺栓點云。

表2 不同的濾波方法的降噪情況

圖6 中心鞘螺栓點云預處理
3.2.1 螺栓點云聚類分割
點云分割是根據空間、幾何和紋理等特征進行劃分,使得同一劃分內的點云擁有相似的特征,分割后形成的點云目標可用于目標識別,語義理解,曲面重建,3D內容檢索等[10]。根據螺栓點云特點,文中采用歐式聚類分割對濾波后的點云進行分割,根據歐幾里得算法[11]對點云進行如下操作:
(1)找到空間中某點p,在KD-tree中找到最近的n個點,判斷這n個點到p點距離。將距離小于閾值r的 點p12,p13,p14的 點 放在類Q里。
(2)在Qp里找到一點p12,重復(1)。
(3)在Qpp12里找到一點,重復(1),找p22,p23,p24…全部放進Q里。
(4)當Q再也不能有新點加入了,則完成了搜索。
3.2.2 螺栓目標定位和松動計算
根據點云特點,對聚類結果根據最小包圍盒[12]和空間位置進行目標定位。中央牽引拉桿中心鞘螺栓的基準面是中心圓面,螺栓平面是最上方的4個尺寸大小相同的點云平面。算法流程如下:
設輸入點云為C,點云最小包圍盒為Box,基準平面點云為Pbase,螺栓平面點云集合為PSet_target,基準平面點云包圍盒體積為Pbase,螺栓點云包圍盒體積為Vtarget,包圍盒體積閾值為Vthreshold,包圍盒形狀閾值為Rthreshold,點云的聚類數為k。
(1)對于每一個聚類C(i)(i=1,2,3,…,k),計算點云包圍盒Box(i)的體積V(ibox)和包圍盒形狀數R=w/h(其中w是包圍盒的寬,h是包圍盒的高)。若R(i)滿足|R(i)-1|<Rthreshold并且|V(ibox)-Vbase|<Vthreshold;則 令Pbase=C(i),若|V(ibox)-Vtarget|<Vthreshold,則把C(i)放入PSet_target。
(2)設目標點云集合PSet_target里面含有點云數為m(m≥4)。對于里面第n(n≤m)個點云計算平均Z坐標的值Zmean,并且得到前4個最小平均Z坐標Zi(i=0,1,2,3),然后計算這4個最小Z坐標的最大 值Zmin_max,若|Zmean(n)-Zmin_max|<0。則 把 點 云PSet_target(n)從目標點云集合PSet_target里面刪除。
(3)若PSet_target里面點云數小于4,則說明存在螺栓缺失。若PSet_target里面點云數等于4,進一步對基準點云Pbase和目標點云集合PSet_target里面的每一個點云分別進行基于RANSAC算法的平面擬合[13],然后計算螺栓平面到基準面的距離H。根據比較H與標準Hnormal距離,可以判斷螺栓是否松動,并且求出松動的距離,點云處理流程如圖7所示。

圖7 螺栓點云聚類分割和平面擬合處理結果
數據來自智能巡檢機器人采集的車底中心鞘螺栓的二維圖像和三維點云,工控機配置參數:CPU為i7,內 存 為64 GB,硬 盤 為3 TB,顯 卡 為2×Nvidia-TITAN。采集了中央牽引拉桿中心鞘螺栓二維圖像和三維點云各200張,分別利用訓練好的SVM模型和點云處理算法進行螺栓故障的檢測。
(1)對采集的200張中心鞘螺栓圖像進行識別,無缺失螺栓圖像194張,單張圖像點的檢測時間約為0.76 s,滿足巡檢機器人實時檢測的標準,但是漏檢6張,即6張圖像中存在螺栓但是未檢測出,識別準確度受光照、尺度、螺栓表面灰塵的影響較大,需要人工把錯誤樣本送入負樣本庫進一步訓練模型。檢測結果見表3。

表3 SVM中心稍螺栓圖像識別結果
(2)對采集的200張3D圖像進行測試,采用3D點云的檢測方法,每張圖像的平均處理時間1.32 s,與二維圖像相比,不僅可以檢測出螺栓的缺失,更可以檢測出螺栓的松動情況,不存在漏檢的情況,進一步地排除安全隱患。部分檢測結果見表4:在表4中,編號為2的螺栓4,編號為4的螺栓4,編號為7的螺栓2高度值與設定的高度閾值35 mm有較大差異,可以認為是松動的螺栓,其他螺栓為正常螺栓。實際測量了部分螺栓高度與算法得出的計算值進行了比較。選取了中心鞘螺栓中的4個螺栓之一與實際測量值的比較,與實際測量值誤差約0.1 mm,滿足了檢測系統精度的要求,如圖8所示。地鐵中心鞘螺栓采用的螺栓型號為M36×110,其螺距為4 mm,傳統工人檢測可通過檢測防松標記進行判斷,要到達0.06 mm精度要求,需要對線精度約為5°,最關鍵的是人工檢測效率極低,容易發生漏報和誤報現象?;诙S圖像檢測方法,由于光照不均勻、螺栓表面臟污等因素的影響,造成識別困難,無法測量得到松動高度;即使圖像清晰,通過檢測防松標記的轉動角,要獲得0.1 mm的螺栓松動也是比較困難的。采用三維點云的處理方法可以避免這些缺點,準確檢測出螺栓的松動情況,確保列車安全運行。

圖8 中心鞘螺栓中螺栓1的實際測量高度和理論計算高度對比

表4 部分中心鞘螺栓點云平面與基準平面的距離
針對機車車輛車底中心鞘螺栓松動和缺失的這一常見故障,提出了一種基于三維點云處理的檢測算法。對于螺栓三維點云,通過聚類后的點云包圍盒形狀系數和縱向Z坐標實現了螺栓點云的定位,提高了定位準確率,并采用RANSAC平面擬合算法計算出了螺栓的松動情況。螺栓檢測采用三維點云的處理方法,克服了傳統的圖像分析只能判斷螺栓缺失故障的不足。避免了中心鞘螺栓“帶傷”工作,極大地提高了列車運行的安全性。文中算法在地鐵車輛智能巡檢機器人中進行了應用,現場試驗表明:算法準確度高,運行速度快,滿足了實時檢測的要求。