郭慶華 ,王家豪 ,宋麗梅 ,楊懷棟
(1.天津工業(yè)大學(xué) 電氣工程及自動化學(xué)院,天津 300387;2.清華大學(xué) 精密儀器系,北京 100084;3.伍倫貢大學(xué) 計算機、電氣工程與通信工程學(xué)院,伍倫貢 2500,澳大利亞)
目前,在生產(chǎn)制造業(yè)方面,工業(yè)機器人自動系統(tǒng)已發(fā)展得比較成熟,比如瑞士的ABB工業(yè)機器人系統(tǒng),日本的Nachi工業(yè)機器人系統(tǒng),都有一整套的解決方案.然而在產(chǎn)品檢測部分,尤其是高精度檢測部分,尚屬于國內(nèi)外學(xué)術(shù)界研究的熱點[1-4].檢測作為工業(yè)生產(chǎn)制造過程必不可少的環(huán)節(jié),正制約著生產(chǎn)自動化的發(fā)展.市場上主流的自動工業(yè)檢測設(shè)備大多采用激光或者光譜共聚焦設(shè)備,雖然精度很高,有些甚至能達(dá)到納米級的精度,但是造價高昂,而且其采集到的數(shù)據(jù)量龐大且冗余信息過多,從中提取感興趣區(qū)域ROI(region of interest)會耗費大量的時間,這直接影響了算法的優(yōu)化.所以基于計算機視覺的工業(yè)檢測方向一直是國內(nèi)外研究的前沿與熱點.在過去幾年中,大多數(shù)研究都集中在產(chǎn)品外觀、包裝以及大中型工業(yè)部件表面曲率是否合格、產(chǎn)品凹坑、加工精度是否符合要求等方面,對于螺釘、鉚釘這類涉及精度較高的微小零部件的檢測還很少有人研究[5].
2010年Kosarevsky等[6]提出了利用3D掃描儀對螺釘滑絲情況的檢測,并給出了評價方法.2013年Latypov等[7]在Sergey Kosarevsky基礎(chǔ)上進(jìn)行了點云重建并提出了新的評價方法.2016年,Cha等[8]基于霍夫變換和支持向量機實現(xiàn)了對螺釘松脫方面的檢測與測量.由此可以看出,使用機器視覺的檢測系統(tǒng)的被測對象正向著小型化、高精度的方向發(fā)展.然而傳統(tǒng)的基于機器視覺的檢測方法準(zhǔn)確度低,且傳統(tǒng)的支持向量機算法需要多輪迭代才能收斂,需要較長的學(xué)習(xí)時間[9].基于此,本文提出利用計算機視覺結(jié)合改進(jìn)logistic回歸分類器對螺釘滑牙進(jìn)行檢測的方法,并搭建出基于此方法的測量系統(tǒng),以解決傳統(tǒng)機器視覺方法精度低、采用機器學(xué)習(xí)算法訓(xùn)練時間過長等問題.
本研究采用型號為PointGrayGS3-U3-51S5M的工業(yè)CCD相機,鏡頭為Schneider 11 mm焦距鏡頭,當(dāng)被測物體表面與相機距離為28.3 cm時取得最佳成像,經(jīng)實驗測得,每像素代表的實際大小為0.010 4 mm.本系統(tǒng)選用條形光源進(jìn)行補光.實驗平臺如圖1所示.
圖1 實驗平臺示意圖Fig.1 Sketch map of experiment platform
系統(tǒng)工作流程如圖2所示.
圖2 工作流程圖Fig.2 System flow chart
(1)圖像預(yù)處理部分:主要對CCD采集的圖像進(jìn)行濾波,在去除噪聲的同時增強圖像邊緣,提高ROI提取的精度.
(2)ROI提取部分:首先對預(yù)處理后的圖像進(jìn)行閾值二值化,然后進(jìn)行霍夫圓變換,提取螺釘?shù)奈恢?
(3)特征提取部分:計算每個ROI處的Hu矩.
(4)判斷預(yù)測部分:用訓(xùn)練好的Logistic回歸分類器對輸入的7個Hu矩進(jìn)行判斷.
2.2.1 ROI提取算法
在ROI提取方面,主要采用了霍夫變換的方法,將圖像中特定大小的圓(即螺釘)的圓心位置、半徑求出,即確定了ROI區(qū)域.
霍夫變換是一種基于投票累加器的算法[10],對于霍夫圓變換的參數(shù)方程為:
由式(1)可見,由于方程含有3個未知量,如果構(gòu)建累加器則需要3個維度.為了節(jié)約時間及算法對內(nèi)存的占用,將霍夫圓變換分為2個步驟[11]:首先引入一個檢測圓心(ai,bi)的累加器.使用一個邊緣探測器檢測圓心周圍明顯的邊緣點.由于圓周上的邊緣點的梯度應(yīng)該指向半徑方向,所以,在找到可能的圓心的情況下,建立一維的半徑直方圖,則直方圖峰值對應(yīng)的是檢測到的圓的半徑.
2.2.2 特征提取算法
不變矩是由Hu提出的,其利用中心矩構(gòu)造出7個不變量,能夠?qū)^(qū)域形狀進(jìn)行描述,而且具有平移、比例、旋轉(zhuǎn)不變性,在計算機視覺中是一種十分重要的特征描述方法[12].
對于分布為f(x,y)的灰度圖像,定義其(p+q)階矩為[13]:
且對應(yīng)的中心矩定義為:
由于數(shù)字圖像的分布是不連續(xù)的,所以將矩函數(shù)與中心矩函數(shù)離散化:
定義歸一化中心矩為:
Hu利用二階、三階中心矩構(gòu)造出了7個不變矩,其在連續(xù)圖像條件下可保持圖像平移、縮放、旋轉(zhuǎn)不變性[14].具體定義如下:
2.2.3 分類判別算法
Logistic回歸是業(yè)界最常用的分類器之一,其對線性可分的數(shù)據(jù)有良好的分類效果與分類精度[15-16].Logistic回歸工作原理如圖3所示.
圖3 Logistic回歸原理簡圖Fig.3 Schematic diagram of Logistic regression
定義數(shù)據(jù):X=[x0,x1,x2,x3…xn],其中 n 為特征維度.類別標(biāo)簽
網(wǎng)絡(luò)輸入:
式中:W=[w0,w1,w2,w3,…,wn]為權(quán)重參數(shù).Logistic 回歸的目標(biāo)即訓(xùn)練出權(quán)重參數(shù)W使得分類錯誤率最低.
激活函數(shù):
Logistic回歸的學(xué)習(xí)過程就是不斷地更新權(quán)重W直到其收斂.傳統(tǒng)的Logistic回歸參數(shù)更新過程為:
式中:σ為學(xué)習(xí)率;ΔJ(W)為損失函數(shù)的梯度.Logistic回歸的損失函數(shù)被定義為log-likelihood函數(shù)的最小值:
在傳統(tǒng)的Logistic回歸學(xué)習(xí)過程中,如何選取合適的σ值成為至關(guān)重要的問題,學(xué)習(xí)率過小會導(dǎo)致收斂過程變慢,需要更多的迭代次數(shù),學(xué)習(xí)率過大會造成更新過程發(fā)散.
然而,在實際應(yīng)用中,數(shù)據(jù)中的每個特征對分類的影響是不同的,對影響較大的特征使用較大的學(xué)習(xí)率勢必會造成學(xué)習(xí)過程中的發(fā)散,而對于影響較小的特征使用較小的學(xué)習(xí)率也會造成更新過程收斂較小.因此,本文提出使用自適應(yīng)學(xué)習(xí)權(quán)重?=[?1,?2,…,?n]重寫參數(shù)更新過程:
首先計算整體數(shù)據(jù)集的香農(nóng)熵:
式中:P(xi)為分類標(biāo)簽i的樣本數(shù)目占總樣本數(shù)目之比;n為分類標(biāo)簽數(shù)目.
對于特征F,遍歷整個數(shù)據(jù)集,尋找F對數(shù)據(jù)集的最佳劃分,使得信息增益IG最大化,信息增益的定義為:
利用 IG 表征特征對分類的影響,[?1,?2,…,?n]可由式(21)計算:
在本次實驗過程中,一共采集了不同光強下的53張圖片,每張圖片有3~10個數(shù)量不等的螺釘,用于分類器訓(xùn)練.
已經(jīng)實驗測得每像素代表的實際大小為0.010 4 mm,對于直徑為5~8 mm的螺釘,可算出其在圖像中的半徑大小約為240~385像素.所以設(shè)定霍夫圓變換最小檢測圓半徑為200像素.樣片霍夫變換提取結(jié)果如圖4所示.
圖4 樣片霍夫變換結(jié)果Fig.4 Hough transform result of samples
在計算Hu矩之前要先提取螺釘中心紋理處的輪廓,然后計算7個Hu矩,樣片中各螺釘?shù)腍u矩如表1所示,單位為像素.
表1 樣片中螺釘?shù)腍u矩計算結(jié)果Tab.1 Hu moments result of screws in sample
首先進(jìn)行l(wèi)ogistic回歸分類器的訓(xùn)練,將53張圖片共357個螺釘樣本分為測試樣本與訓(xùn)練樣本,計算各特征的最大化信息增益,結(jié)果如表2所示.
表2 各特征的最大化信息增益Tab.2 Maximization of information gain for each feature
由表 2 可知,I2、I4、I6對螺釘分類的影響較大.然后將最大化信息增益的倒數(shù)歸一化,作為自適應(yīng)學(xué)習(xí)權(quán)重.分別取σ=0.1與σ=0.01并迭代500次,作為對比,分別繪制本文提出的自適應(yīng)學(xué)習(xí)權(quán)重隨機梯度下降法與傳統(tǒng)的隨機梯度下降法的損失函數(shù)輸出,如圖5和圖6所示.
圖5 σ=0.01時損失函數(shù)輸出Fig.5 Loss function output at σ=0.01
圖6 σ=0.1時損失函數(shù)輸出Fig.6 Loss function output at σ=0.1
由圖5和圖6可以看出,當(dāng)學(xué)習(xí)率取0.01時,傳統(tǒng)隨機梯度下降法需要迭代151步才能開始收斂,而本文自適應(yīng)學(xué)習(xí)權(quán)重隨機梯度下降法迭代到33步時已經(jīng)開始收斂,提高了收斂速度;當(dāng)學(xué)習(xí)率取0.1時,傳統(tǒng)方法因?qū)W習(xí)率過大而發(fā)散,而本文方法迭代到35步時依然能開始收斂.因此,與傳統(tǒng)的隨機梯度下降法相比,當(dāng)學(xué)習(xí)率取值較小時,自適應(yīng)學(xué)習(xí)權(quán)重隨機梯度下降法有更快的收斂速度,同時當(dāng)學(xué)習(xí)率取值偏大時也能很好的收斂.
然后用測試樣本分別測試訓(xùn)練好的Logistic回歸分類器,求出其分類準(zhǔn)確度.測試樣本集總數(shù)為100,基于自適應(yīng)學(xué)習(xí)權(quán)重隨機梯度下降法錯分類數(shù)為4,準(zhǔn)確度為96%.傳統(tǒng)隨機梯度下降法的Logistic回歸分類器錯分類數(shù)為5,準(zhǔn)確率為95%.
(1)σ=0.01時,本文提出的改進(jìn)Logistic回歸分類算法迭代33步后開始收斂,而傳統(tǒng)方法需迭代151步;σ=0.1時,本文方法需迭代35步后開始收斂,而傳統(tǒng)方法因?qū)W習(xí)率過大而發(fā)散.因此,與傳統(tǒng)的Logistics回歸分類器相比:在選取同樣的學(xué)習(xí)率σ時,本文提出的改進(jìn)Logistic回歸分類算法能更快地收斂,需要較少的迭代次數(shù);對于過大或過小的學(xué)習(xí)率,在滑牙檢測中依然有穩(wěn)定的迭代收斂次數(shù).
(2)在減少訓(xùn)練過程的迭代次數(shù)的同時,本文提出的改進(jìn)Logistic回歸分類算法的分類準(zhǔn)確率為96%,而傳統(tǒng)的Logistic回歸分類算法準(zhǔn)確率為95%,二者有著相近的預(yù)測準(zhǔn)確度.