王鐵禹,曹 新
(大連東軟信息學(xué)院,遼寧 大連 116023)
tieyu.wang@fitow.com;caoxin@neusoft.edu.cn
糖尿病患者注射胰島素所用的筆桿屬于醫(yī)療器械,其生產(chǎn)過程中對(duì)精度的要求很高,但是無論怎么優(yōu)化生產(chǎn)設(shè)備,缺陷產(chǎn)品的產(chǎn)生是不可避免的,因此廠家需要剔除這些缺陷產(chǎn)品,以免影響病人的使用及治療效果。工業(yè)流水線上的筆桿質(zhì)量檢測(cè)長(zhǎng)久以來都是采用人工質(zhì)檢方式,其檢測(cè)準(zhǔn)確率低、效率低,已成為亟待解決的問題。
伴隨著機(jī)器視覺技術(shù)的不斷發(fā)展,基于機(jī)器視覺的表面缺陷檢測(cè)方法以高效率、高精度和低誤檢率等優(yōu)勢(shì)逐漸替代人工質(zhì)檢,例如羅兵等人通過形態(tài)學(xué)的特征增強(qiáng),實(shí)現(xiàn)了對(duì)硬質(zhì)合金微型噴嘴缺陷的檢測(cè)[1];張媛媛等人利用雙邊濾波及Otsu閾值,實(shí)現(xiàn)了對(duì)紗線質(zhì)量的檢測(cè)[2];周鼎賀等人運(yùn)用迭代加權(quán)擬合的方法實(shí)現(xiàn)了對(duì)孔洞感興趣區(qū)域(ROI)的定位與提取,從而縮短了檢測(cè)時(shí)間,完成了汽車零件涂裝缺陷檢測(cè)等[3]。
通過綜合分析文獻(xiàn)[1]—文獻(xiàn)[3],總結(jié)機(jī)器視覺的缺陷檢測(cè)大體分兩類:一是利用深度學(xué)習(xí)進(jìn)行模型訓(xùn)練,該方法需要大量的數(shù)據(jù)和極高要求的硬件支持;二是分析缺陷特征,利用特征增強(qiáng)、濾波和閾值分割,但實(shí)際上筆桿缺陷灰度差小,閾值分割不穩(wěn)定,從而在一定程度上導(dǎo)致漏檢和誤檢。本文針對(duì)筆桿表面的缺陷,提出了利用邊緣平滑、直線擬合和尺寸測(cè)量方法。尺寸測(cè)量部分利用直線擬合和直線延長(zhǎng)計(jì)算交點(diǎn),優(yōu)化了算法邏輯;邊緣磕傷缺陷拋棄了常用的濾波和Otsu閾值,利用邊緣平滑并計(jì)算缺陷點(diǎn)和正常點(diǎn)的位置關(guān)系。該方法有效提高了筆桿缺陷和尺寸測(cè)量的檢出精度,并縮短了檢測(cè)時(shí)間。
筆桿的常見型號(hào)為圓直徑15.8 mm、高63.2 mm的帶有頂端開口和表面開口對(duì)稱的空心圓柱形結(jié)構(gòu)[4],由于材質(zhì)硬度低,在生產(chǎn)過程中極易造成邊緣、開口輪廓磕傷,鍍膜不均勻和尺寸不符等缺陷??膫毕荽嬖谟趦蓚€(gè)開口和上下兩端的邊緣,如圖1(a)所示;鍍膜不均勻缺陷呈現(xiàn)為整體亮度不一致,利用灰度值的大小可以有效找到缺陷位置,如圖1(b)所示;尺寸測(cè)量主要測(cè)量頂端開口的寬度和深度尺寸,如圖1(c)和圖1(d)所示。
圖1 缺陷類型Fig.1 Defect type
圖像處理是整個(gè)筆桿檢測(cè)系統(tǒng)的核心[5],設(shè)備是否具有較高的檢出率,與算法對(duì)圖像缺陷檢出的穩(wěn)定性有很大關(guān)系。本文首先對(duì)圖像進(jìn)行Blob(連通區(qū)域)分析,分割出待檢測(cè)區(qū)域;然后通過直線擬合、直線延長(zhǎng)等邏輯操作,完成尺寸測(cè)量;最后利用邊緣平滑的算子,實(shí)現(xiàn)輪廓磕傷缺陷的檢測(cè)。
Blob分析是將圖像進(jìn)行二值化、分割、形態(tài)學(xué)操作和特征值計(jì)算,從而得到需要檢測(cè)的區(qū)域。首先選取灰度值在70—255的區(qū)域(算子:threshold),根據(jù)特征值(面積)選取筆桿在整張圖上的位置(算子:select_shape),然后進(jìn)行填充(算子:fill_up)、做差(算子:difference)、形態(tài)學(xué)腐蝕(算子:erosion_circle),最后選擇出開口位置,如圖2所示。
圖2 Blob分析確定開口位置Fig.2 Blob analysis to determine the opening position
對(duì)上述Blob分析確定好的開口位置進(jìn)行開口尺寸的檢測(cè),包括開口深度和開口寬度[6-7]。
開口深度的檢測(cè)方法是求點(diǎn)到直線的距離,但如果只按照傳統(tǒng)方法使用算子distance_pl(計(jì)算點(diǎn)到直線之間的距離)經(jīng)過重復(fù)性精度實(shí)驗(yàn)(同一個(gè)筆桿來回取放10 次取圖,看計(jì)算結(jié)果最小值和最大值的差),像素差值達(dá)到了50—100 pix,這樣的精度顯然是不合格的。所以,需要對(duì)算法邏輯進(jìn)行優(yōu)化:分別提取開口的上部分、下部分和開口深度的邊,計(jì)算出上部分、下部分邊上所有的點(diǎn),刪除偏移量比較大的前20%的數(shù)據(jù),再重新擬合直線。同理,開口深度的邊也是如此操作,這樣可以得到兩條偏差很小的直線。根據(jù)這兩條直線上的所有點(diǎn),再計(jì)算點(diǎn)到直線的距離,求出平均值即可得到準(zhǔn)確的“V”口深度,像素差值可達(dá)到3 pix以內(nèi),處理過程如圖3所示。
圖3 直線擬合與開口深度的測(cè)量Fig.3 Straight line fitting and measurement of opening depth
本文利用直線擬合的尺寸測(cè)量方法測(cè)試300 個(gè)隨機(jī)筆桿,與傳統(tǒng)尺寸測(cè)量的檢出對(duì)比如表1所示。從表1中的結(jié)果可以看出,本文算法的設(shè)計(jì)大幅降低了誤檢率和縮短了檢測(cè)時(shí)間,提升了檢測(cè)效率,節(jié)約了檢測(cè)成本。
表1 開口深度檢測(cè)邏輯的對(duì)比算法Tab.1 Comparison algorithm of opening detection logic
進(jìn)行開口寬度檢測(cè)時(shí)需要擬合三條直線,并將其中上、下兩條直線延長(zhǎng)計(jì)算與左邊第三條直線相交。延長(zhǎng)直線首先使用算子line_position計(jì)算待延長(zhǎng)直線的起點(diǎn)行列坐標(biāo)、終點(diǎn)行列坐標(biāo)、中心點(diǎn)行列坐標(biāo)、直線長(zhǎng)度及直線與水平線的角度,分別存入對(duì)應(yīng)數(shù)組RowBegin、ColBegin、RowEnd、ColEnd、RowCenter、ColCenter、Length、Phi,然后根據(jù)如下公式分別計(jì)算延長(zhǎng)后的起點(diǎn)行列坐標(biāo)和終點(diǎn)行列坐標(biāo),分別存入對(duì)應(yīng)數(shù)組Row_Start、Col_Start、Row_End、Col_End。
其中,P為待延長(zhǎng)直線起點(diǎn)/終點(diǎn)的行/列坐標(biāo),Pc為待延長(zhǎng)直線中心點(diǎn)的行/列坐標(biāo),PHI為直線與水平線的角度,L為延長(zhǎng)系數(shù),L的值越大,延長(zhǎng)后的直線越長(zhǎng)。直線延長(zhǎng)前后的對(duì)比如圖4所示。
圖4 直線延長(zhǎng)前后對(duì)比Fig.4 Comparison before and after linear extension
通過算子intersection_lines計(jì)算延長(zhǎng)后直線與圖4擬合后直線的交點(diǎn),重復(fù)兩次得到上下兩個(gè)交點(diǎn),根據(jù)交點(diǎn)的行列坐標(biāo)計(jì)算開口寬度的尺寸。算子處理過程如圖5所示。
圖5 直線延長(zhǎng)與開口寬度的測(cè)量Fig.5 Measurement of straight line extension and opening width
輪廓磕傷缺陷的檢測(cè)如圖6所示。首先利用Blob分析找到輪廓位置,篩選輪廓上的點(diǎn),找到待檢測(cè)的點(diǎn)坐標(biāo)(算子:segment_contours_xld、select_shape_xld),然后進(jìn)行邊緣平滑并刪除平滑邊緣時(shí)產(chǎn)生的干擾(算子:smooth_contours_xld、union_adjacent_contours_xld、select_shape_xld),最后根據(jù)待檢測(cè)的點(diǎn)坐標(biāo)和平滑邊緣的距離判斷是否有輪廓磕傷。
圖6 輪廓磕傷缺陷檢測(cè)Fig.6 Contour gouge defect detection
為驗(yàn)證本文提出的筆桿表面缺陷檢測(cè)方法的可行性與準(zhǔn)確性,把檢出率、漏檢率、誤檢率和檢測(cè)時(shí)間作為檢出標(biāo)準(zhǔn)。實(shí)驗(yàn)環(huán)境為8 k像素工業(yè)線陣相機(jī)及其配套鏡頭,平行背光源,圖像處理通過Dell G5便攜式計(jì)算機(jī)完成,使用C#語(yǔ)言作為上位機(jī)調(diào)用Halcon完成算法編寫[8]。
按照文中所介紹的方法對(duì)某企業(yè)的NP4型號(hào)筆桿進(jìn)行實(shí)驗(yàn),挑選1,000 件不同的筆桿進(jìn)行對(duì)比實(shí)驗(yàn),采集合格產(chǎn)品圖像400 張、尺寸缺陷圖像400 張、邊緣磕傷缺陷圖像200 張,本文提出算法的檢測(cè)結(jié)果如表2所示;其他算法的檢測(cè)結(jié)果如表3所示;傳統(tǒng)尺寸測(cè)量檢測(cè)結(jié)果與本文提出的缺陷檢測(cè)方法結(jié)果進(jìn)行對(duì)比,結(jié)果如表4所示;將實(shí)際工廠生產(chǎn)中傳統(tǒng)人工檢測(cè)結(jié)果與本文提出的缺陷檢測(cè)方法結(jié)果進(jìn)行對(duì)比,結(jié)果如表5所示。
表2 本文提出的算法缺陷檢測(cè)結(jié)果Tab.2 Defect detection results of the algorithm proposed in this paper
表3 濾波和閾值分割算法缺陷檢測(cè)結(jié)果Tab.3 Defect detection results of filtering and threshold segmentation algorithm
表4 傳統(tǒng)尺寸測(cè)量與本文提出的方法檢測(cè)結(jié)果對(duì)比Tab.4 Comparison between traditional dimension measurement and the proposed method
表5 人工檢測(cè)與本文提出的方法檢測(cè)結(jié)果對(duì)比Tab.5 Comparison between manual detection and the proposed method
從表4和表5中的數(shù)據(jù)可以看出,本文提出的算法檢測(cè)檢出率為98.8%、誤檢率為1%、漏檢率僅為0.2%,而其他方法檢測(cè)檢出率為92.25%、誤檢率為3.3%、漏檢率為4.45%;人工檢測(cè)檢出率為90.2%、誤檢率為4.7%、漏檢率為5.1%。結(jié)果表明:該方法可以代替人工質(zhì)檢方法,滿足生產(chǎn)要求。
本文介紹了一種基于機(jī)器視覺的筆桿表面缺陷檢測(cè)方法:首先對(duì)圖像進(jìn)行Blob分析,分割出待檢測(cè)區(qū)域;然后通過直線擬合、直線延長(zhǎng)等算法邏輯,完成了開口深度和開口寬度的尺寸測(cè)量;最后利用邊緣平滑的算子,實(shí)現(xiàn)了對(duì)輪廓磕傷缺陷的檢測(cè)。經(jīng)實(shí)驗(yàn)測(cè)試,本文提出的檢測(cè)方法與目前常用的檢測(cè)方法在漏檢率、誤檢率和檢出率等指標(biāo)上都有所提升,并且降低了算法的復(fù)雜性,滿足工業(yè)質(zhì)檢的要求。