熊興旺,劉忠山,孫 田
(1.中汽研新能源汽車檢驗中心(天津)有限公司,天津 300300;2.中汽科技(北京)有限公司,北京 100176)
試驗園區內進行汽車及零部件檢測試驗前后,使用人工叉車運送貨物時,若貨物外包裝體積較大,會造成叉車司機前方視野的盲區,存在安全隱患。為消除隱患,提升運送效率,嘗試對叉車進行智能化改造,推進智慧園區建設。針對運送試驗樣品或設備進入試驗間這一應用場景,嘗試利用機器視覺技術,對試驗間入口進行檢測識別,用于輔助人工駕駛叉車或集成開發自動引導車(Automated Guided Vehicle, AGV)。
研究人員對自動駕駛車輛車道線檢測識別和AGV物品檢測識別算法開展了豐富的研究。典型的目標物體檢測識別算法流程包括圖像預處理、邊緣檢測、特定形狀檢測等,最后聯系實際應用場景構造合理優化方法,實現目標物體的檢測識別。本文借鑒上述算法流程,基于OpenCV庫和Python開發環境,實現了園區內試驗間入口檢測識別功能。
叉車車載攝像頭布置在叉車頂架最高處,方便從高點拍攝全局照片,圖像通過數據線傳輸至駕駛員視野右前方。拍攝的試驗間入口圖像,包含試驗間外側墻壁、路面及部分試驗間內設備物料等干擾項。原始圖像用于試驗間入口識別之前,需預先進行預處理,本文所涉及的預處理主要為圖像灰度化和二值化處理。
首先把原始圖像轉換為灰度圖像,便于圖像處理,降低后續算法復雜度。采用加權平均法,將圖像RGB三通道分量分別乘以不同的權重之后再相加,如式(1)所示。

式中,為某像素點的灰度值;為該像素點的紅色分量值;為該像素點的綠色分量值;為該像素點的藍色分量值。
原始圖像和灰度化處理后的圖像分別如圖1和圖2所示。


為增強背景和目標檢測物體的對比效果,使用閾值法將原始圖像進行二值化,便于后續進行邊緣檢測。設定閾值為60,對于像素值大于60的像素點,將其設置為255;對于像素值小于60的像素點,將其設置為0。二值化處理后的圖像如圖3所示。

邊緣檢測可以更好地表達圖像的基本特征,它主要根據灰度值發生明顯變化的臨界點,反映圖像屬性特征的信號,分割出目標物體與背景物體。邊緣信息的提取可以很好地保留圖像的信息,并去除無用的干擾信息。經典的邊緣檢測算法有Canny 算法、Roberts 算法和Sobel 算法等。Canny算法抗干擾能力強,邊緣檢測后的圖像邊緣連續性好。Canny算法需要四步實現:
(1)首先需要用高斯濾波器對待處理的圖像進行平滑濾波;
(2)計算圖像中每個像素點的梯度大小和方向;
(3)對圖像進行非極大值抑制,通過梯度方向和大小找到像素局部最大位置,在不是極大值處對應的數置零;
(4)設置雙閾值,用低閾值和高閾值分別對經過非極大值抑制的圖像進行處理,將梯度低于閾值的像素點置為0,由此將圖像的邊緣提取出來。結合兩個閾值處理后的圖像,最后輸出邊緣檢測后的完整二值圖像。
本文采用Canny邊緣檢測算法,設定合理閾值,對二值化處理后的圖像進行邊緣檢測。圖4所示為經過Canny邊緣檢測處理后的圖像。

試驗間入口在圖像中表現為直線形式。得到邊緣檢測處理后的圖像后,需要對圖像進行直線檢測,以區分圖像中的目標檢測物體直線部分和背景干擾項。
霍夫變換是用于圖像直線特征提取的經典算法。其原理是將直線從直角坐標系空間轉換到極坐標系空間。直角坐標系中通過某個點(,)的一條直線,在極坐標系中表現形式為某個點(,);直角坐標系中通過點(,)的所有直線,在極坐標系中為表現形式為一條曲線。直角坐標系中在同一條直線上的多個點經過極坐標系變換形成的多條曲線都在極坐標系中相交于一點,越多條曲線交于這一點,表示在直角坐標系中這個點對應的直線由更多的點組成,當交于某一點的曲線數量超過了某個閾值,則認為該點在直角坐標系中為一條直線。本文調用OpenCV庫中函數實現Hough直線檢測,rho參數取1,theta參數取1°,參數threshod取5,參數minLineLength 取60,參數maxLineGap取0,通過Hough直線檢測處理后的圖像如圖5所示。

將圖5經過Hough直線檢測后的圖像中試驗間入口目標直線用虛線標識出來,如圖6所示。從圖6中可以看到試驗間入口目標直線有如下特點:

(1)試驗間入口目標直線分別位于圖像中線的兩側,可以考慮以圖像中線為界,分左右兩側對入口目標直線進行檢測識別;
(2)試驗間入口目標直線與檢測到的其他直線相比,長度相對較長;
(3)試驗間入口目標直線斜率絕對值較大(或趨近于+∞)。
針對上述三項特點,設置直線斜率和直線長度閾值條件,對Hough直線檢測后的圖像進行線條篩選優化,篩選出目標直線,篩選優化后的圖像分別如圖7和圖8所示。


對圖7和圖8優化處理后,針對所有直線的端點的坐標(,),以為橫坐標,為縱坐標,進行最小二乘法線性擬合,并將擬合后的直線進行適當延長,畫線進行表征。對試驗間入口進行檢測識別的最終結果如圖9所示。

本文借鑒車道線識別及物體檢測算法,類比提出了園區內試驗間入口檢測識別的算法流程,在此基礎上基于OpenCV庫和Python開發環境,利用提出的算法成功檢測識別出了試驗間入口,對后續開發智能叉車輔助系統有一定的工程意義。