侯占林,趙 京
(北京工業(yè)大學(xué) 機械工程與應(yīng)用電子技術(shù)學(xué)院,北京 100124)
當前機電一體化生產(chǎn)線的自動化程度逐步提高,人工檢測難以滿足穩(wěn)定性和實時性需求,而機器視覺檢測技術(shù)具有非接觸、速度快、精度合適、現(xiàn)場抗干擾能力強等突出的優(yōu)點[1],適合在多數(shù)環(huán)境中替代人工檢測,以高效完成自動化檢測?,F(xiàn)在機器視覺已廣泛用于各生產(chǎn)線上,如電子元件缺陷檢測[2]、農(nóng)產(chǎn)品檢測[3]、工業(yè)產(chǎn)品缺陷檢測[4]和參數(shù)測量[5]。
中小型生產(chǎn)線對機器視覺檢測系統(tǒng)同樣有很大需求,其中大部分零件產(chǎn)品僅根據(jù)外形特征即可判斷出存在何種缺陷,而且這類生產(chǎn)線由于自身成本、工業(yè)環(huán)境、工人知識水平等原因,需要機器視覺系統(tǒng)在穩(wěn)定運行和實時檢測的基礎(chǔ)上,有更低的價格、簡單的安裝配置方式、較好的抗工業(yè)環(huán)境干擾能力(例如震動、重復(fù)定位誤差、光干擾等)。為大幅降低機器視覺硬件成本,必須使用價格很低的通用相機和嵌入式設(shè)備。通用相機圖像質(zhì)量相對較差,嵌入式設(shè)備的CPU主頻較低,所以圖像處理算法需要有更強的抗圖像噪聲能力和更少的計算量,同時需要能適應(yīng)零件位置的小幅度偏移。此條件下,傳統(tǒng)零件外形缺陷檢測方法有一定局限。模板匹配算法[6-7]計算量大,適用于零件定位準確、搜索范圍較小的場合。而一般生產(chǎn)線重復(fù)定位精度較低,需要擴大搜索范圍,大量計算在低主頻的嵌入式CPU上運行需要時間長。基于機器學(xué)習(xí)[8-9]和神經(jīng)網(wǎng)絡(luò)[10-11]的分類算法功能強大,但需要配置的參數(shù)較多,樣本訓(xùn)練時對工人知識水平要求較高。
本文針對零件外形缺陷檢測,提出基于統(tǒng)計圖特征的零件分類方式,首先使用兩次動態(tài)提取零件區(qū)域的定位方法,然后依據(jù)零件外形生成幾種統(tǒng)計圖,針對特定零件檢測需求,得到多個特征的數(shù)值化描述。最后,使用級聯(lián)分類器在每一級使用一個特征做分類,確定零件是否存在缺陷。檢測分類算法將分別從動態(tài)提取和基于統(tǒng)計圖分類兩部分介紹,隨后將通過實驗驗證算法的性能。
零件外形缺陷檢測適合使用背光照明的方式,以提高零件外輪廓和背景的對比度,相機圖像如圖1所示,白色光源上的零件為汽車拉線生產(chǎn)線“打花”工序后的零件。圖中高亮白色部分除了大面積的背光光源,還有少量自然光,以及生產(chǎn)線金屬機構(gòu)表面的反光。本節(jié)將介紹動態(tài)提取零件區(qū)域的方法,分兩個步驟,先提取背光照明區(qū)域,再提取零件區(qū)域。此方法的優(yōu)點是能在相機相對零件有小幅相對位置變化時,準確提取零件區(qū)域。對工業(yè)生產(chǎn)環(huán)境下的檢測系統(tǒng)而言有三點好處:①降低了相機安裝精度要求;②減少生產(chǎn)線震動對檢測的影響;③消除零件夾持器重復(fù)定位誤差對零件分類的干擾。
圖1 背光照明零件圖像
首先使用高斯濾波對原始相機圖像預(yù)處理,然后轉(zhuǎn)為灰度圖像,接著采用最大類間方差(OTSU[16])二值化方法計算閾值并將圖像轉(zhuǎn)為黑白圖像。以圖1為例,其經(jīng)過二值化的結(jié)果如圖2所示,背光區(qū)域為大面積白色,周圍的金屬反光或自然光反映為分散的小面積白色。所以需提取面積最大的前景區(qū)域即可,分3個步驟完成。第1步找到每個白色區(qū)域的輪廓;第2步求每個輪廓的面積并找到其中面積最大的一個;第3步計算該輪廓的最小包圍矩形。最后求得的矩形區(qū)域即為背光區(qū)域。
圖2 二值化零件圖像
背光區(qū)域的大小通常會遠大于零件分類特征所在區(qū)域的大小,提取其全部區(qū)域?qū)⒃黾雍罄m(xù)提取和分類過程中無意義的計算量。所以依據(jù)零件自身體積,由用戶在配置階段設(shè)置提取區(qū)域的寬度和高度參數(shù),在動態(tài)提取到的背光區(qū)域上剪裁這一部分,傳入后續(xù)計算過程。以圖1“打花”零件為例,由于傘狀的花頭為特征所在區(qū)域,所以提取如圖3所示的背光區(qū)域足以滿足后續(xù)分類過程??紤]到重復(fù)生產(chǎn)線定位誤差等原因,零件位置相對相機有偏移,故背光區(qū)域不宜過小,以保證零件特征區(qū)域被完整保留。
圖3 提取出的背光區(qū)域
接下來將從背光照明區(qū)域提取零件,這一步仍需采用動態(tài)提取的方式。首先,再次使用OTSU[16]二值化方法,同時反轉(zhuǎn)前景和背景色,得到二值圖像,其中零件呈白色,而背光光源呈黑色。
在生產(chǎn)線長時間工作后,光源上可能存在分散的雜質(zhì)(如金屬碎屑),二值圖上呈現(xiàn)分散的白色區(qū)域。所以采用與上一小節(jié)提取背光區(qū)域類似的步驟,先提取二值圖中各白色區(qū)域的輪廓,然后求每個輪廓面積并找到最大的輪廓,最后計算該輪廓的最小包圍矩形區(qū)域,即動態(tài)得到了零件區(qū)域。如圖4所示。
圖4 零件最小包圍區(qū)域
從上一步得到的零件區(qū)域生成幾種統(tǒng)計圖,從中易于得到區(qū)分度高的外形特征,常用的外形特征能通過統(tǒng)計圖高效數(shù)值化,如寬度、厚度、分散度、偏轉(zhuǎn)程度等。該算法僅在生成統(tǒng)計圖時掃描圖像,故計算量相對較小,適合CPU運算能力較低的平臺使用,以保證實時性。另一個優(yōu)點是配置過程簡單,生成分類標準時,通過現(xiàn)場采集幾次合格零件的圖像,以相同流程生成統(tǒng)計圖,然后生成各特征的數(shù)值表示,即可得到標準參數(shù)。本節(jié)將介紹三種統(tǒng)計圖,以及配合使用的級聯(lián)分類器。
針對“寬度”、“高度”、“厚度”等外形特征,“按列統(tǒng)計像素和”生成的統(tǒng)計圖,能得到有明顯區(qū)分度的特征。按列統(tǒng)計意為遍歷二值圖像的列,求每一列中前景色的數(shù)量作為該行的統(tǒng)計值,生成過程如式(1)、式(2)所示:
s= [s1,s2, ...,sn]
(1)
(2)
式中,s為按列統(tǒng)計的“像素和”矢量,n為零件區(qū)域高度,f(i,j)為二值圖像函數(shù),值取1時為零件區(qū)域,值取0時為背景區(qū)域。
以“打花”零件為例說明特征提取和缺陷判別過程,正常零件的樣本如圖5所示,不合格形式為“寬度不足”的零件樣本如圖6所示,兩者的“像素和”統(tǒng)計圖對比如圖7所示。
圖5 正常的打花零件
圖6 “寬度不足”的打花零件
圖7 兩零件像素和統(tǒng)計圖對比
正常零件加工結(jié)果呈現(xiàn)傘狀,統(tǒng)計圖有單個波峰,且高度明顯高出鋼絲繩部分。而寬度不足的零件圖中單個波峰的高度明顯不足。所以零件“花頭寬度”是否存在缺陷,可以通過“像素和統(tǒng)計圖”中單波峰高度得到數(shù)值化的體現(xiàn)。圖中“花頭寬度”合格零件值為27,缺陷零件值為21,例如將標準寬度設(shè)為了24,檢測時小于該寬度的零件視為存在“花頭寬度不足”缺陷。該標準寬度在配置時生成,軟件采集標準的合格零件,生成統(tǒng)計圖,再乘權(quán)重值后計算得到。如標準零件“花頭寬度”為27,用戶要求達到它的90%可視為合格,得到標準參數(shù)為24。
金鉆明就讀的高中——洋涇高級中學(xué)也非常注重對學(xué)生綜合素質(zhì)和學(xué)習(xí)興趣的培養(yǎng)。當時,浦東新區(qū)物理教研室組織安排了跨校的物理輔導(dǎo)班,這個輔導(dǎo)班選用新區(qū)的物理“尖子老師”來給學(xué)生授課,并且不以考試、競賽為目的,只是為了培養(yǎng)學(xué)生的興趣、開拓視野。因此很多學(xué)生都喜歡這個輔導(dǎo)班,金鉆明也是受惠者之一。至今讓金鉆明難忘的是他參加過的一個激光興趣班,在那里,他參與了激光全息照相,粗略地知道了信息如何能立體地存儲下來。在初步感受到激光魅力的同時也埋下了科學(xué)的種子,他最終如愿收到了上海大學(xué)電子信息科學(xué)與技術(shù)專業(yè)的錄取通知書。
當生產(chǎn)線震動較大時,相機和零件的距離變化將干擾計算得到的數(shù)值,此時可將零件非加工位置作為基準,計算寬度的相對比例,以減少相機相對位置變化對檢測的影響。在上例中,鋼絲繩為非加工位置,寬度為常量,所以可依據(jù)“花頭寬度”和鋼絲繩寬度的比例為判別是否存在“花頭寬度不足”缺陷的標準。
針對零件外形的“分散度”檢測標準,按列統(tǒng)計“跳動數(shù)”并生成統(tǒng)計圖,可得到有明顯區(qū)分度的分類特征?!疤鴦訑?shù)”意為二值圖像中黑白階躍的數(shù)目,但考慮到相機成像質(zhì)量的問題,當有噪聲時,對該統(tǒng)計有明顯干擾,所以統(tǒng)計時,利用零件外形連續(xù)的特性,當某一位置發(fā)現(xiàn)跳動時,考察相鄰區(qū)域內(nèi)是否同時有跳動,若有則此跳動記為有效,若沒有則不計入。跳動統(tǒng)計圖生成過程如公式(3)、式(4)所示:
s=[s1,s2, ...,sn-1]
(3)
(4)
式中,s為跳動統(tǒng)計向量,n為零件區(qū)域高度,f(i,j)為二值圖像函數(shù),值取1時為零件區(qū)域,值取0時為背景區(qū)域,σ為考察相鄰區(qū)域的大小,一般取2或3。
以“打花”零件為例,圖5所示為合格零件,圖8為存在“散絲”缺陷的零件,圖9為兩零件的跳動統(tǒng)計圖對比。
合格零件的跳動數(shù)在整個區(qū)域上都很小且平穩(wěn),而散絲零件紋理雜亂,反映在統(tǒng)計圖上為大量鋸齒,且每個波峰的高度較高。所以通過統(tǒng)計跳動數(shù)目,可得到分散度的數(shù)值描述。此處僅依據(jù)單個波峰判定缺陷時穩(wěn)定性不足,故統(tǒng)計跳動數(shù)量大于閾值的列,列數(shù)量多于標準參數(shù)時視為散絲零件,即用整體趨勢作為分類標準,提高算法克服干擾的能力。例如閾值設(shè)為3,標準列數(shù)設(shè)為5。合格零件跳動數(shù)大于3的列數(shù)為0,小于標準列數(shù),判定為合格;散絲零件跳動數(shù)大于3的列數(shù)為23,大于標準列數(shù),判定為存在“散絲”缺陷。該標準的生成過程與2.1小節(jié)類似,由配置時軟件采集標準零件的參數(shù),乘一定權(quán)重得到,這里不再贅述。
圖8 “散絲”的打花零件
圖9 兩零件跳動統(tǒng)計圖對比
大多數(shù)零件加工工序進行前,要檢測零件偏轉(zhuǎn)程度是否在可加工范圍內(nèi),“偏轉(zhuǎn)程度”也是常用的外形特征,針對軸對稱的零件,該特征可使用“列中心位置統(tǒng)計圖”得到數(shù)值化的描述。零件的上邊界和下邊界的中心,定義為這一列的中心點,首先根據(jù)每個中心點的縱向位置生成統(tǒng)計圖,然后通過計算方差反映中心點的離散程度,得到零件偏轉(zhuǎn)程度的數(shù)值描述特征。最后將該數(shù)值與標準參數(shù)值比較,判別出此零件是否存在偏轉(zhuǎn)程度過大的缺陷。列中心點統(tǒng)計圖計算過程如式(5)、式(6)所示:
m=[m1,m2, ... ,mn]
(5)
(6)
式中,m表示中心位置向量,n表示圖像列數(shù),hmax為第i列最大面積區(qū)域的邊界點向量,其中兩元素分別是上邊界和下邊界的縱坐標。
以“打花”零件為例,如圖5所示為正常零件,圖10為偏轉(zhuǎn)程度過大的零件,圖11為兩零件列中心位置統(tǒng)計圖,正常零件中心點位置平穩(wěn)集中,偏轉(zhuǎn)程度過大的零件中心點位置趨勢陡峭、離散程度大。缺陷零件計算得到的方差數(shù)值為27.593,遠大于正常零件的方差數(shù)值2.477。用于分類的標準參數(shù)值的生成過程與2.1小節(jié)類似,由配置時軟件采集標準零件生成其方差值,乘一定權(quán)重得到。
圖10 “定位偏轉(zhuǎn)”的打花零件
圖11 兩零件列中心位置統(tǒng)計圖對比
多數(shù)情況下,被檢測零件要同時滿足多個條件才視為合格,所以按級聯(lián)分類器的思路,每一級使用一個特征檢驗其是否滿足條件,串聯(lián)各級分類器,根據(jù)各級的檢測結(jié)果得到不同缺陷形式,以供生產(chǎn)線分揀存放,全部通過的視為合格品。級聯(lián)分類器的示意圖如圖12所示。
圖12 級聯(lián)分類示意圖
本文的實驗驗證部分將使用“打花”和“壓鑄”零件,它們是汽車拉線生產(chǎn)線兩道工序的產(chǎn)品。實驗數(shù)據(jù)和圖片來自已部署在該生產(chǎn)線的機器視覺檢測系統(tǒng),嵌入式硬件為樹莓派3B,其CPU頻率1.2GHz,內(nèi)存1GB,操作系統(tǒng)為Raspbian Jessie,相機型號銳爾威視USBFHD01M,背光光源為普通白光源,這些硬件是常見的通用設(shè)備,價格很低,以驗證算法的穩(wěn)定性、實時性和抗干擾能力。此檢測系統(tǒng)使用MySQL數(shù)據(jù)庫記錄每次檢測結(jié)果,方便用戶查看生產(chǎn)線運行情況,3.1小節(jié)和3.2小節(jié)表格中的統(tǒng)計數(shù)據(jù)來自數(shù)據(jù)庫的記錄。
為了方便理解表格1中的“打花”檢測結(jié)果統(tǒng)計數(shù)據(jù),首先圖示“打花”零件加工工序結(jié)果形式,它的合格形式和5種缺陷形式如圖13所示。
(a) 合格零件 (b) 寬度不足零件 (c) 散絲零件
(d) 厚度不足零件 (e) 花頭傾斜零件 (f) 偏轉(zhuǎn)程度過大零件 圖13 打花合格零件和各缺陷形式
生產(chǎn)線運行的一段時間內(nèi)的打花檢測結(jié)果統(tǒng)計表如表1所示。其中“合格”即為檢測通過的零件,第2行至第4行的三種缺陷形式,對應(yīng)第2節(jié)分類算法中的缺陷形式?!盎^厚度不足”和“花頭傾斜”這兩種缺陷的特征描述也是通過“像素和”統(tǒng)計圖計算得到,類似于“花頭寬度不足”,故沒有在算法介紹中贅述。而“未找到零件”是由于生產(chǎn)線發(fā)出檢測信號時,零件加持裝置異常,并沒有零件放在背光光源上,第1節(jié)介紹的零件區(qū)域提取算法直接反饋該結(jié)果,不再調(diào)用分類算法。
表1 打花檢測結(jié)果統(tǒng)計表
運行這一段時間內(nèi),視覺系統(tǒng)能將“打花”缺陷零件全部檢測出來,但同時存在約1%的虛警率(即合格零件被判定為有缺陷的零件),這和配置階段設(shè)置的權(quán)重有關(guān),權(quán)重接近1時標準參數(shù)會更靠近標準零件生成的參數(shù),稍差的零件將無法通過這樣嚴格的條件。生產(chǎn)環(huán)境中一定的虛警率是可接受的,可以根據(jù)實際應(yīng)用對象調(diào)整權(quán)重值。其檢測時間約300ms,能滿足該生產(chǎn)線的檢測實時性需求。
首先圖示“壓鑄”加工工序的結(jié)果形式,以方便理解表格2中的檢測結(jié)果統(tǒng)計數(shù)據(jù)。合格的零件結(jié)果和4種缺陷形式如圖14所示。
生產(chǎn)線運行一段時間內(nèi)的“壓鑄”零件檢測結(jié)果如表2所示,其中“合格”即檢測通過的零件,各缺陷形式對應(yīng)圖示。其檢測算法類似于“打花”零件,首先動態(tài)提取零件區(qū)域,然后生成幾種統(tǒng)計圖,計算特征的數(shù)值描述,最后通過級聯(lián)分類器得到零件檢測結(jié)果。
(a) 合格零件 (b) 壓鑄頭寬度不足零件
(c) 壓鑄頭寬度不足零件 (d) 散絲零件
(e) 鋼絲繩損傷零件 圖14 壓鑄合格零件和各缺陷形式
檢測結(jié)果數(shù)量所占比例合格236387.454%壓鑄頭寬度不足572.110%散絲1435.292%鋼絲繩損傷1395.144%
這段時間內(nèi)系統(tǒng)能將全部“壓鑄”缺陷零件檢測出來,但也存在約2%的虛警率,略高于“打花”零件,其原因與3.1小節(jié)敘述的“打花”檢測中的原因相同,實際生產(chǎn)環(huán)境中該數(shù)值在可接受范圍內(nèi)。其檢測時間約380ms,能滿足該生產(chǎn)線的檢測實時性要求。
在系統(tǒng)參數(shù)配置階段,可通過軟件采集合格零件的圖像,生成分類使用的標準參數(shù),以降低配置復(fù)雜度。以“打花”零件為例,其參數(shù)有花頭寬度、厚度等14個,配置時直接通過表格在軟件上列出當前零件的相關(guān)信息,其中多數(shù)參數(shù)較為直觀,用戶可根據(jù)經(jīng)驗做調(diào)整。與生產(chǎn)線定位精度相關(guān)的參數(shù),例如打花零件的“定位偏轉(zhuǎn)”檢測,生產(chǎn)線的4個零件夾持器位置不完全重合,可多次采集,覆蓋定位時多個可能的情況,計算標準參數(shù)值時,將綜合這幾次零件的參數(shù)生成,增強分類算法的穩(wěn)定性。采集次數(shù)可針對特定應(yīng)用場景增減。
針對零件外形缺陷檢測,文章提出的算法有較好的穩(wěn)定性、較少的計算量和較強的抗干擾能力。其中,兩次動態(tài)提取零件區(qū)域的算法在工業(yè)環(huán)境存在光干擾,以及生產(chǎn)線重復(fù)定位精度較低的情況下,能正常提取零件。與其它分類算法相比,統(tǒng)計圖分類算法計算量較小、抗圖像噪聲能力較強,易于在低成本的通用嵌入式設(shè)備上保證檢測的實時性和穩(wěn)定性。其配置操作相對簡單,分類使用的標準參數(shù)可自動生成,方便現(xiàn)場使用和調(diào)整。