高 健,夏利霞
(1.湖北工業大學 機械工程學院,武漢 430068;2.湖北省機電研究設計院,武漢 430068)
近年來,圖像處理技術被廣泛應用于工業生產,以提高生產效率和產品質量。就汽車保險杠生產來說,汽車保險杠型號識別是實現保險杠生產全自動化的關鍵技術。
目前,汽車保險杠識別的研究也愈發深入,何新龍等[1]根據常用汽車保險杠制作材料聚碳酸酯分子結構對稱的特點,拉曼光譜對對稱的有機基團振動敏感的特性,借助于聚類分析法實現了對44種不同保險杠的識別,準確率達94.8%。但此方法對檢測設施、檢測環境要求嚴苛,不適用于工業現場的使用。
畢程[2]通過kinect獲取各保險杠三維點云,以單視角點云的視點特征直方圖V F H(Viewpoint Feature Histogram)特征計算結果訓練主成分分析SVM(Support Vector Machine)分類器,借助于最小歐氏距離的聚類分割方法對待分類點云數據進行分割,使用已訓練的SVM分類器對分割結果的VFH特征進行分類。但該方法需要人工獲取各保險杠全視角點云,再模擬單視角采集,對操作員水品要求較高,后期維護難度大。
Kazuya等[3]使用背景差分法濾除背景,通過背景圖像與包含保險杠圖像的全局平均像素值的差確定二值化閾值,使用最大面積矩形法截取二值化結果區域作為模板,最終通過模板匹配進行型號識別。該方法識別過程簡單,但使用最大面積矩形法使得模板中包含了過多的非保險杠像素點,不僅增加了計算量也降低了識別的正確率。
本文借助OpenCV所包含的算法對一組前后保險杠源圖進行識別,實現方式簡單,后期維護難度小,實施過程如圖1所示。

圖1 試驗過程
其中,在分割階段對比了均值聚類和區域生長兩種分割效果。對聚類分割結果使用了基于類別質心位置的感興趣區域提取方法,對區域生長分割結果使用目標區域的灰度圖疊加方案,這兩種提取方案避免了文獻[3]中的背景信息干擾。
挑選出圖像中保險杠信息可減少計算量,提高處理效率。對圖像通常有閾值法、基于區域或邊緣的分割方法。閾值法可快速實現圖像二值化,其關鍵在于選取合適閾值。全局閾值分割按指定灰度值進行二值化,在合適的閾值下可得到主要輪廓,如圖2(b)所示,但該方法對環境敏感,每幅圖像的合適閾值都有差異,需要在處理過程中動態調節。自適應閾值分割能動態調節閾值,體現保險杠的整體樣貌,如圖2(c)所示,但大量背景信息也被高亮。從保險杠在圖像中呈灰度值變化較小的連續塊狀分布特征來看,采用基于區域的分割方法應該更有效,本文對區域生長和聚類兩種分割方法進行了試驗。

圖2 閾值法分割
區域生長法的分割過程如圖3所示,首先對源圖像灰度化,將灰度圖中灰度值大于235的像素點選為種子點,將種子點以灰度值為255顯示在與灰度圖同等大小的單通道圖中,結果如圖4(a)、圖4(d)所示。使用八方向的區域生長分割法,依次比較源圖中種子點所在位置的灰度值與其相鄰八個方向上各像素點位置灰度值,當差值小于生長條件時,將種子分布圖中該像素點位置所對應的灰度值置為255。當所有像素點遍歷結束或者相對生長結果再無未生長種子時,生長停止,生長結果過程如圖4(b)、圖4(e)所示。根據連通域大小過濾掉孤立的信息,提取最大輪廓進行填充,得到了圖4(d)、圖4(f)所示的處理結果。

圖3 區域生長法分割過程

圖4 區域生長圖像分割結果
聚類是將給定數據劃分為若干簇,均值聚類是基于代表的聚類方法,采用一種貪心的迭代算法找到使平方差和最小的類簇。在圖像處理過程中其實現流程如下:

圖5 聚類分割過程
聚類算法需要手動設定期望的聚類數k,程序會在起始步隨機分配k個像素點作為k個簇類的質心,然后遍歷圖像中的像素點,對每一個點分別計算與各簇的海明距離,距離最小的歸為同一類。當一個類簇加入新的元素后,計算簇內所有元素均值作為新質心。然后根據新的質心去遍歷圖像像素點,一直迭代到指定代數,或者兩次迭代結果的質心在預設精度范圍內,停止聚類計算。本文設定聚類數大小為4,處理結果如圖6所示。

圖6 區域生長圖像分割結果
相比兩種分割算法,無監督學習聚類算法只需在處理前指定類簇數,對分割結果影響小。區域生長算法需指定種子和生長條件,兩者都需要依賴先驗知識且對分割結果影響大。另外,由前保險杠處理結果可知,當孔洞較多時,區域生長法會丟失空洞邊緣細小特征,故均值聚類算法分割圖像魯棒性更強、效率更高。
區域生長分割后保留下來的高亮區域對應源圖像中保險杠分布區域,在源圖像中提取該區域圖像即為感興趣區域(ROI)。圖4為文獻[3]所使用的邊界矩形法,處理結果包含了目標區域但也包含了一部分無用的背景信息。圖5為本文所采取的分割圖與灰度圖作疊加運算的處理結果,這種方法處理過程如下:

圖7 區域生長圖像分割結果

其中,D(i,j)代表分割結果圖中坐標值為(i,j)的像素值,G(i,j)代表灰度圖中坐標值為(i,j)的像素值,M(i,j)代表像素值處理得中間值,P(i,j)代表當前像素點像素值。式(1)將分割圖與灰度圖各像素點灰度值進行加和,再減去255作為像素值計算的中間結果。式(2)對中間結果進行判斷,當中間結果小于或者等于零時,將像素點的灰度值設為0;若大于零,將結果設為當前像素點灰度值。
區域生長從種子開始就限定了保險杠的灰度值為有效灰度值,生長結果直接指示出保險杠分布區域。但在聚類中,所有聚類數據會被保存下來,且類別排序也是隨機的,即不能按保險杠被分為第幾類作為提取依據。
在抓取保險杠圖像時,保險杠特征總是會分布在圖像的正中間部分,且所占據的圖像像素點最多,所以保險杠特征聚類分割結果的簇中心均會穩定的落在圖像的某個區域。為了不在人工干預下,將保險杠特征區域高亮化,本文使用了基于簇中心的提取方法。提取步驟如圖8示。
通過模板的聚類結果返回值可觀察到每類的簇中心分布位置,分別對每類顏色進行高亮顯示,即可得到保險杠類簇中心的分布位置。對待處理圖像,挑選聚類算法返回值center第一列中合乎要求的簇中心值的所在行,即可得到保險杠特征的所屬聚類類別。遍歷圖像中各個像素點,若像素點所屬類別與保險杠類別相同,將該像素點灰度值賦為255,不滿足條件的像素點灰度值賦為0,全部經過一次遍歷后,保險杠特征類即可被凸顯出來,結果如圖6(c)、圖6(f)所示。

圖8 簇中心法提取過程
不同型號保險杠在尾燈、前燈孔的大小和形狀上具有一定的差異,根據先驗知識選取辨識度最好的輪廓作為保險杠特征輪廓,提高識別結果的準確率。由疊加法生成的ROI區域為灰度圖,經過二值化或邊緣檢測后可提取輪廓;由簇中心法生成的ROI區域為二值圖像,可直接進行輪廓提取。輪廓提取函數將所有輪廓將以點向量形式輸出,使用迭代器遍歷輸出數據可計算出輪廓長度,根據包含輪廓的最小矩形可近似出輪廓的面積,通過限定輪廓的周長與面積去除所有非保險杠特征輪廓的其他輪廓。圖9、圖10為輪廓提取結果。
提取不同型號保險杠特征輪廓Hu矩[4],使用模板匹配識別方法,根據匹配值判定分類結果。對于基于HU矩的模板匹配,通常有以下三種計算方法:


圖9 區域生長提取結果

圖10 聚類特征提取結果
從表1匹配結果可以看到,后保險杠圖像使用公式1時,與后模板匹配范圍為0~0.04,與前模板匹配范圍為0.23~0.28;使用式(2)時,與后模板匹配范圍為0~0.46,與前模板匹配范圍為0.69~1.15;使用式(3)時,與后模板匹配范圍為0~0.06,與前模板匹配范圍為0.12~0.14。
從表2匹配結果可以看到,前保險杠圖像使用式(1)時,與后模板匹配范圍為0.14~0.26,與前模板匹配范圍為0~0.28;使用公式2時,與后模板匹配范圍為0.91~1.14,與前模板匹配范圍為0~0.37;使用式(3)時,與后模板匹配范圍為0.16~0.18,與前模板匹配范圍為0~0.07。
根據匹配結果可以總結出,對后保險杠計算模板匹配值時,式(1)對不同模板算出的匹配值距離最大即對不同類別輪廓區分度較大,且相同模板匹配值距離較小即對相同類別輪廓吸納能力較強,效果最好。而式(2)與之相反,效果最差。式(3)對不同模板算出的匹配值距離等于后模板匹配值分布距離,前模板匹配值距離小,可以對型號做出判別,效果居中。
對前保險杠計算模板匹配值時,式(1)對不同模板算出的匹配值出現了重疊,不能對型號做有效區分。式(2)對不同模板有較好區分度,但同模板匹配值距離較大。式(3)表現出對后保險杠計算模板匹配值時的相同效果。
總體上看,式(1)對后保險杠的小輪廓識別能力強,式(2)對前險杠的大輪廓有一定識別能力,式(3)對前、后保險杠都有識別能力,且性能穩定,但對后保輪廓的吸納能力較差。綜合結果選取式(1)作為后保險杠匹配度計算方法,式(3)作為前保險杠匹配度計算方法。
本文首先對比了基于閾值的全局閾值、自適應閾值分割和基于區域的區域生長、均值聚類的圖像分割效果,然后采取疊加法和簇中心法得到比采用最小包圍矩形法更優質的感興趣區域,以輪廓周長和面積篩選區分度大的輪廓作為特征進行形狀匹配,最后根據三種匹配度計算公式的匹配計算結果,選定式(1)作為后保險杠匹配計算公式,式(3)作為前保險杠匹配計算公式。

表1 后保險杠圖像模板匹配結果

表2 前保險杠模板匹配結果
本識別方案充分利用了對保險杠的先驗知識,以提高識別效率,增強識別方案的魯棒性。通過直接對源圖像操作獲取分類結果降低了實施難度、減少了后期維護障礙。但在模板匹配時,使用了七階幾何不變矩,計算量偏大,維數偏高,后續應考慮如何降維,用更少的特征更充分的描述輪廓特性,使用新特征訓練支持向量機或神經網絡,以構建更智能的識別系統。