張相勝,焦 鵬,潘 豐
(江南大學(xué)輕工過(guò)程先進(jìn)控制教育部重點(diǎn)實(shí)驗(yàn)室,江蘇無(wú)錫 214122)
隨著汽車(chē)銷(xiāo)量的逐漸增加,汽車(chē)線束的產(chǎn)量呈現(xiàn)出飛躍式增長(zhǎng)的發(fā)展勢(shì)頭。汽車(chē)線束是汽車(chē)電路中信號(hào)傳輸?shù)妮d體,線束壓接后的品質(zhì)直接影響汽車(chē)電子系統(tǒng)的正常運(yùn)行,因此對(duì)線束壓接質(zhì)量的檢測(cè)十分重要[1]。
線束的壓接是指通過(guò)施加外力將接觸件端子咬合在已經(jīng)剝離絕緣體的導(dǎo)線上,從而達(dá)到導(dǎo)電和牢固結(jié)合的目的[2],線束的壓接已經(jīng)實(shí)現(xiàn)了大規(guī)模、大批量的高速自動(dòng)化生產(chǎn),但壓接缺陷的檢測(cè)一般依靠低效率、高成本的人工完成。利用機(jī)器視覺(jué)實(shí)現(xiàn)線束壓接無(wú)接觸自動(dòng)檢測(cè)不僅能夠提高產(chǎn)品的檢測(cè)精度和速度,而且避免了人工視覺(jué)檢測(cè)帶來(lái)的偏差和誤差[3]。
本文設(shè)計(jì)了基于機(jī)器視覺(jué)的汽車(chē)線束壓接缺陷檢測(cè)系統(tǒng),通過(guò)圖像處理技術(shù)完成對(duì)線束關(guān)鍵部位特征的在線檢測(cè),判斷壓接后的線束是否符合生產(chǎn)標(biāo)準(zhǔn),可以替代人工檢測(cè),提高檢測(cè)的效率和質(zhì)量。
需檢測(cè)的線束區(qū)域分布如圖1所示,根據(jù)線束與端子壓接的相對(duì)位置,將線束分為Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ區(qū)。視覺(jué)系統(tǒng)主要完成以下幾個(gè)方面的檢測(cè):
(1)Ⅱ區(qū)、Ⅳ區(qū)中芯線出頭長(zhǎng)度是否超標(biāo);
(2)線束是否出現(xiàn)芯線外露情況;
(3)Ⅰ區(qū)絕緣層壓著區(qū)端子、Ⅲ區(qū)芯線壓著區(qū)端子和插Ⅴ區(qū)插接區(qū)端子是否缺失變形。
圖1 線束壓接成品外觀零件圖
工藝上要求視覺(jué)系統(tǒng)的檢測(cè)精度達(dá)到±0.03 mm,誤報(bào)率小于 3%,漏報(bào)率為0,單次檢測(cè)時(shí)間小于500 ms。
根據(jù)線束壓接缺陷的檢測(cè)要求,設(shè)計(jì)了視覺(jué)系統(tǒng)的整體布局如圖2所示。工業(yè)相機(jī)安裝在相機(jī)支架上,工業(yè)鏡頭安裝在工業(yè)相機(jī)上,方形光源安裝在鏡頭正下方,工業(yè)相機(jī)與工控機(jī)通過(guò)GigE Vision協(xié)議實(shí)現(xiàn)圖像傳輸功能,實(shí)現(xiàn)圖像的采集與傳輸功能。兩個(gè)接近傳感器安裝在擺臂運(yùn)行路徑的下方,與PLC的數(shù)字量輸入端相連,PLC與工控機(jī)通過(guò)TCP/IP協(xié)議實(shí)現(xiàn)數(shù)據(jù)交互。
圖2 視覺(jué)檢測(cè)系統(tǒng)整體布局
由操作員完成導(dǎo)線的上料后,按照流程啟動(dòng)設(shè)備,開(kāi)始運(yùn)行生產(chǎn)檢測(cè)工位。首先,導(dǎo)線經(jīng)送線皮帶進(jìn)入擺臂中的導(dǎo)向管,由擺臂帶動(dòng)導(dǎo)線至壓接機(jī)完成線束的壓接,在擺臂擺至視覺(jué)檢測(cè)工位的過(guò)程中觸發(fā)光電傳感器,PLC接收到時(shí)序控制信號(hào)進(jìn)行邏輯處理后發(fā)送相應(yīng)的控制指令到工控機(jī),由工控機(jī)發(fā)送拍照信號(hào)。工控機(jī)獲取圖片后,采用圖像處理軟件進(jìn)行線束壓接缺陷檢測(cè)。檢測(cè)完畢后,擺臂擺至截?cái)喙の唤財(cái)嗑€束,檢測(cè)合格的線束被截?cái)嘀潦站€槽中,檢測(cè)不合格的線束被截?cái)嘀链纹贩胖脜^(qū)中,并由工控機(jī)顯示報(bào)警信息。圖3為視覺(jué)檢測(cè)系統(tǒng)的整體工作流程。
圖3 視覺(jué)檢測(cè)系統(tǒng)工作流程圖
1.3.1 工業(yè)相機(jī)
工業(yè)相機(jī)負(fù)責(zé)采集目標(biāo)產(chǎn)品圖像數(shù)據(jù),由于芯線出頭長(zhǎng)度的檢測(cè)是基于HSI顏色空間完成的,根據(jù)視覺(jué)系統(tǒng)的檢測(cè)精度、視野范圍的大小、相機(jī)數(shù)據(jù)傳輸速率、通信接口類(lèi)型等,選用acA640-120gc彩色工業(yè)相機(jī),其主要參數(shù)如表1所示。
表1 工業(yè)相機(jī)主要參數(shù)
相機(jī)的工作距離是指相機(jī)鏡頭到產(chǎn)品檢測(cè)面的垂直距離,根據(jù)具體的檢測(cè)要求和現(xiàn)場(chǎng)的安裝條件確定相機(jī)工作距離為50 mm,其對(duì)應(yīng)的視野大小為11.9 mm×8.9 mm。根據(jù)相機(jī)的視野大小及其分辨率,得出相機(jī)的理論檢測(cè)精度達(dá)到0.018 mm/pixel,滿足系統(tǒng)的檢測(cè)精度要達(dá)到±0.03 mm的要求。
1.3.2 鏡頭
工業(yè)鏡頭是視覺(jué)系統(tǒng)中不可缺少的部件,與人眼晶狀體的功能相同,主要功能是將目標(biāo)物體聚焦并成像到相機(jī)的圖像傳感器上[4]。合理地選擇工業(yè)鏡頭是保證工業(yè)相機(jī)采集到清晰圖像的基礎(chǔ),考慮到相機(jī)分辨率、視野大小和工作距離的因素,采用M118FM25型號(hào)的工業(yè)鏡頭。由式(1)計(jì)算出相機(jī)的近似焦距值:式中:f為鏡頭的焦距,mm;WD為相機(jī)的工作距離,mm;l為圖像傳感器橫向尺寸,mm;d為圖像傳感器縱向尺寸,mm;L為視野橫向尺寸,mm;D為視野橫向尺寸,mm。
可以得出相機(jī)的近似焦距為20.16 mm,因此選用25 mm的鏡頭。鏡頭的主要參數(shù)如表2所示。
表2 鏡頭主要參數(shù)
1.3.3 光源
好的打光設(shè)計(jì)可以克服環(huán)境光干擾,保證圖像質(zhì)量穩(wěn)定,增強(qiáng)圖像的對(duì)比度,使目標(biāo)與背景的邊界易于分離,形成有利于圖像處理的圖像。為盡可能采集到質(zhì)量較好的圖像,采用白色方形無(wú)影單排LED高亮光源,無(wú)影燈安裝在鏡頭正下方,光源的主要參數(shù)如表3所示。
表3 光源主要參數(shù)
本系統(tǒng)選用Microsoft Visual Studio 2012開(kāi)發(fā)平臺(tái),使用C++語(yǔ)言和MFC界面編程完成上位機(jī)界面的開(kāi)發(fā),通過(guò)調(diào)用OpenCV計(jì)算機(jī)視覺(jué)庫(kù)中的函數(shù)完成視覺(jué)檢測(cè)算法的設(shè)計(jì),具有運(yùn)行速度快、成本低等優(yōu)點(diǎn)。
視覺(jué)檢測(cè)過(guò)程的主要步驟如下:
STEP1:對(duì)相機(jī)進(jìn)行標(biāo)定,完成圖像畸變校正;
STEP2:通過(guò)獲取線束外接矩形的中心坐標(biāo)和偏移角度,完成圖像空間變換;
STEP3:基于HSI空間完成芯線區(qū)域分割;
STEP4:根據(jù)標(biāo)定參數(shù)檢測(cè)芯線出頭長(zhǎng)度;
STEP5:基于芯線顏色特征分割算法和斑點(diǎn)檢測(cè)算法完成壓著部分芯線外露檢測(cè);
STEP6:通過(guò)灰度化操作和斑點(diǎn)檢測(cè)算法完成線束外部芯線外露檢測(cè);
STEP7:通過(guò)對(duì)模板圖像輪廓和目標(biāo)圖像輪廓進(jìn)行相似度匹配,完成端子形變檢測(cè)。
由于鏡頭本身的非理想性,導(dǎo)致相機(jī)在成像過(guò)程中存在一定程度的畸變,這些畸變會(huì)造成圖像失真,并導(dǎo)致識(shí)別出錯(cuò)和產(chǎn)生測(cè)量誤差的情況,因此需要對(duì)圖像進(jìn)行畸變校正[5]。系統(tǒng)選用格子尺寸為1 mm×1 mm的棋盤(pán)格標(biāo)定板進(jìn)行畸變校正,調(diào)整標(biāo)定板的位置采集10幅圖像,執(zhí)行如下標(biāo)定程序。
首先,調(diào)用OpenCV中的cvfindcornersubpix函數(shù)提取每一副棋盤(pán)格圖像中的亞像素角點(diǎn)坐標(biāo)值。然后,將角點(diǎn)的坐標(biāo)值代入calibrateCamera函數(shù)中獲取相機(jī)標(biāo)定參數(shù) v0、h0、fx、fy、k1、k2、k3、k4,其中,v0、h0為圖像的中心坐標(biāo),fx、fy分別為像素坐標(biāo)系的H軸、V軸的等效焦距,k1、k2為徑向畸變系數(shù),k3、k4為切向畸變系數(shù)。最后,調(diào)用 initUndistortRectifyMap和 remap函數(shù)實(shí)現(xiàn)對(duì)圖像畸變的矯正。
由于待測(cè)產(chǎn)品到達(dá)檢測(cè)工位時(shí)會(huì)存在一定程度的偏差,而且各個(gè)產(chǎn)品表面形狀特征也存在一定程度的差別,這會(huì)導(dǎo)致相機(jī)采集的圖像特征位置發(fā)生相應(yīng)的變動(dòng),不利于后續(xù)的圖像處理和分析[7]。
通過(guò)擬合線束輪廓的最小外接矩形,實(shí)現(xiàn)對(duì)特征區(qū)域的定位,進(jìn)而完成圖像空間變換。首先,對(duì)灰度化后的圖像進(jìn)行邊緣檢測(cè)和開(kāi)運(yùn)算處理,得到僅包含線束邊界的二值圖像。然后,調(diào)用OpenCV中的find-Contours函數(shù)獲取線束的輪廓,通過(guò)執(zhí)行rectangle函數(shù)獲取輪廓的最小外接矩形。最后,通過(guò)計(jì)算矩形長(zhǎng)邊與橫向主軸的夾角以及矩形的中心坐標(biāo)完成檢測(cè)坐標(biāo)系的建立。圖像初始坐標(biāo)系與檢測(cè)坐標(biāo)系的對(duì)應(yīng)關(guān)系如圖4所示。
圖4 圖像坐標(biāo)系與檢測(cè)坐標(biāo)系
檢測(cè)坐標(biāo)系O'是圖像坐標(biāo)系O經(jīng)過(guò)旋轉(zhuǎn)和平移得到的。P點(diǎn)的圖像坐標(biāo)p(vp,hp)和檢測(cè)坐標(biāo)p(xp,yp)的轉(zhuǎn)換關(guān)系如式(2)所示:
通過(guò)式(2)實(shí)現(xiàn)圖像坐標(biāo)系到檢測(cè)坐標(biāo)系的轉(zhuǎn)換,線束坐標(biāo)變換前后圖像如圖5所示。
圖5 坐標(biāo)變換效果圖
2.5.1 芯線區(qū)域分割
對(duì)RGB空間內(nèi)的源圖像分析后發(fā)現(xiàn),芯線的3個(gè)顏色通道(R、G、B分量)組合復(fù)雜且相關(guān)性較高,難以確定閾值進(jìn)行顏色判斷。HSI模型中的色彩不相關(guān)性,很好地解決了這個(gè)問(wèn)題。首先,將讀取到的RGB空間線束圖像轉(zhuǎn)化為HSI空間圖像,然后,根據(jù)HSI顏色空間中3個(gè)參數(shù)設(shè)定閾值對(duì)芯線進(jìn)行分割操作,對(duì)大量的線束樣品采集圖像分析后確定HSI參數(shù)如表4所示。
表4 HSI顏色空間閾值
最后,根據(jù)凡是在閾值區(qū)間內(nèi)的像素點(diǎn)灰度值置為1,不在閾值區(qū)間內(nèi)的像素點(diǎn)灰度值置為0的原則,對(duì)HSI空間圖像進(jìn)行二值化處理,結(jié)果如圖6所示。
圖6 芯線部分二值圖像
2.5.2 芯線實(shí)際尺寸的計(jì)算
視覺(jué)檢測(cè)程序中被測(cè)物的幾何尺寸按照像素?cái)?shù)來(lái)衡量[8-9],為了得到被測(cè)物的實(shí)際尺寸,需要將檢測(cè)對(duì)象的像素單位(pixel)轉(zhuǎn)換為實(shí)際單位(mm),采用連接亞像素角點(diǎn),計(jì)算實(shí)際邊長(zhǎng)1 mm的黑白格子邊中的像素個(gè)數(shù)的方法,得到被測(cè)物的實(shí)際尺寸與像素的轉(zhuǎn)換關(guān)系,如式(3)所示:
式中:D為實(shí)際尺寸;Lpixel為像素個(gè)數(shù);k為標(biāo)定參數(shù),求得標(biāo)定參數(shù)k為0.018 1 mm/pixel。
采用擬合芯線區(qū)域最小外接矩形的方法完成芯線尺寸的計(jì)算。首先,通過(guò)提取芯線輪廓凸包特征擬合出芯線輪廓的最小外接矩形。然后,完成芯線部分的框選如圖7所示。最后,計(jì)算出左側(cè)矩形長(zhǎng)度L1為58.1 pixel,右側(cè)矩形長(zhǎng)度 L2為 33.2 pixel,即為芯線的像素尺寸。
圖7 芯線區(qū)域最小外接矩形圖像
根據(jù)標(biāo)定得到的比例關(guān)系計(jì)算得出Ⅱ區(qū)芯線實(shí)際長(zhǎng)度D1為1.05 mm,Ⅳ區(qū)芯線實(shí)際長(zhǎng)度D2為0.60 mm。出頭長(zhǎng)度大于1.5 mm或小于0.5 mm的線束將被判定為不合格品。
2.6.1 壓著部分芯線外露檢測(cè)
壓著部分芯線外露的線束如圖8所示,基于芯線顏色特征可以完成Ⅲ區(qū)中芯線的區(qū)域分割,并根據(jù)連通域規(guī)則計(jì)算出分割區(qū)域的像素面積。首先,對(duì)Ⅲ區(qū)壓著部分進(jìn)行芯線區(qū)域分割操作,得到芯線部分的二值圖像。然后,通過(guò)斑點(diǎn)檢測(cè)算法計(jì)算白斑面積,濾除面積小于10個(gè)像素點(diǎn)的白斑區(qū)域,如圖9所示。最后,判定白斑面積占比大于等于20%的產(chǎn)品為芯線外露的不合格品。
圖8 壓著部分芯線外露圖
2.6.2 線束外部芯線外露檢測(cè)
圖9 壓著部分斑點(diǎn)檢測(cè)算法處理圖像
不同于壓著部分芯線外露的情況,線束外部的背景為黑色,所以采用灰度化操作完成芯線特征的分割。首先,基于圖10所示的線束圖像,對(duì)多邊形區(qū)域中的芯線進(jìn)行閾值分割,采用固定閾值的分割方法,濾除像素灰度小于80的像素點(diǎn)得到上、下兩部分的二值圖像,如圖11所示。然后,通過(guò)斑點(diǎn)檢測(cè)算法計(jì)算白斑面積,判定白斑面積大于40的為芯線外露產(chǎn)品。
圖10 線束外部芯線外露圖像
圖11 線束外部斑點(diǎn)檢測(cè)算法處理圖像
針對(duì)端子形變檢測(cè),采用模板匹配的方法對(duì)圖像模板與目標(biāo)圖像進(jìn)行相似度匹配??紤]到檢測(cè)系統(tǒng)的實(shí)時(shí)性和端子紋理特征,本文采用基于邊緣信息的匹配方法。首先,創(chuàng)建端子的模板圖像,通過(guò)Canny邊緣檢測(cè)算法提取模板圖像和目標(biāo)圖像的邊緣信息。然后,將邊緣信息作為輸入計(jì)算圖像輪廓的Hu矩,調(diào)用OpenCV中的cvMatchShapes函數(shù)計(jì)算Hu矩的相似程度。最后,根據(jù)匹配值越大產(chǎn)品輪廓越不相似的原則,篩選出端子形變的線束。
為了測(cè)試該視覺(jué)檢測(cè)系統(tǒng)的功能和測(cè)量精度,將5 000根線束進(jìn)行圖像處理并獲得相關(guān)檢測(cè)結(jié)果。將獲得的芯線尺寸數(shù)據(jù)與實(shí)際手工采用專業(yè)工具測(cè)量的尺寸數(shù)據(jù)進(jìn)行對(duì)比分析,如表5所示。
表5 測(cè)量結(jié)果誤差統(tǒng)計(jì)分析 mm
系統(tǒng)的實(shí)際檢測(cè)精度在±0.03 mm以內(nèi),能夠?qū)⑿揪€長(zhǎng)度不合格的產(chǎn)品檢出。芯線外露及端子變形的不良品都能被檢測(cè)出來(lái),系統(tǒng)的漏報(bào)率為0。經(jīng)統(tǒng)計(jì)得出線束壓接缺陷視覺(jué)檢測(cè)系統(tǒng)的整體誤報(bào)率小于1.3%,系統(tǒng)的運(yùn)行時(shí)間為300 ms左右。綜合以上數(shù)據(jù),本系統(tǒng)能夠滿足工業(yè)現(xiàn)場(chǎng)的應(yīng)用需求。
本文設(shè)計(jì)了基于機(jī)器視覺(jué)的汽車(chē)線束壓接缺陷檢測(cè)系統(tǒng),通過(guò)圖像處理技術(shù)完成對(duì)線束關(guān)鍵部位特征的檢測(cè),判斷壓接后的線束是否符合生產(chǎn)標(biāo)準(zhǔn)。系統(tǒng)已經(jīng)成功應(yīng)用于某汽車(chē)系統(tǒng)有限公司的線束生產(chǎn)中,能夠?qū)崿F(xiàn)線束缺陷的快速、精確、穩(wěn)定檢測(cè),為企業(yè)帶來(lái)了更高的收益。