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