李 浩,龐愛民,黃 攀,陳家浩,張 熙
(武漢紡織大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,湖北 武漢 430070)
目前大批量的服飾繡花主要是用電子提花機(jī)加工[1-2],提花龍頭是電子提花機(jī)中的關(guān)鍵零件之一,由8塊提花面板總成疊加而成。提花面板的裝配工藝較為復(fù)雜,提花面板的組成包括動(dòng)鐵,彈簧,復(fù)位鍵,電磁鐵芯,滑輪組合5個(gè)零件。雖已實(shí)現(xiàn)提花面板的自動(dòng)裝配,但由于裝配過程中的不確定因素,零件的裝配會出現(xiàn)漏裝錯(cuò)裝等現(xiàn)象,其中一個(gè)零件的裝配出錯(cuò)將會打亂整個(gè)提花面板裝配線節(jié)拍,如不及時(shí)檢測每個(gè)零件的裝配合格性,將無法保證提花面板的裝配良品率。目前的防錯(cuò)檢測是采用人工檢測,每個(gè)裝配工位后都配備一個(gè)檢測人員,根據(jù)裝配線的節(jié)拍劃分,每個(gè)零件裝配完成到另一個(gè)零件的裝配間隔只有2s,檢測員要在2s內(nèi)完成對該零件裝配的檢測。檢測環(huán)節(jié)具有高時(shí)效性,高重復(fù)性的難點(diǎn),檢測人員難免會出現(xiàn)錯(cuò)檢漏檢等現(xiàn)象,因此快速準(zhǔn)確的零件裝配檢測十分重要。
機(jī)器視覺技術(shù)時(shí)至今日應(yīng)用尤為廣泛,不少業(yè)內(nèi)人士都對零件裝配檢測進(jìn)行相關(guān)研究。任永強(qiáng)等[3]設(shè)計(jì)了一種基于機(jī)器視覺的差速器卡簧裝配檢測系統(tǒng),提出改進(jìn)的快速檢測圓形輪廓方法,通過判斷卡簧雙耳圓心距離判斷裝配合格與否。李勇[4]設(shè)計(jì)了一種基于機(jī)器視覺的汽車車門鎖拉簧裝配狀態(tài)檢測系統(tǒng),分析對比了基于模板匹配和基于SVM檢測的方法效果,得出基于SVM的檢測準(zhǔn)確度更高。侯天龍等[5]設(shè)計(jì)了一種基于機(jī)器視覺的高鐵白車身裝配質(zhì)量檢測系統(tǒng),提出根據(jù)像素坐標(biāo)與物理坐標(biāo)的映射關(guān)系實(shí)現(xiàn)了車身裝配質(zhì)量檢測。吳亞渝等[6]設(shè)計(jì)了油氣懸掛液壓裝配檢測系統(tǒng),通過機(jī)器視覺和壓力傳感器獲取工件狀態(tài)信息,實(shí)現(xiàn)了其中幾個(gè)關(guān)鍵工件的檢測。目前國內(nèi)外少有針對異形零件的裝配檢測相關(guān)視覺方案,本文以提花面板的動(dòng)鐵裝配檢測為例,設(shè)計(jì)了一種視覺檢測系統(tǒng),可有效避免人工檢測過度用眼產(chǎn)生的視覺疲勞,長時(shí)間做單一重復(fù)性工作引發(fā)的循環(huán)工作乏力期等現(xiàn)象,顯著提高檢測正確率,并可根據(jù)裝配線節(jié)拍要求柔性調(diào)節(jié)檢測時(shí)間,大大提高自動(dòng)裝配線的生產(chǎn)效率[7]。
動(dòng)鐵及提花面板的三維建模如圖1(a),動(dòng)鐵為異形金屬件,尺寸約為45mm*4mm*3mm,上半部分的兩個(gè)凸齒稱為動(dòng)鐵卡爪,用于固定下一裝配零件彈簧,中間鏤空圓孔部分為裝配孔,用以配合提花面板上的裝配軸完成裝配,下半部分為動(dòng)鐵卡勾。提花面板為黑色長條狀A(yù)BS塑料件,尺寸為310mm*35mm*7mm,其上有各個(gè)零件的裝配預(yù)留位置,提花面板中間鏤空類矩形框可減輕面板重量。提花面板上的動(dòng)鐵裝配示意圖如圖1(b),以動(dòng)鐵卡爪中心點(diǎn)與提花面板類矩形框中心點(diǎn)作為參考點(diǎn),動(dòng)鐵裝配合格時(shí),動(dòng)鐵卡爪朝上方,卡爪中心點(diǎn)與提花面板中類矩形框中心點(diǎn)的距離較近,動(dòng)鐵倒裝時(shí),動(dòng)鐵卡爪朝下方,卡爪中心點(diǎn)與提花面板中類矩形框中心點(diǎn)的距離較遠(yuǎn)。利用這一實(shí)際情況,可通過提取面板中的類矩形框中心坐標(biāo)與動(dòng)鐵卡爪中心坐標(biāo),計(jì)算兩點(diǎn)直線距離判斷動(dòng)鐵的裝配合格與否。
圖1 動(dòng)鐵及裝配示意
檢測系統(tǒng)包括機(jī)械結(jié)構(gòu)部分和圖像處理兩大部分。涉及的硬件主要包括相機(jī)、光源、計(jì)算機(jī)、光電開關(guān),PLC控制設(shè)備以及流水線裝置等,軟件主要包括圖像處理算法和軟件的編寫。
整體機(jī)械結(jié)構(gòu)如圖2。因PLC控制系統(tǒng)具有高可靠性、實(shí)時(shí)性、系統(tǒng)配置簡單、編程易于實(shí)現(xiàn)、擴(kuò)展模塊豐富、通訊方式可選且價(jià)格相對低廉等優(yōu)勢[8],選取西門子S7-2000作為控制系統(tǒng)的核心。光電開關(guān)采用M18紅外漫反射NPN型,阻擋裝置、抬升氣缸通過雙控電磁閥由PLC控制啟動(dòng)和復(fù)位,計(jì)算機(jī)通過以太網(wǎng)與PLC互聯(lián),控制工業(yè)相機(jī)的圖像采集,PLC根據(jù)計(jì)算機(jī)輸出的檢測合格與否的信號執(zhí)行預(yù)先設(shè)定好的相關(guān)程序。系統(tǒng)的控制原理如圖3。
圖2 系統(tǒng)的機(jī)械結(jié)構(gòu)1光電開關(guān) 2抬升氣缸 3工裝板 4提花面板 5支架 6相機(jī)與光源 7阻擋裝置 8流水線
圖3 系統(tǒng)控制原理圖
檢測流程如圖4。具體檢測步驟為:1)工裝板在即將進(jìn)入視覺檢測平臺時(shí)觸動(dòng)流水線上的光電開關(guān),阻擋裝置升起阻止工裝板隨流水線進(jìn)入下一個(gè)裝配工位;2)3s后完全進(jìn)入視覺檢測平臺,抬升氣缸運(yùn)行將工裝板抬離流水線;3)工業(yè)相機(jī)拍照,通過計(jì)算機(jī)檢測動(dòng)鐵裝配情況;4)若裝配合格,抬升氣缸復(fù)位將工裝板置于流水線上,阻擋氣缸下降放行,工裝板隨流水線進(jìn)入下一個(gè)裝配工位;5)若檢測裝配不合格,則裝配線急停同時(shí)發(fā)出警報(bào)等待工人處理。
圖4 檢測流程
首先,PLC控制相機(jī)拍攝待檢測彩色原圖像。其次,計(jì)算機(jī)對圖像進(jìn)行預(yù)處理,然后提取提花面板類矩形框輪廓,記錄其中心坐標(biāo)。接著,進(jìn)行動(dòng)鐵卡爪的定位,記錄卡爪中心坐標(biāo)。最后,通過計(jì)算兩中心坐標(biāo)的距離判斷動(dòng)鐵的漏裝錯(cuò)裝,如圖5。
圖5 圖像處理流程
作為獲取圖像的直接元器件,若通過相機(jī)能得到高質(zhì)量的圖像,會給后續(xù)的圖像處理帶來便利??紤]到被檢測工件以及工廠環(huán)境等諸多因素,選取某品牌的CMOS工業(yè)相機(jī),工作距離350mm,視野范圍50*80mm,分辨率800*1000,像素130萬,配備50mm的中焦距普通鏡頭。光源配備環(huán)形白色二極管,安裝方式為正面明場[9],優(yōu)勢有:1)環(huán)形光源與相機(jī)同心安裝,光照均勻;2)白色光可更好突出動(dòng)鐵表面為銀白色,提花面板為黑色的顏色差異;3)發(fā)光二極管功耗低,壽命長,成本小。
經(jīng)適合的預(yù)處理對后續(xù)的圖像輪廓提取等有著至關(guān)重要的作用。圖像預(yù)處理流程如圖6,包括圖像裁剪、灰度化和高斯濾波、二值化以及形態(tài)學(xué)處理中的開運(yùn)算。
圖6 圖像預(yù)處理流程
首先,因拍攝方式及位置固定,為縮小數(shù)據(jù)處理量,在保留動(dòng)鐵與感興趣區(qū)域的圖像特征完整性的同時(shí)去除非必要的背景區(qū)域,將原圖裁剪為630*840的尺寸,然后將彩色圖像轉(zhuǎn)換為灰度圖。原彩色圖像的RGB三分量亮度基本相同,選取平均值法進(jìn)行灰度轉(zhuǎn)換最為合適,公式為:
Gray(i,j)=[R(i,j)+G(i,j)+B(i,j)]/3
(1)
減弱提花面板和動(dòng)鐵表面加工粗糙度與拍攝環(huán)境引起的噪聲,對灰度圖進(jìn)行濾波去噪處理。作為一種線性平滑濾波,高斯濾波通過高斯函數(shù)實(shí)現(xiàn)卷積核中間點(diǎn)的像素權(quán)重最大,越遠(yuǎn)離中間的像素權(quán)重越小,從而達(dá)到不改變圖像邊緣走向的特點(diǎn)[10]。因此選取高斯濾波進(jìn)行去噪處理。其中σ為方差,值越小數(shù)據(jù)越集中,值越大數(shù)據(jù)越分散。經(jīng)多次試驗(yàn)選定窗口為3*3,σ=1.2的高斯核。公式為:
(2)
然后對圖像進(jìn)行二值化處理,把動(dòng)鐵和感興趣區(qū)域與背景分割,得到像素值只有0或255的二值圖。二值化公式為:
(3)
其中maxval=255,thresh為閾值分割的臨界參數(shù)。分割效果的好壞取決于thersh參數(shù)的取值,通過圖像的灰度直方圖獲得像素分布情況以為選擇合適的二值化算法。如圖7,直方圖為雙峰,迭代法最為合適[11]。
圖7 灰度直方圖
二值圖中存在影響邊緣提取質(zhì)量的毛刺和孔洞,經(jīng)過開運(yùn)算處理可以去除大部分毛刺和孔洞。開運(yùn)算是先腐蝕再膨脹,通過腐蝕消除毛刺和小區(qū)域,通過膨脹連接邊緣。公式為:
(4)
其中I為前景,K為內(nèi)部元素只有0和1的二維數(shù)組構(gòu)成的結(jié)構(gòu)元。分別取核為3、5、7的結(jié)構(gòu)元對二值圖進(jìn)行開運(yùn)算,經(jīng)效果對比,最終選定核為7的結(jié)構(gòu)元,處理結(jié)果如圖8(d)。圖像的預(yù)處理流程如圖8所示。
圖8 預(yù)處理過程圖
常用的邊緣檢測算子有Prewitt、Sobel-Feldman、Scharr、Laplacian、Canny等[12]。其中Canny有低錯(cuò)誤率、高定位性、檢測到邊緣與實(shí)際偏差較小的優(yōu)勢被廣泛應(yīng)用,其運(yùn)用高斯函數(shù)的性質(zhì),不丟失重要邊緣,將邊緣檢測問題轉(zhuǎn)換為求解函數(shù)極大值的問題。
Canny算子先通過高斯核G(i,j)對圖像f(i,j)做卷積,結(jié)果輸出為H(i,j)。公式為:
(5)
H(i,j)=f(i,j)G(i,j)
(6)
再用一階偏導(dǎo)的有限差分方向?qū)?shù),計(jì)算梯度大小和方向,公式為:
(7)
(8)
利用非極大值抑制,只有局部最大值保留為邊緣。最后根據(jù)設(shè)定的大小兩個(gè)閾值,高于大閾值的為確定的邊緣,低于小閾值的不是邊緣。以圖8(d)作為圖像f(i,j)進(jìn)行Canny算子處理,結(jié)果如圖9(a)所示。
根據(jù)圖9(a)的結(jié)果來看,傳統(tǒng)的canny算子進(jìn)行輪廓提取時(shí),將提取圖像中所有連通區(qū)域的輪廓,而我們的目的是只保留提花面板的類矩形輪廓。通過以下步驟可去除其他輪廓:1)去除開運(yùn)算后仍存在的一些小孔洞的輪廓。通過設(shè)定提取輪廓面積的最小閾值[13],在提取所有輪廓后將小于設(shè)定輪廓面積閾值的部分剔除。2)去除動(dòng)鐵輪廓。通過矩形度來識別動(dòng)鐵輪廓和提花面板類矩形框輪廓,矩形度是輪廓的最小外接矩形面積和輪廓面積的比值[14],因提花面板的類矩形框的形狀非常接近矩形,矩形度較大,通過OpenCV中的函數(shù)可以很方便地計(jì)算兩輪廓的矩形度,只保留矩形度較大的輪廓即提花面板的類矩形輪廓。最終結(jié)果如圖9(b),并記錄其中心坐標(biāo)Q(i,j)。
圖9 輪廓提取
異形零件RIO的提取和匹配是圖像處理的難點(diǎn),目前主流的算法首先都要人工確定零件RIO區(qū)域,但有些異形零件人工難以確定最優(yōu)RIO區(qū)域,提出通過Harris對零件上的角點(diǎn)進(jìn)行檢測,以零件上各部分區(qū)域的角點(diǎn)分布密度確定最優(yōu)RIO區(qū)域,再用Hu矩進(jìn)行RIO的提取匹配,以異形件動(dòng)鐵為例,算法應(yīng)有較高的穩(wěn)定性和準(zhǔn)確性。
Harris角點(diǎn)檢測[15]是在圖像中設(shè)置窗口,在圖像上遍歷,通過窗口內(nèi)的像素值變化判斷是否為角點(diǎn)。如圖10,1號窗口朝水平垂直兩個(gè)方向移動(dòng)時(shí)像素值都不變,判斷該窗口區(qū)域?yàn)閮?nèi)部區(qū)域,2號窗口朝水平方向移動(dòng),窗口內(nèi)的像素值發(fā)生改變,當(dāng)窗口朝垂直邊緣移動(dòng),像素值幾乎不改變,判斷窗口包含垂直邊緣。3號窗口朝任何方向移動(dòng),窗口內(nèi)的像素值都會發(fā)生改變,判斷窗口內(nèi)存在角點(diǎn)。
圖10 灰度變化窗口
構(gòu)造相關(guān)函數(shù),w(i,j)表示窗口函數(shù),向量[u,v]表示在某方向及該方向上的位移,I(i,j)表示強(qiáng)度,I(i+u,j+v)表示偏移強(qiáng)度,E[u,v]表示窗口平移[u,v]產(chǎn)生的灰度變化,即下式:
(9)
根據(jù)泰勒展開式:
轉(zhuǎn)換為矩陣形式得到式:
(10)
令:
(11)
將式11代入式9可得:
(12)
由式11可知M為一個(gè)2*2對稱矩陣,它的兩個(gè)特征向量為λ1λ2,λ1λ2的本質(zhì)為橢圓曲率參數(shù),它們的大小表征了改變向量[u,v]時(shí),E(u,v)改變的幅值。λ1λ2都很大,向量[u,v]在任何方向發(fā)生改變,E(u,v)都會發(fā)生較大幅值變化,對應(yīng)角點(diǎn);λ1λ2一大一小,向量[u,v]在某方向發(fā)生改變,E(u,v)才會發(fā)生較大幅值變化,對應(yīng)邊緣;λ1λ2都很小,向量[u,v]在任何方向發(fā)生改變,E(u,v)都不會發(fā)生較大幅值變化,對應(yīng)內(nèi)部區(qū)域。
利用λ1λ2設(shè)定閾值,根據(jù)CRF響應(yīng)函數(shù):
R=detM-k(traceM)2
(13)
其中detM=λ1*λ2為矩陣M的行列式,K是經(jīng)驗(yàn)取值范圍為0.04~0.06[16],TraceM=λ1+λ2為矩陣M的跡。圖10為二值圖,取K=0.05,經(jīng)多次試驗(yàn)選定閾值R=1000,當(dāng)R>10000,對應(yīng)角點(diǎn);當(dāng)R<-10000,對應(yīng)邊緣;當(dāng)-10000≤R≤10000,對應(yīng)內(nèi)部區(qū)域。
上一部分已經(jīng)完成了對圖像中所有輪廓的識別,首先填充除動(dòng)鐵輪廓外的所有其他輪廓,結(jié)果如圖所示11(a)所示。Harris角點(diǎn)檢測提取圖11(a)中的角點(diǎn),用“·”表示出來,結(jié)果如圖11(b)所示,可知?jiǎng)予F的外輪廓上角點(diǎn)的分布情況,其中動(dòng)鐵中間部分裝配孔上存在大量角點(diǎn),角點(diǎn)分布太密集,不適合作為RIO區(qū)域,其他部分幾乎沒有角點(diǎn)分布,只有動(dòng)鐵卡爪跟動(dòng)鐵卡勾部分的角點(diǎn)密度適中,具有較好的動(dòng)鐵特征,作為動(dòng)鐵RIO區(qū)域最為合適。根據(jù)動(dòng)鐵外輪廓尺寸,設(shè)置一個(gè)大小為60*65的窗口,遍歷圖像,計(jì)算窗口中存在的角點(diǎn)密度,將密度符合的窗口都保存下來。部分結(jié)果如圖11(c)所示。
圖11 動(dòng)鐵RIO的選取
Hu幾何矩表征圖像的幾何區(qū)域特征,應(yīng)用于圖像的特征提取、匹配和識別,具有平移、旋轉(zhuǎn)、縮放、鏡像不變性,簡稱為Hu矩[17-18]。
在圖11(a)中截取窗口大小為60*65的包含動(dòng)鐵RIO特征的圖像,如圖12(a)所示,若該圖像表示為:A=f(i,j),其二維(p+q)階空間矩為:
(14)
具有平移不變性的中心矩為:
(15)
具有縮放不變性的標(biāo)準(zhǔn)中心矩為:
(16)
由以上公式可推導(dǎo)出Hu矩:
計(jì)算圖11(c)中每個(gè)待選框中輪廓的Hu矩B1,B2…Bn,與A進(jìn)行匹配,進(jìn)行差異度計(jì)算,公式為:
(17)
圖12 動(dòng)鐵RIO的提取
對以上改進(jìn)算法與直接人工選取RIO進(jìn)行提取匹配的兩種方案分別進(jìn)行實(shí)驗(yàn)500次,實(shí)驗(yàn)結(jié)果:改進(jìn)算法的平均用時(shí)為213ms,正確率為100%;人工選取RIO方案平均用時(shí)為250ms,正確率為91%。結(jié)果證明提出的算法具有較高的穩(wěn)定性、準(zhǔn)確性。
通過兩點(diǎn)間距離公式計(jì)算Q,Z兩坐標(biāo)的距離:
(18)
動(dòng)鐵裝配合格時(shí)Q,Z兩中心點(diǎn)距離較小,根據(jù)實(shí)際情況取距離D的范圍為275—295,在此范圍內(nèi)的距離均視為裝配合格。
Jupyter是交互性、數(shù)據(jù)可視化出眾的Python代碼編輯器[19],以Python作為編程語言,結(jié)合Open CV視覺庫通過Jupyter環(huán)境編寫代碼開發(fā)視覺檢測軟件[20]。封裝Python代碼,打包成exe格式win系統(tǒng)可執(zhí)行文件,軟件參數(shù)設(shè)定界面與裝配檢測界面如圖13、14所示。工人可以根據(jù)實(shí)際情況對函數(shù)參數(shù)進(jìn)行調(diào)整,查看或者刪除檢測結(jié)果。界面清爽,操作簡單方便易上手。
圖13 參數(shù)設(shè)定
將視覺檢測平臺與裝配線結(jié)合,運(yùn)行裝配線和檢測平臺,實(shí)驗(yàn)檢測系統(tǒng)的準(zhǔn)確性和穩(wěn)定性,部分記錄數(shù)據(jù)如表1所示。多次進(jìn)行實(shí)驗(yàn),分析數(shù)據(jù)可知檢測正確率達(dá)99.7%,且用時(shí)符合在線檢測標(biāo)準(zhǔn)。分析檢測失敗的數(shù)據(jù),總結(jié)出以下干擾因素:
表1 部分實(shí)驗(yàn)數(shù)據(jù)
圖14 檢測結(jié)果
(a)裝配流水線運(yùn)行穩(wěn)定性;
(b)外界光線和噪聲等環(huán)境影響;
(c)動(dòng)鐵與提花面板表面加工粗糙度;
(d)阻擋裝置與抬升氣缸定位精度與穩(wěn)定性;
(e)光源與相機(jī)位置精度的穩(wěn)定性;
(f)光源與工業(yè)相機(jī)的老化。
基于提花面板裝配線上動(dòng)鐵防錯(cuò)的人工檢測現(xiàn)狀,設(shè)計(jì)了針對該工位的視覺檢測系統(tǒng)。對采集的圖像進(jìn)行預(yù)處理,通過Canny算子提取提花面板上的類矩形框及其中心坐標(biāo),通過Harris角點(diǎn)與Hu矩結(jié)合改進(jìn)的算法獲取動(dòng)鐵卡爪中心坐標(biāo),計(jì)算兩中心坐標(biāo)的距離判斷動(dòng)鐵是否倒裝,選用Python作為編程語言,結(jié)合Open CV圖像處理庫開發(fā)檢測軟件,實(shí)驗(yàn)證明系統(tǒng)的正確率達(dá)99.7%。相較于人工檢測,提高了裝配線的自動(dòng)化程度和生產(chǎn)效率,減小了企業(yè)成本。目前系統(tǒng)已投入裝配線實(shí)際應(yīng)用,且性能可靠。