劉凌霄,王德成,程 鵬,郎 寧
(機械科學研究總院 中機生產(chǎn)力促進中心有限公司,北京 100044)
在各種零部件中,有著各種大小,特征的孔、槽,比如通孔,盲孔,沉頭孔,鍵槽、異形槽等等,具有樣式多、尺寸各異等特點。在生產(chǎn)中,為了提高產(chǎn)品的質(zhì)量,通常對其有著較高的尺寸精度要求。隨著相機、鏡頭和計算機圖像處理技術(shù)的快速發(fā)展,機器視覺這種非接觸式的測量方法逐漸取代了傳統(tǒng)接觸式機械測量,有著更高精度、更快處理、節(jié)省人力的特點。
在實際檢測過程中,光學系統(tǒng)對光源的要求比較高,不同大小、形狀的特征需要不同的光照強度,同時日光燈光等環(huán)境光也會對檢測結(jié)果有所影響[1]。目前已有相關(guān)學者對此問題進行了設(shè)計研究,并取得了一定的研究成果。采用不同像素當量的方法,根據(jù)實驗得到的數(shù)據(jù),不同光照強度下每一個像素代表不同的實際尺寸值[2,3]。但此種方法需要提前知道光源的光照強度,無法適應(yīng)環(huán)境光,且特征的基礎(chǔ)尺寸需要和計算模型用的量塊尺寸相當,有較大的局限性。
針對傳統(tǒng)方法存在的弊端,提出一種基于機器視覺的光照強度修正方法,并通過實驗驗證分析本文方法在零部件特征的尺寸檢測方面的優(yōu)越性。
本文算法流程如圖1所示,主要分為5個部分:圖像采集、圖像預(yù)處理、亞像素邊緣檢測、光強修正、計算最終尺寸。
圖1 處理流程
需要注意的是,光強修正中所使用的訓(xùn)練模型在實際檢測過程中是提前取得的,而在本次實驗的樣本中,一部分作為訓(xùn)練模型使用,一部分作為檢測算法正確性使用,兩部分相互獨立,避免用訓(xùn)練樣本進行驗證實驗。
在進行光照強度的尺寸修正之前要首先獲得特征的基礎(chǔ)尺寸。對采集好的圖片進行ROI區(qū)域的剪裁、圖像預(yù)處理、亞像素邊緣檢測。
為了減少圖像采集過程中非待檢測特征的影響,需要首先對采集到的圖像進行灰度化和二值化處理。圖像灰度化就是將相機采集到的圖像轉(zhuǎn)換為灰度圖像,即剔除彩色信息,保留圖像的亮度信息。本文采用一種包含圖像亮度信息最多的權(quán)值平均灰度算法,如式(1)所示:
式(1)中,f(x,y)表示圖像灰度化后在像素(x,y)的灰度值,R、G、B表示彩色圖像的三個分通道(x,y)的像素值。
對圖像進行灰度化之后,要對灰度化的圖像進行二值化進一步簡化計算的復(fù)雜程度。在全局閾值二值化算法中,常見的算法有:迭代法、OTSU、直方圖雙峰法等,還有Niblack、bernsen等局部二值化的算法??紤]到本文圖像只針對單一目標特征分割,但由于光照強度變化范圍大,易造成整張圖片整體過于明亮或昏暗,全局閾值的二值化方法相比來說無法勝任,故采取bernsen局部二值化算法進行圖像閾值分割。該算法原理為提前設(shè)置兩個閾值,當所選區(qū)域內(nèi)灰度最大值和最小值的平均值大于閾值1時,認為其同時包含背景、目標兩部分,區(qū)域選擇上述平局值作為區(qū)域閾值;當此平均值小于閾值1時,認為區(qū)域只包含背景或目標其中之一,通過提前設(shè)置的閾值2進行判斷分割。Bernsen算法計算簡單快速,不受圖像整體亮度和對比度的影響。
連通區(qū)域一般是指圖像中具有相同像素值且位置相鄰的前景像素點組成的圖像區(qū)域,一般分為四連通和八聯(lián)通。而最大連通域則指的是尋找一張圖像內(nèi)屬于該像素值的像素點最多的連通域。
由于噪音和待測特征上可能存在的污跡、劃痕等干擾,二值化后的圖像可能存在一些非待檢測目標的內(nèi)容,對于我們下一步的邊緣檢測產(chǎn)生干擾。我們對特征和背景分別做一次最大連通域處理,即可去除目標外的雜質(zhì)和目標內(nèi)的噪音,提高視覺檢測的精度和準確性。
為了獲得待檢測目標的尺寸,首先要對預(yù)處理后的圖片進行邊緣檢測,經(jīng)典像素級邊緣檢測算子有sobel算子、prewitt算子、Laplacian算子、LoG算子及Canny邊緣檢測算子等。Canny邊緣檢測算子是最為常用的像素級邊緣檢測算法,其原理可以分為以下5個步驟:1)應(yīng)用高斯濾波來平滑圖像,目的是去除噪聲;2)找尋圖像的強度梯度;3)應(yīng)用非最大抑制技術(shù)來消除邊誤檢;4)應(yīng)用雙閾值的方法來決定可能的邊界;5)利用滯后技術(shù)來跟蹤邊界。本文通過Canny算法初步確定目標特征的像素級邊緣信息。
圖像處理過程中,提高檢測方法的精度一般有兩種方式。一種是提高圖像系統(tǒng)的光學放大倍數(shù)和CCD相機的分辨率能力;另一種是引入亞像素細分技術(shù)來彌補硬件的不足以提高圖像系統(tǒng)的分辨率,可以節(jié)省系統(tǒng)的硬件投入成本[4]。
亞像素方法一般分為矩方法、插值法和擬合法。矩方法的優(yōu)點是計算簡便,并且可以得到解析解;插值法的運算時間最短;擬合方法對噪聲不敏感適合精準測量[5]。本文選擇擬合法,沿邊緣法線的方向,以某邊緣點為中心,取一列邊緣區(qū)域向量的灰度值,如圖2藍色實線所示。可以發(fā)現(xiàn)反正切函數(shù)圖像與邊緣區(qū)域灰度分布非常相似[6]。因此,擬合反正切函數(shù)如式(2)所示:
圖2 邊緣法線灰度值
用式(2)描述物體邊緣實際的灰度分布情況,確定模型中的參數(shù)(a1,a2,a3,a4),即可得到如圖2虛線所示的擬合函數(shù)。亞像素邊緣位于灰度值變化率最大的位置,對擬合的反正切函數(shù)求一階和二階導(dǎo)數(shù)得到式(3):
從式(3)可知,灰度值變化率最大位置和拐點位置重合,位于反正切函數(shù)位置,此位置即是該像素級邊緣點亞像素邊緣位置。
通過圖3可知,圖像邊緣區(qū)域內(nèi)外幾個像素的灰度直方圖皆呈現(xiàn)廣義高斯分布:
圖3 邊緣內(nèi)外像素點灰度直方圖
式(4)中,參數(shù)α控制著分布的“形狀”,即衰減率;σ控制著方差。
由圖4可知,在光照強度變化時,邊緣的灰度直方圖擬合的廣義高斯函數(shù)的特征參數(shù)變化有一定規(guī)律:光照強度越大,廣義高斯函數(shù)的平均值越大,方差越小,衰減率越大。
圖4 不同光照強度邊緣處灰度直方圖
SVR(支持向量回歸)是SVM(支持向量機)中的一個重要的應(yīng)用分支。SVR回歸與SVM分類的區(qū)別在于,SVR的樣本點最終只有一類,它所尋求的最優(yōu)超平面不是SVM那樣使兩類或多類樣本點分的“最開”,而是使所有的樣本點離著超平面的總偏差最小[7]。
圖5 SVR示意圖
將各種尺寸、有一定數(shù)量的已知真實尺寸(由三坐標測量儀觸針檢測得到的值視為真實值)的特征在不同光照強度下進行拍照作為訓(xùn)練樣本,以亞像素算法檢測的結(jié)果和實際值的差作為SVR的標簽,以視覺檢測的結(jié)果和邊緣灰度直方圖得到的廣義高斯分布的平均值、方差、衰減率作為訓(xùn)練用向量進行數(shù)據(jù)歸一化,選擇合適的支持向量回歸參數(shù)進行訓(xùn)練,得到訓(xùn)練模型。
在獲得了訓(xùn)練模型后,之后的檢測過程中需要導(dǎo)入已有的支持向量訓(xùn)練模型,并通過SVR預(yù)測函數(shù),將圖像處理得到的基礎(chǔ)尺寸和直方圖廣義高斯分布的特征參數(shù)作為特征向量,就可以預(yù)測得到由光照強度帶來的尺寸偏差值,通過基礎(chǔ)尺寸和偏差值相加得到光強修正后的精確尺寸。
實驗測試圖像通過VIEWORKS VP-101MC-M8H00工業(yè)相機、Schneider Xenon-Zirconia 3.2/92鏡頭拍攝獲取,原始圖像大小均為11648×8742,光源采用OPT 90°藍色LED環(huán)形光。實驗計算機為i7-9700 CPU,16g內(nèi)存及Windows10、Matlab2018b、Visual Studio 2019軟件環(huán)境。實驗還使用三坐標測量儀通過觸針測量待測特征的尺寸值當作訓(xùn)練模型和驗證誤差的真實值,實驗環(huán)境如圖6所示。
圖6 實驗環(huán)境
通過標準量塊、標準環(huán)規(guī)反復(fù)標定得到,本文實驗所用設(shè)備采集到的圖像,每一個像素長度為0.0018mm。
圖7為實驗用測試樣件,包含了多種類型和尺寸大小的特征,本文選擇其中的圓孔及鍵槽進行算法驗證。
圖7 測試樣件
4.2.1 檢測內(nèi)容
為了驗證本文光強修正算法的正確性,選用測試樣件中的圓孔和鍵槽,包含通槽、盲槽、沉頭孔等各種類型的特征作為訓(xùn)練樣本和測試數(shù)據(jù),訓(xùn)練樣本和測試數(shù)據(jù)彼此獨立。
對于圓孔選擇對亞像素邊緣的點坐標進行概率霍夫圓擬合,得到圓孔的半徑尺寸。對于鍵槽選擇先用概率霍夫直線檢測到直線部分并刪除直線的坐標點,對于剩余部分分別進行概率霍夫圓擬合,得到鍵槽兩側(cè)半圓部分的信息,槽長即為兩圓心距離加上兩圓半徑,槽寬為兩圓半徑的平均值。
擬合結(jié)果如圖8、圖9所示。
圖8 圓孔擬合結(jié)果
圖9 鍵槽擬合結(jié)果
4.2.2 檢測結(jié)果
實驗選擇每隔2個光照強度為步長,從勉強看清邊緣到邊緣過曝為止,拍攝了50個圓孔和20個鍵槽,每個特征拍攝10張左右不同光照強度的照片。隨機抽取20%作為測試集,其余80%為訓(xùn)練集。
表1為對測試樣件測試樣本的檢測結(jié)果,可以看到,經(jīng)過光強修正后測量值與實際值之間誤差基本在10μm以內(nèi),相對誤差更小,更接近真實尺寸。
表1 檢測結(jié)果
為了減小光照強度對視覺檢測的影響,提高視覺檢測精準度,本文提出了一種基于機器視覺的光照強度修正算法。首先采集大量不同大小不同光照強度已知實際尺寸的特征圖片,對圖片二值化并進行亞像素邊緣檢測,得到特征的基礎(chǔ)尺寸,然后對原圖的邊緣區(qū)域灰度直方圖進行廣義高斯擬合,獲得其均值、方差及衰減率作為特征向量,以基礎(chǔ)尺寸與實際尺寸的偏差值作為標簽進行支持向量回歸的訓(xùn)練。通過訓(xùn)練的模型對待檢測的特征即可獲得光強帶來的偏差從而進行修正,更加貼近真實值。
與傳統(tǒng)方法相比,結(jié)果顯示本文方法的檢測誤差減小了約50%,有效提高了檢測的正確性和精度,能夠更好的保證檢測零部件的質(zhì)量,且穩(wěn)定性較好。本文的方法僅適用于有一定量訓(xùn)練樣本的情況,有一定的局限性。下一步的研究工作將進一步提高訓(xùn)練樣本較少時的魯棒性和準確性,以便在更嚴格的檢測中應(yīng)用。