熊興旺,劉忠山,孫 田
(1.中汽研新能源汽車檢驗中心(天津)有限公司,天津 300300;2.中汽科技(北京)有限公司,北京 100176)
試驗園區(qū)內(nèi)進行汽車及零部件檢測試驗前后,使用人工叉車運送貨物時,若貨物外包裝體積較大,會造成叉車司機前方視野的盲區(qū),存在安全隱患。為消除隱患,提升運送效率,嘗試對叉車進行智能化改造,推進智慧園區(qū)建設。針對運送試驗樣品或設備進入試驗間這一應用場景,嘗試利用機器視覺技術,對試驗間入口進行檢測識別,用于輔助人工駕駛叉車或集成開發(fā)自動引導車(Automated Guided Vehicle, AGV)。
研究人員對自動駕駛車輛車道線檢測識別和AGV物品檢測識別算法開展了豐富的研究。典型的目標物體檢測識別算法流程包括圖像預處理、邊緣檢測、特定形狀檢測等,最后聯(lián)系實際應用場景構(gòu)造合理優(yōu)化方法,實現(xiàn)目標物體的檢測識別。本文借鑒上述算法流程,基于OpenCV庫和Python開發(fā)環(huán)境,實現(xiàn)了園區(qū)內(nèi)試驗間入口檢測識別功能。
叉車車載攝像頭布置在叉車頂架最高處,方便從高點拍攝全局照片,圖像通過數(shù)據(jù)線傳輸至駕駛員視野右前方。拍攝的試驗間入口圖像,包含試驗間外側(cè)墻壁、路面及部分試驗間內(nèi)設備物料等干擾項。原始圖像用于試驗間入口識別之前,需預先進行預處理,本文所涉及的預處理主要為圖像灰度化和二值化處理。
首先把原始圖像轉(zhuǎn)換為灰度圖像,便于圖像處理,降低后續(xù)算法復雜度。采用加權(quán)平均法,將圖像RGB三通道分量分別乘以不同的權(quán)重之后再相加,如式(1)所示。
式中,為某像素點的灰度值;為該像素點的紅色分量值;為該像素點的綠色分量值;為該像素點的藍色分量值。
原始圖像和灰度化處理后的圖像分別如圖1和圖2所示。
為增強背景和目標檢測物體的對比效果,使用閾值法將原始圖像進行二值化,便于后續(xù)進行邊緣檢測。設定閾值為60,對于像素值大于60的像素點,將其設置為255;對于像素值小于60的像素點,將其設置為0。二值化處理后的圖像如圖3所示。
邊緣檢測可以更好地表達圖像的基本特征,它主要根據(jù)灰度值發(fā)生明顯變化的臨界點,反映圖像屬性特征的信號,分割出目標物體與背景物體。邊緣信息的提取可以很好地保留圖像的信息,并去除無用的干擾信息。經(jīng)典的邊緣檢測算法有Canny 算法、Roberts 算法和Sobel 算法等。Canny算法抗干擾能力強,邊緣檢測后的圖像邊緣連續(xù)性好。Canny算法需要四步實現(xiàn):
(1)首先需要用高斯濾波器對待處理的圖像進行平滑濾波;
(2)計算圖像中每個像素點的梯度大小和方向;
(3)對圖像進行非極大值抑制,通過梯度方向和大小找到像素局部最大位置,在不是極大值處對應的數(shù)置零;
(4)設置雙閾值,用低閾值和高閾值分別對經(jīng)過非極大值抑制的圖像進行處理,將梯度低于閾值的像素點置為0,由此將圖像的邊緣提取出來。結(jié)合兩個閾值處理后的圖像,最后輸出邊緣檢測后的完整二值圖像。
本文采用Canny邊緣檢測算法,設定合理閾值,對二值化處理后的圖像進行邊緣檢測。圖4所示為經(jīng)過Canny邊緣檢測處理后的圖像。
試驗間入口在圖像中表現(xiàn)為直線形式。得到邊緣檢測處理后的圖像后,需要對圖像進行直線檢測,以區(qū)分圖像中的目標檢測物體直線部分和背景干擾項。
霍夫變換是用于圖像直線特征提取的經(jīng)典算法。其原理是將直線從直角坐標系空間轉(zhuǎn)換到極坐標系空間。直角坐標系中通過某個點(,)的一條直線,在極坐標系中表現(xiàn)形式為某個點(,);直角坐標系中通過點(,)的所有直線,在極坐標系中為表現(xiàn)形式為一條曲線。直角坐標系中在同一條直線上的多個點經(jīng)過極坐標系變換形成的多條曲線都在極坐標系中相交于一點,越多條曲線交于這一點,表示在直角坐標系中這個點對應的直線由更多的點組成,當交于某一點的曲線數(shù)量超過了某個閾值,則認為該點在直角坐標系中為一條直線。本文調(diào)用OpenCV庫中函數(shù)實現(xiàn)Hough直線檢測,rho參數(shù)取1,theta參數(shù)取1°,參數(shù)threshod取5,參數(shù)minLineLength 取60,參數(shù)maxLineGap取0,通過Hough直線檢測處理后的圖像如圖5所示。
將圖5經(jīng)過Hough直線檢測后的圖像中試驗間入口目標直線用虛線標識出來,如圖6所示。從圖6中可以看到試驗間入口目標直線有如下特點:
(1)試驗間入口目標直線分別位于圖像中線的兩側(cè),可以考慮以圖像中線為界,分左右兩側(cè)對入口目標直線進行檢測識別;
(2)試驗間入口目標直線與檢測到的其他直線相比,長度相對較長;
(3)試驗間入口目標直線斜率絕對值較大(或趨近于+∞)。
針對上述三項特點,設置直線斜率和直線長度閾值條件,對Hough直線檢測后的圖像進行線條篩選優(yōu)化,篩選出目標直線,篩選優(yōu)化后的圖像分別如圖7和圖8所示。
對圖7和圖8優(yōu)化處理后,針對所有直線的端點的坐標(,),以為橫坐標,為縱坐標,進行最小二乘法線性擬合,并將擬合后的直線進行適當延長,畫線進行表征。對試驗間入口進行檢測識別的最終結(jié)果如圖9所示。
本文借鑒車道線識別及物體檢測算法,類比提出了園區(qū)內(nèi)試驗間入口檢測識別的算法流程,在此基礎上基于OpenCV庫和Python開發(fā)環(huán)境,利用提出的算法成功檢測識別出了試驗間入口,對后續(xù)開發(fā)智能叉車輔助系統(tǒng)有一定的工程意義。