胡道松,邱鵬程,周靜,李波
(中國(guó)地質(zhì)大學(xué)(武漢)機(jī)械與電子信息學(xué)院,湖北武漢 430074)
企業(yè)生產(chǎn)中,縫隙的檢測(cè)是至關(guān)重要的一環(huán)。國(guó)內(nèi)外已廣泛使用各種機(jī)器人,利用機(jī)器視覺代替人眼,對(duì)工業(yè)產(chǎn)品進(jìn)行檢測(cè)和判斷,因而研究基于圖像的精度檢測(cè)算法是其關(guān)鍵所在。視覺檢測(cè)技術(shù)具有非接觸、定制化、速度快等優(yōu)點(diǎn)。工業(yè)中視覺檢測(cè)技術(shù)的實(shí)現(xiàn)是通過合理的設(shè)計(jì)和整合,對(duì)采集到的圖像進(jìn)行處理、計(jì)算后得到特征數(shù)據(jù),同時(shí)做出判斷,以達(dá)到自動(dòng)檢測(cè)的目的。
國(guó)內(nèi)研究者針對(duì)不同環(huán)境下的縫隙特征檢測(cè)提出了眾多算法和方案。孫佳興等提出了基于區(qū)域生長(zhǎng)的縫隙提取辦法,但是此法僅適用于豎直縫隙提取。霍夫直線檢測(cè)具有較強(qiáng)的魯棒性和較高的精度,但是運(yùn)算復(fù)雜度較高。張國(guó)福和王呈基于改進(jìn)霍夫直線檢測(cè)算法檢測(cè)電梯門的縫隙,提出了限角概率霍夫直線檢測(cè)法,與標(biāo)準(zhǔn)的霍夫直線檢測(cè)算法相比,效率和準(zhǔn)確度均有所提高,但是該算法主要是基于先驗(yàn)知識(shí)的判斷規(guī)則,適應(yīng)范圍較窄。楊帆提出基于改進(jìn)亞像素邊緣檢測(cè)算法,實(shí)現(xiàn)了對(duì)縫跡特征的提取。TAO等基于YOLO目標(biāo)檢測(cè)模型和圖像處理,實(shí)現(xiàn)了復(fù)雜環(huán)境開關(guān)間隙的提取。Canny變換是常用的邊緣檢測(cè)算法,也常用于縫隙檢測(cè)。李超等人基于Canny變換提出了開關(guān)間隙的自動(dòng)檢測(cè)算法。XU等提出了基于自適應(yīng)小波閾值和數(shù)學(xué)形態(tài)學(xué)的間隙檢測(cè)算法。針對(duì)縫隙特征,還可以將圖像進(jìn)行分割,實(shí)現(xiàn)對(duì)縫隙特征的提取。董含提出基于超像素的圖像分割方法,但是面對(duì)復(fù)雜環(huán)境,該方法計(jì)算量較大,無法達(dá)到實(shí)時(shí)檢測(cè)的目的。鞏祎明提出優(yōu)化的CRF-RNN語(yǔ)義分割模型,該算法適用性較廣,但是該模型的泛化能力和精度取決于數(shù)據(jù)集的制作。
上述研究存在的主要問題就是針對(duì)游標(biāo)卡尺表面紋理清晰時(shí),卡爪縫隙特征提取的自動(dòng)化程度不高,容易出現(xiàn)針對(duì)紋理的誤檢情況,對(duì)于縫隙的提取存在一定限制。
本文作者基于上述文獻(xiàn)的縫隙提取思想,并在考慮游標(biāo)卡尺表面復(fù)雜紋理對(duì)算法的干擾情況下,為檢測(cè)卡爪縫隙,提出一種新的機(jī)器視覺檢測(cè)技術(shù)方案,并建立相應(yīng)的實(shí)驗(yàn)裝置。
對(duì)卡爪縫隙進(jìn)行檢測(cè)時(shí),首先應(yīng)對(duì)圖像進(jìn)行邊緣檢測(cè),提取出縫隙的邊緣信息。傳統(tǒng)Canny算法是常用的邊緣檢測(cè)算法,其流程包含圖像去噪、計(jì)算梯度幅值和方向、非極大值抑制、雙閾值檢測(cè)和邊緣連接,其檢測(cè)效果與閾值的選擇關(guān)聯(lián)很大。除人工設(shè)定閾值,Otsu算法被作為尋找最佳閾值的一種常用方法。Otsu算法首先選取一個(gè)閾值,將圖像分為前景和背景兩部分,并計(jì)算兩區(qū)域的類間方差。類間方差的值越大,代表前景和背景的區(qū)別越大,則閾值分割的效果越好。類間方差的定義如下:
=(-)+(-)
(1)
式中:為類間方差;、分別為像素為前景或背景區(qū)域的概率;、、分別為前景、背景和全局平均灰度值。
Otsu算法對(duì)直方圖為明顯雙峰的圖像效果較好,但是對(duì)于目標(biāo)像素點(diǎn)較少的圖像,閾值會(huì)嚴(yán)重偏向于像素占比大、類內(nèi)方差大的背景區(qū)域,導(dǎo)致圖像分割效果較差。對(duì)于游標(biāo)卡尺圖像,卡爪縫隙對(duì)于整個(gè)卡爪來說相對(duì)占比較小,因此利用Otsu算法作為閾值進(jìn)行Canny邊緣檢測(cè)的效果較差。本文作者基于實(shí)際工況,提出一種基于四叉樹理論的改進(jìn)Otsu算法。該算法的核心在于,在圖像中前景和背景占比不同時(shí),通過對(duì)圖像進(jìn)行分割,并利用圖像的灰度級(jí)直方圖的二階矩來描述圖像紋理的復(fù)雜度;選擇復(fù)雜度大的區(qū)域作為候選區(qū)域,通過迭代找到前景和背景占比接近的區(qū)域,并以此區(qū)域進(jìn)行閾值計(jì)算,最終得到最佳閾值。該算法公式如下:
(2)
式中:、分別表示分段區(qū)域的行數(shù)和列數(shù);表示待分段圖像;=0,1,…,;、、、表示分割后的4塊區(qū)域;表示灰度二階矩的最大值;表示圖像灰度級(jí)直方圖的二階矩,用來描述圖像紋理的復(fù)雜度,計(jì)算公式如下:
(3)
式中:表示灰度;()表示相應(yīng)的直方圖;表示不同灰度級(jí)的數(shù)量;表示的均值。
圖1所示為本文作者改進(jìn)的自適應(yīng)閾值在目標(biāo)像素點(diǎn)較少時(shí)Canny邊緣檢測(cè)算法的影響。
圖1 傳統(tǒng)Otsu算法和文中方法對(duì)比
由圖(a)(c)可以看出,因?yàn)榭p隙在圖像中的占比較小,導(dǎo)致直方圖只顯示一個(gè)波峰,因此其閾值結(jié)果偏向于波峰(背景)。由圖(e)可知:利用此閾值,會(huì)導(dǎo)致邊緣信息檢測(cè)不完全,會(huì)對(duì)邊緣的提取和最終的擬合造成影響。圖(b)所示為文中方法的結(jié)果。文中方法主要利用四叉樹理論,將圖像進(jìn)行分段,并計(jì)算每段圖像灰度級(jí)直方圖的二階矩,其值越大,則代表縫隙在該段占比越多。由此,選擇該區(qū)域?yàn)槟繕?biāo)區(qū)域,并不斷迭代上述過程,找到最終的目標(biāo)區(qū)域R。圖(d)為圖(b)中目標(biāo)區(qū)域R的灰度直方圖,該直方圖具有2個(gè)較明顯的波峰,計(jì)算的閾值(紅線位置)較好地分割了前景和背景。由圖(f)可知:該閾值很好地保留了縫隙的邊緣信息,有利于進(jìn)行后續(xù)的縫隙提取和擬合。
由于卡爪表面并不光滑,考慮可能存在的劃痕或其他加工痕跡,攝像單元采集到的圖像是一種混有噪聲的縫隙圖像。算法設(shè)計(jì)的基本思想如下:
(1)預(yù)處理
相機(jī)捕獲到的是RGB圖像,需要將采集到的圖像進(jìn)行灰度化,以提高計(jì)算速度,同時(shí)保留圖像的梯度信息。
=++
(4)
其中:表示最終的灰度;、、分別表示對(duì)應(yīng)像素點(diǎn)的R、G、B值;、、表示R、G、B分別對(duì)應(yīng)的權(quán)重,常取0.299、0.587、0.114。
對(duì)圖形進(jìn)行降采樣和濾波處理,完成圖像的降噪。文中采用高斯濾波器進(jìn)行處理。
(2)邊緣檢測(cè)
對(duì)待預(yù)處理圖像進(jìn)行處理,得到邊緣骨架信息。處理步驟如下:
步驟1,對(duì)圖像進(jìn)行改進(jìn)自適應(yīng)閾值計(jì)算,得到最佳閾值;
步驟2,對(duì)圖像模糊處理后,利用該閾值進(jìn)行Canny邊緣檢測(cè),得到圖像的邊緣信息,如圖2(a)所示;
步驟3,因?yàn)镃anny變換得到的邊緣信息并不連貫,因此利用形態(tài)學(xué)閉操作,將邊緣圖像信息連貫起來,如圖2(b)所示;
步驟4,利用細(xì)化算法,將得到的邊緣直線進(jìn)行細(xì)化,保留一個(gè)像素寬度,降低后續(xù)的運(yùn)算復(fù)雜度,如圖2(c)所示。
(3)邊緣特征提取
細(xì)化算法之后的圖像,依舊保留著大量的紋理信息,如圖2(c)所示,所以需要對(duì)邊緣特征進(jìn)行提取。根據(jù)視覺特征,縫隙邊緣應(yīng)當(dāng)在圖像中占據(jù)主要地位,即在圖像中,邊緣的空間跨度最大。因此,對(duì)像素點(diǎn)進(jìn)行聚類,即遍歷所有的像素點(diǎn),若像素值為0,則進(jìn)行八連通域的檢測(cè),確定像素點(diǎn)周圍是否存在已標(biāo)記類的像素點(diǎn),若僅存在一個(gè)已標(biāo)記像素點(diǎn),則將當(dāng)前像素點(diǎn)標(biāo)記為該類;若存在多個(gè)已標(biāo)記點(diǎn),且屬于不同類,則將該點(diǎn)和該點(diǎn)連接的所有類劃分為同一個(gè)新類;若不存在,則將該標(biāo)記點(diǎn)定義為新類。
圖2 邊緣檢測(cè)示意
最終得到位置信息的聚類結(jié)果,即類{,,,…,}。聚類結(jié)果如圖3所示。
圖3 聚類結(jié)果 圖4 類提取結(jié)果
通過視覺特征,對(duì)空間跨度大于平均跨度的類進(jìn)行提?。?/p>
(5)
式中:表示各個(gè)類;()表示類的空間跨度。
如圖4所示,通過對(duì)類的空間跨度進(jìn)行分析,得到初步的提取結(jié)果。相較于圖2,噪聲被很好地去除。但是由于文中是根據(jù)位置信息進(jìn)行的聚類,在加工過程中會(huì)出現(xiàn)紋理與邊緣重合,簡(jiǎn)單的聚類無法很好地將這種紋理排除。因此,針對(duì)這種情況,本文作者設(shè)計(jì)了基于先驗(yàn)的邊緣信息二次提取流程。
基于先驗(yàn)的邊緣信息二次提取流程對(duì)類提取后的圖像進(jìn)行運(yùn)算,如圖5、圖6所示。從端點(diǎn)坐標(biāo)開始標(biāo)記,首先進(jìn)行四連通域檢測(cè),尋找下一個(gè)標(biāo)記點(diǎn)坐標(biāo),若存在則標(biāo)記,不存在則進(jìn)行八連通域檢測(cè),若存在則標(biāo)記,若不存在則視為結(jié)束端點(diǎn)。每隔20個(gè)像素點(diǎn)標(biāo)記一個(gè)先驗(yàn)點(diǎn),得到先驗(yàn)點(diǎn)集{,,,…,}。若出現(xiàn)分叉點(diǎn)情況,即進(jìn)行連通域檢測(cè)時(shí)標(biāo)記點(diǎn)存在數(shù)目大于1時(shí),如圖7所示,將先驗(yàn)點(diǎn)集{,,,…,}到檢測(cè)點(diǎn)的向量作為該直線的方向向量集,從檢測(cè)點(diǎn)到多個(gè)標(biāo)記點(diǎn)、的向量為檢測(cè)向量。通過計(jì)算方向向量集與檢測(cè)向量之間的夾角,并根據(jù)投票法,即每個(gè)方向向量與檢測(cè)向量計(jì)算后,取較小值對(duì)應(yīng)的檢測(cè)向量,投票數(shù)加一。取投票數(shù)最多的檢測(cè)向量為方向向量,確定下一標(biāo)記點(diǎn)的坐標(biāo)位置,并進(jìn)行標(biāo)記。最終得到去除分叉的縫隙邊緣標(biāo)記點(diǎn)集{(,),(,),(,),…,(,)}。
圖5 縫隙特征提取流程
圖6 標(biāo)記流程示意(黃色為已標(biāo)記點(diǎn);紅色為待標(biāo)記點(diǎn);黑色為未標(biāo)記點(diǎn))
圖7 基于先驗(yàn)的分叉點(diǎn)判斷方法示意
(4)直線擬合
利用最小二乘法對(duì)標(biāo)記點(diǎn)集進(jìn)行擬合計(jì)算,得到最終的邊緣直線。并計(jì)算縫隙的寬度值:
(6)
式中:、分別為兩條邊緣直線對(duì)應(yīng)的直線點(diǎn)集中任意隨機(jī)點(diǎn)到另一條直線的距離;為標(biāo)定系數(shù)。
如圖8所示,待檢測(cè)物體置于實(shí)驗(yàn)臺(tái)上,考慮成像素質(zhì),由環(huán)形光源補(bǔ)光,圖像經(jīng)遠(yuǎn)心鏡頭拍攝后傳輸?shù)接?jì)算機(jī)中。當(dāng)攝像視場(chǎng)中出現(xiàn)縫隙圖像時(shí),計(jì)算機(jī)會(huì)實(shí)時(shí)顯示縫隙所在位置。
圖8 實(shí)驗(yàn)裝置示意
為驗(yàn)證文中算法的實(shí)際效果,采用相同的圖像進(jìn)行算法對(duì)比。文中實(shí)驗(yàn)的硬件環(huán)境:CPU Intel(R)Core(TM)i5-6300HQ;內(nèi)存為8 GB;64位Windows10操作系統(tǒng),軟件實(shí)施平臺(tái)為Visual Studio 2017。測(cè)試圖像為游標(biāo)卡尺外測(cè)量卡爪縫隙圖像,圖像分辨率為3 072像素×2 048像素。
由圖9可以看出:測(cè)試圖像紋理清晰,對(duì)縫隙檢測(cè)產(chǎn)生較大的干擾,檢測(cè)算法需具有更強(qiáng)的魯棒性。目前常見的直線檢測(cè)算法為霍夫直線檢測(cè),以文獻(xiàn)[7]的方法和最常用的漸進(jìn)概率式霍夫變化(PPHT)為對(duì)照樣本,對(duì)文中算法進(jìn)行性能測(cè)試。
圖9 測(cè)試圖像
3種算法的測(cè)試結(jié)果如圖10所示。由圖10(a)可知:文獻(xiàn)[7]中算法在縫隙角度已知且不變的情況下,可以較好地剔除紋理信息,擬合邊緣直線效果較好,但是當(dāng)縫隙的角度未知時(shí),會(huì)出現(xiàn)無法檢測(cè)出縫隙的情況。由圖10(b)可知:PPHT算法對(duì)縫隙檢測(cè)較為完整,對(duì)于紋理信息,由于閾值的選擇不同和拍攝環(huán)境等影響,對(duì)縫隙檢測(cè)的魯棒性不強(qiáng),同時(shí),也存在擬合精度的問題。由圖10(c)可知:文中算法對(duì)縫隙邊緣進(jìn)行了很好的提取和擬合,同時(shí)完成了對(duì)紋理信息的剔除,該算法具有更好的魯棒性。
圖10 算法測(cè)試結(jié)果
針對(duì)檢測(cè)精度,對(duì)每個(gè)測(cè)試圖像均測(cè)試5次,結(jié)果分別如表1和表2所示。文中檢測(cè)方法的平均相對(duì)誤差為0.002 4 mm,平均相對(duì)誤差率為0.433 1%,平均相對(duì)誤差和平均相對(duì)誤差率均較小,證明文中檢測(cè)方法有效、準(zhǔn)確。
表1 測(cè)試圖像1人工檢測(cè)與文中檢測(cè)結(jié)果對(duì)比
表2 測(cè)試圖像2人工檢測(cè)與文中檢測(cè)結(jié)果對(duì)比
圖11所示為3種算法針對(duì)測(cè)試圖像的運(yùn)行耗時(shí)結(jié)果。對(duì)于圖9(a),文中算法和文獻(xiàn)[7]中方法的耗時(shí)接近,但優(yōu)于PPHT算法。而針對(duì)圖9(b),文中算法耗時(shí)優(yōu)于兩者。總體而言,文中算法對(duì)比文獻(xiàn)[7]算法和PPHT算法,在時(shí)間消耗上,提升了15%左右。同時(shí)對(duì)具有復(fù)雜紋理環(huán)境中的縫隙邊緣提取準(zhǔn)確率達(dá)到了100%,可以有效地保證在工業(yè)檢測(cè)中應(yīng)對(duì)紋理噪聲較多的情況。
圖11 算法耗時(shí)測(cè)試結(jié)果
本文作者針對(duì)紋理清晰的游標(biāo)卡尺的卡爪縫隙,提出使用視覺檢測(cè)的方法來檢測(cè)卡爪縫隙寬度。根據(jù)工況,基于四叉樹理論,提出了改進(jìn)自適應(yīng)閾值算法,解決了當(dāng)目標(biāo)像素點(diǎn)占比較少時(shí)Otsu算法效果較差的問題。根據(jù)卡爪縫隙在圖像中的空間跨度進(jìn)行分析、聚類,實(shí)現(xiàn)了對(duì)卡爪縫隙的精確提取,并建立了相應(yīng)的實(shí)驗(yàn)裝置進(jìn)行實(shí)驗(yàn)。結(jié)果表明:該算法可以實(shí)現(xiàn)對(duì)縫隙邊緣的精確自動(dòng)提取和檢測(cè),同時(shí)單張圖片的檢測(cè)時(shí)間約為400 ms,滿足工業(yè)實(shí)時(shí)檢測(cè)的要求;該方法有一定的通用性,同樣可應(yīng)用于其他工業(yè)產(chǎn)品裝配縫隙的在線檢測(cè)識(shí)別。研究結(jié)果為其他在線檢測(cè)系統(tǒng)的檢測(cè)方法設(shè)計(jì)提供了思路。