李 浩,龐愛民,黃 攀,陳家浩,張 熙
(武漢紡織大學 機械工程與自動化學院,湖北 武漢 430070)
目前大批量的服飾繡花主要是用電子提花機加工[1-2],提花龍頭是電子提花機中的關鍵零件之一,由8塊提花面板總成疊加而成。提花面板的裝配工藝較為復雜,提花面板的組成包括動鐵,彈簧,復位鍵,電磁鐵芯,滑輪組合5個零件。雖已實現提花面板的自動裝配,但由于裝配過程中的不確定因素,零件的裝配會出現漏裝錯裝等現象,其中一個零件的裝配出錯將會打亂整個提花面板裝配線節拍,如不及時檢測每個零件的裝配合格性,將無法保證提花面板的裝配良品率。目前的防錯檢測是采用人工檢測,每個裝配工位后都配備一個檢測人員,根據裝配線的節拍劃分,每個零件裝配完成到另一個零件的裝配間隔只有2s,檢測員要在2s內完成對該零件裝配的檢測。檢測環節具有高時效性,高重復性的難點,檢測人員難免會出現錯檢漏檢等現象,因此快速準確的零件裝配檢測十分重要。
機器視覺技術時至今日應用尤為廣泛,不少業內人士都對零件裝配檢測進行相關研究。任永強等[3]設計了一種基于機器視覺的差速器卡簧裝配檢測系統,提出改進的快速檢測圓形輪廓方法,通過判斷卡簧雙耳圓心距離判斷裝配合格與否。李勇[4]設計了一種基于機器視覺的汽車車門鎖拉簧裝配狀態檢測系統,分析對比了基于模板匹配和基于SVM檢測的方法效果,得出基于SVM的檢測準確度更高。侯天龍等[5]設計了一種基于機器視覺的高鐵白車身裝配質量檢測系統,提出根據像素坐標與物理坐標的映射關系實現了車身裝配質量檢測。吳亞渝等[6]設計了油氣懸掛液壓裝配檢測系統,通過機器視覺和壓力傳感器獲取工件狀態信息,實現了其中幾個關鍵工件的檢測。目前國內外少有針對異形零件的裝配檢測相關視覺方案,本文以提花面板的動鐵裝配檢測為例,設計了一種視覺檢測系統,可有效避免人工檢測過度用眼產生的視覺疲勞,長時間做單一重復性工作引發的循環工作乏力期等現象,顯著提高檢測正確率,并可根據裝配線節拍要求柔性調節檢測時間,大大提高自動裝配線的生產效率[7]。
動鐵及提花面板的三維建模如圖1(a),動鐵為異形金屬件,尺寸約為45mm*4mm*3mm,上半部分的兩個凸齒稱為動鐵卡爪,用于固定下一裝配零件彈簧,中間鏤空圓孔部分為裝配孔,用以配合提花面板上的裝配軸完成裝配,下半部分為動鐵卡勾。提花面板為黑色長條狀ABS塑料件,尺寸為310mm*35mm*7mm,其上有各個零件的裝配預留位置,提花面板中間鏤空類矩形框可減輕面板重量。提花面板上的動鐵裝配示意圖如圖1(b),以動鐵卡爪中心點與提花面板類矩形框中心點作為參考點,動鐵裝配合格時,動鐵卡爪朝上方,卡爪中心點與提花面板中類矩形框中心點的距離較近,動鐵倒裝時,動鐵卡爪朝下方,卡爪中心點與提花面板中類矩形框中心點的距離較遠。利用這一實際情況,可通過提取面板中的類矩形框中心坐標與動鐵卡爪中心坐標,計算兩點直線距離判斷動鐵的裝配合格與否。

圖1 動鐵及裝配示意
檢測系統包括機械結構部分和圖像處理兩大部分。涉及的硬件主要包括相機、光源、計算機、光電開關,PLC控制設備以及流水線裝置等,軟件主要包括圖像處理算法和軟件的編寫。
整體機械結構如圖2。因PLC控制系統具有高可靠性、實時性、系統配置簡單、編程易于實現、擴展模塊豐富、通訊方式可選且價格相對低廉等優勢[8],選取西門子S7-2000作為控制系統的核心。光電開關采用M18紅外漫反射NPN型,阻擋裝置、抬升氣缸通過雙控電磁閥由PLC控制啟動和復位,計算機通過以太網與PLC互聯,控制工業相機的圖像采集,PLC根據計算機輸出的檢測合格與否的信號執行預先設定好的相關程序。系統的控制原理如圖3。

圖2 系統的機械結構1光電開關 2抬升氣缸 3工裝板 4提花面板 5支架 6相機與光源 7阻擋裝置 8流水線

圖3 系統控制原理圖
檢測流程如圖4。具體檢測步驟為:1)工裝板在即將進入視覺檢測平臺時觸動流水線上的光電開關,阻擋裝置升起阻止工裝板隨流水線進入下一個裝配工位;2)3s后完全進入視覺檢測平臺,抬升氣缸運行將工裝板抬離流水線;3)工業相機拍照,通過計算機檢測動鐵裝配情況;4)若裝配合格,抬升氣缸復位將工裝板置于流水線上,阻擋氣缸下降放行,工裝板隨流水線進入下一個裝配工位;5)若檢測裝配不合格,則裝配線急停同時發出警報等待工人處理。

圖4 檢測流程
首先,PLC控制相機拍攝待檢測彩色原圖像。其次,計算機對圖像進行預處理,然后提取提花面板類矩形框輪廓,記錄其中心坐標。接著,進行動鐵卡爪的定位,記錄卡爪中心坐標。最后,通過計算兩中心坐標的距離判斷動鐵的漏裝錯裝,如圖5。

圖5 圖像處理流程
作為獲取圖像的直接元器件,若通過相機能得到高質量的圖像,會給后續的圖像處理帶來便利。考慮到被檢測工件以及工廠環境等諸多因素,選取某品牌的CMOS工業相機,工作距離350mm,視野范圍50*80mm,分辨率800*1000,像素130萬,配備50mm的中焦距普通鏡頭。光源配備環形白色二極管,安裝方式為正面明場[9],優勢有:1)環形光源與相機同心安裝,光照均勻;2)白色光可更好突出動鐵表面為銀白色,提花面板為黑色的顏色差異;3)發光二極管功耗低,壽命長,成本小。
經適合的預處理對后續的圖像輪廓提取等有著至關重要的作用。圖像預處理流程如圖6,包括圖像裁剪、灰度化和高斯濾波、二值化以及形態學處理中的開運算。

圖6 圖像預處理流程
首先,因拍攝方式及位置固定,為縮小數據處理量,在保留動鐵與感興趣區域的圖像特征完整性的同時去除非必要的背景區域,將原圖裁剪為630*840的尺寸,然后將彩色圖像轉換為灰度圖。原彩色圖像的RGB三分量亮度基本相同,選取平均值法進行灰度轉換最為合適,公式為:
Gray(i,j)=[R(i,j)+G(i,j)+B(i,j)]/3
(1)
減弱提花面板和動鐵表面加工粗糙度與拍攝環境引起的噪聲,對灰度圖進行濾波去噪處理。作為一種線性平滑濾波,高斯濾波通過高斯函數實現卷積核中間點的像素權重最大,越遠離中間的像素權重越小,從而達到不改變圖像邊緣走向的特點[10]。因此選取高斯濾波進行去噪處理。其中σ為方差,值越小數據越集中,值越大數據越分散。經多次試驗選定窗口為3*3,σ=1.2的高斯核。公式為:
(2)
然后對圖像進行二值化處理,把動鐵和感興趣區域與背景分割,得到像素值只有0或255的二值圖。二值化公式為:

(3)
其中maxval=255,thresh為閾值分割的臨界參數。分割效果的好壞取決于thersh參數的取值,通過圖像的灰度直方圖獲得像素分布情況以為選擇合適的二值化算法。如圖7,直方圖為雙峰,迭代法最為合適[11]。

圖7 灰度直方圖
二值圖中存在影響邊緣提取質量的毛刺和孔洞,經過開運算處理可以去除大部分毛刺和孔洞。開運算是先腐蝕再膨脹,通過腐蝕消除毛刺和小區域,通過膨脹連接邊緣。公式為:

(4)
其中I為前景,K為內部元素只有0和1的二維數組構成的結構元。分別取核為3、5、7的結構元對二值圖進行開運算,經效果對比,最終選定核為7的結構元,處理結果如圖8(d)。圖像的預處理流程如圖8所示。

圖8 預處理過程圖
常用的邊緣檢測算子有Prewitt、Sobel-Feldman、Scharr、Laplacian、Canny等[12]。其中Canny有低錯誤率、高定位性、檢測到邊緣與實際偏差較小的優勢被廣泛應用,其運用高斯函數的性質,不丟失重要邊緣,將邊緣檢測問題轉換為求解函數極大值的問題。
Canny算子先通過高斯核G(i,j)對圖像f(i,j)做卷積,結果輸出為H(i,j)。公式為:
(5)
H(i,j)=f(i,j)G(i,j)
(6)
再用一階偏導的有限差分方向導數,計算梯度大小和方向,公式為:
(7)
(8)
利用非極大值抑制,只有局部最大值保留為邊緣。最后根據設定的大小兩個閾值,高于大閾值的為確定的邊緣,低于小閾值的不是邊緣。以圖8(d)作為圖像f(i,j)進行Canny算子處理,結果如圖9(a)所示。
根據圖9(a)的結果來看,傳統的canny算子進行輪廓提取時,將提取圖像中所有連通區域的輪廓,而我們的目的是只保留提花面板的類矩形輪廓。通過以下步驟可去除其他輪廓:1)去除開運算后仍存在的一些小孔洞的輪廓。通過設定提取輪廓面積的最小閾值[13],在提取所有輪廓后將小于設定輪廓面積閾值的部分剔除。2)去除動鐵輪廓。通過矩形度來識別動鐵輪廓和提花面板類矩形框輪廓,矩形度是輪廓的最小外接矩形面積和輪廓面積的比值[14],因提花面板的類矩形框的形狀非常接近矩形,矩形度較大,通過OpenCV中的函數可以很方便地計算兩輪廓的矩形度,只保留矩形度較大的輪廓即提花面板的類矩形輪廓。最終結果如圖9(b),并記錄其中心坐標Q(i,j)。

圖9 輪廓提取
異形零件RIO的提取和匹配是圖像處理的難點,目前主流的算法首先都要人工確定零件RIO區域,但有些異形零件人工難以確定最優RIO區域,提出通過Harris對零件上的角點進行檢測,以零件上各部分區域的角點分布密度確定最優RIO區域,再用Hu矩進行RIO的提取匹配,以異形件動鐵為例,算法應有較高的穩定性和準確性。
Harris角點檢測[15]是在圖像中設置窗口,在圖像上遍歷,通過窗口內的像素值變化判斷是否為角點。如圖10,1號窗口朝水平垂直兩個方向移動時像素值都不變,判斷該窗口區域為內部區域,2號窗口朝水平方向移動,窗口內的像素值發生改變,當窗口朝垂直邊緣移動,像素值幾乎不改變,判斷窗口包含垂直邊緣。3號窗口朝任何方向移動,窗口內的像素值都會發生改變,判斷窗口內存在角點。

圖10 灰度變化窗口
構造相關函數,w(i,j)表示窗口函數,向量[u,v]表示在某方向及該方向上的位移,I(i,j)表示強度,I(i+u,j+v)表示偏移強度,E[u,v]表示窗口平移[u,v]產生的灰度變化,即下式:
(9)
根據泰勒展開式:

轉換為矩陣形式得到式:

(10)
令:
(11)
將式11代入式9可得:

(12)
由式11可知M為一個2*2對稱矩陣,它的兩個特征向量為λ1λ2,λ1λ2的本質為橢圓曲率參數,它們的大小表征了改變向量[u,v]時,E(u,v)改變的幅值。λ1λ2都很大,向量[u,v]在任何方向發生改變,E(u,v)都會發生較大幅值變化,對應角點;λ1λ2一大一小,向量[u,v]在某方向發生改變,E(u,v)才會發生較大幅值變化,對應邊緣;λ1λ2都很小,向量[u,v]在任何方向發生改變,E(u,v)都不會發生較大幅值變化,對應內部區域。
利用λ1λ2設定閾值,根據CRF響應函數:
R=detM-k(traceM)2
(13)
其中detM=λ1*λ2為矩陣M的行列式,K是經驗取值范圍為0.04~0.06[16],TraceM=λ1+λ2為矩陣M的跡。圖10為二值圖,取K=0.05,經多次試驗選定閾值R=1000,當R>10000,對應角點;當R<-10000,對應邊緣;當-10000≤R≤10000,對應內部區域。
上一部分已經完成了對圖像中所有輪廓的識別,首先填充除動鐵輪廓外的所有其他輪廓,結果如圖所示11(a)所示。Harris角點檢測提取圖11(a)中的角點,用“·”表示出來,結果如圖11(b)所示,可知動鐵的外輪廓上角點的分布情況,其中動鐵中間部分裝配孔上存在大量角點,角點分布太密集,不適合作為RIO區域,其他部分幾乎沒有角點分布,只有動鐵卡爪跟動鐵卡勾部分的角點密度適中,具有較好的動鐵特征,作為動鐵RIO區域最為合適。根據動鐵外輪廓尺寸,設置一個大小為60*65的窗口,遍歷圖像,計算窗口中存在的角點密度,將密度符合的窗口都保存下來。部分結果如圖11(c)所示。

圖11 動鐵RIO的選取
Hu幾何矩表征圖像的幾何區域特征,應用于圖像的特征提取、匹配和識別,具有平移、旋轉、縮放、鏡像不變性,簡稱為Hu矩[17-18]。
在圖11(a)中截取窗口大小為60*65的包含動鐵RIO特征的圖像,如圖12(a)所示,若該圖像表示為:A=f(i,j),其二維(p+q)階空間矩為:
(14)
具有平移不變性的中心矩為:
(15)
具有縮放不變性的標準中心矩為:
(16)
由以上公式可推導出Hu矩:

計算圖11(c)中每個待選框中輪廓的Hu矩B1,B2…Bn,與A進行匹配,進行差異度計算,公式為:
(17)


圖12 動鐵RIO的提取
對以上改進算法與直接人工選取RIO進行提取匹配的兩種方案分別進行實驗500次,實驗結果:改進算法的平均用時為213ms,正確率為100%;人工選取RIO方案平均用時為250ms,正確率為91%。結果證明提出的算法具有較高的穩定性、準確性。
通過兩點間距離公式計算Q,Z兩坐標的距離:
(18)
動鐵裝配合格時Q,Z兩中心點距離較小,根據實際情況取距離D的范圍為275—295,在此范圍內的距離均視為裝配合格。
Jupyter是交互性、數據可視化出眾的Python代碼編輯器[19],以Python作為編程語言,結合Open CV視覺庫通過Jupyter環境編寫代碼開發視覺檢測軟件[20]。封裝Python代碼,打包成exe格式win系統可執行文件,軟件參數設定界面與裝配檢測界面如圖13、14所示。工人可以根據實際情況對函數參數進行調整,查看或者刪除檢測結果。界面清爽,操作簡單方便易上手。

圖13 參數設定
將視覺檢測平臺與裝配線結合,運行裝配線和檢測平臺,實驗檢測系統的準確性和穩定性,部分記錄數據如表1所示。多次進行實驗,分析數據可知檢測正確率達99.7%,且用時符合在線檢測標準。分析檢測失敗的數據,總結出以下干擾因素:

表1 部分實驗數據

圖14 檢測結果
(a)裝配流水線運行穩定性;
(b)外界光線和噪聲等環境影響;
(c)動鐵與提花面板表面加工粗糙度;
(d)阻擋裝置與抬升氣缸定位精度與穩定性;
(e)光源與相機位置精度的穩定性;
(f)光源與工業相機的老化。
基于提花面板裝配線上動鐵防錯的人工檢測現狀,設計了針對該工位的視覺檢測系統。對采集的圖像進行預處理,通過Canny算子提取提花面板上的類矩形框及其中心坐標,通過Harris角點與Hu矩結合改進的算法獲取動鐵卡爪中心坐標,計算兩中心坐標的距離判斷動鐵是否倒裝,選用Python作為編程語言,結合Open CV圖像處理庫開發檢測軟件,實驗證明系統的正確率達99.7%。相較于人工檢測,提高了裝配線的自動化程度和生產效率,減小了企業成本。目前系統已投入裝配線實際應用,且性能可靠。