肖 劍,楊鈞宇,徐紫琪,張 凱,張 贊
(1.長安大學 電子與控制工程學院,西安 710064;2.西安科技大學 電氣與控制工程學院,西安 710054)
作為鋼筋機械連接的關鍵部分,螺紋鋼絲頭質量是影響建筑物整體質量的重要因素[1]。目前對于螺紋鋼絲頭檢測方法主要是采用人工檢測,根據《GB/T 197-2003》,螺紋鋼絲頭由檢測工人手持符合6f級精度的環規、測長儀和千分尺等儀器進行檢測[2]。但人工檢測存在主觀性,經常會發生漏檢、誤檢的情況,且檢測效率低、工作強度大,不利于對生產過程的質量安全控制[3]。
本文基于機器視覺[4]技術進行了螺紋鋼絲頭檢測方法的研究,通過對采集到的圖像數據進行預處理,并提取出重要的特征信息[5]。機器視覺方法受檢測環境影響較小、準確率高、效率高,同時檢測設備成本低,便于工業生產部署,適合工業螺紋鋼絲頭的檢測[6]。本文通過方差曲率角進行角點定位,提高了角點檢測精度,降低了偽角點對后續參數提取造成的影響。為了進一步提高測量精度,提出一種基于Sigmoid亞像素細分算法對邊緣像素進行細分。在中徑測量中,提出了一種基于自適應權重非線性收斂的鯨魚算法。本文實現了螺紋鋼絲頭角點的精確定位與尺寸參數的精確測量。
螺紋鋼絲頭檢測的內容主要包括對大徑、小徑、中徑、螺距等的檢測。如圖1所示,外螺紋的大徑、中經、小徑可表示為與外螺紋特征點重合的假想圓柱體的直徑[7]。

圖1 螺紋鋼絲頭的基本牙型與螺紋鋼絲頭示意圖
在圖1中,螺距P表示螺紋上相鄰兩牙在中徑線上對應兩點間的軸向距離;大徑d表示與外螺紋牙頂或內螺紋牙底相切的假想圓柱或圓錐的直徑;中徑d1表示螺紋鋼絲頭錐體母線通過牙型上溝槽和凸起寬度相等的地方;小徑d2表示與外螺紋牙底或內螺紋牙頂相切的假想圓柱或圓錐的直徑。
由于鋼絲頭存在油污及毛刺等,在進行角點定位時會出現偽角點,本文通過方差曲率角初步去掉部分偽角點。
選擇若干尺度對輪廓L(L={L1,L2,...Ln})上的每一點Pi(i=1,2,3...n)建立曲率角集合,根據式(1)分別對圓角點、尖角點進行曲率角的計算。在尺度逐漸減小時,圓角點曲率角減小,而尖角點曲率角基本保持不變[8,9]。

真實角點與偽角點在多尺度下的曲率角變化情況如圖2所示。

圖2 角點在多尺度下曲率角的變化情況
根據圖2可得,偽角點在多尺度下曲率角變化較大,真實角點在多尺度情況下變化較小,從而可以根據角點的曲率角方差情況對偽角點與真實角點點進行區分,方差計算表達式如式(2)所示:

式(2)中,θ(R)為在R尺度下曲率角的值,經過多次測試選取方差閾值為50時,能夠有效地過濾掉偽角點檢測出真實角點。圖3所示為經過方差閾值篩選后的角點檢測圖。

圖3 經過方差閾值篩選后的角點圖
為了進一步提高測量精度,通過Sigmoid亞像素細分算法對邊緣像素進行細分。在沒有噪聲干擾的狀態下,一個理想的邊緣灰度分布就可模擬成為一個階躍函數(一維條件下)如式(3)所示:

其中表示位于像素處的灰度值,h、k分別表示灰度背景與h灰度反差,R為設定值。然而圖像在形成過程中受到了模糊效應對視覺系統的影響,所以理想的階躍模型是不存在的,實際邊緣模型當中必定存在過渡區。
本文采用邊緣像素點為5鄰域的方式來對亞像素點進行求解,像素點灰度插值如圖4所示,由于所要分析的區域為上圖中的過渡區,所以將5×5兩邊端點進行連接,做該直線的法線,在法線兩邊各尋找三個點[10,11]。

圖4 像素點灰度插值
設點P的坐標為(x,y),到D點的距離為1。設A點坐標(M,N),則B、C、D點坐標為:

通過雙線性插值計算出P點的灰度值。Sigmoid函數圖像與灰度邊緣分布大致相同,因此本文采用Sigmoid函數來對邊緣進行擬合,Sigmoid的函數表達式如式(5)所示:

為了增強Sigmoid函數的多變性,需要將Sigmoid函數變型如式(6)所示:

式(6)中,a為放大或者縮小Sigmoid函數的S(x)的區間范圍,b為過渡區的陡峭程度,c為函數圖像在x軸的偏移量,d為函數圖像在y軸的偏移量。
對式(6)進行二次求導變形,得到如式(7)所示:

通過Sigmoid擬合,得出式中的參數a=170.67,b=2.654,c=4.075,d=22.6。根據式(12),計算出s(x)=107.953,所以亞像素點x的位置x=4.075,灰度擬合Sigmoid線如圖5所示。

圖5 灰度擬合Sigmoid圖
表1所示為選取的5個像素點坐標檢測情況。

表1 螺紋邊緣像素點數據
對表1中的數據進行分析后可以看出,圖像角點經過亞像素細分后,坐標可以精確至千分之一像素,證明亞像素提取可以有效對像素進行細分,進一步提高了角點定位精度。
1)螺紋絲頭大經和小徑測量方法:通過提取螺紋鋼絲頭圖像亞像素牙型角點,取絲頭兩側外角點,采用最小二乘法進行直線擬合。設左側外角點擬合直線l1為,右側外角點擬合直線l2為。由于加工螺紋產生的誤差以及圖像在采集、處理的誤差導致直線l1與l2不平行,因此通過計算點到直線距離求得螺紋鋼絲頭大徑長度。在l1選擇各牙型角點,計算出各點到l2的距離,然后計算各點距離的平均值。螺紋鋼絲頭大徑值表達式如式(8)所示。同理,可計算出小徑值。

2)螺距的測量方法:螺距為螺紋上相鄰兩牙在中徑線上對應兩點間的軸向距離。首先將螺紋鋼絲頭的牙側邊進行擬合,然后求擬合線與中徑的交點,以避免交點的不準確。假設中徑線與擬合直線相交于M、N兩點,坐標為(xm,ym),(xn,yn),則螺距表達式如式(9)所示:

在傳統方法中,測量中徑主要是通過確定軸線位置,來對中徑的位置進行推導。根據國標GB.T14791.201中中徑的定義,需要找到一條直線穿過牙型線,所得各個間距的距離相等時,此直線即為中徑線,中徑線測量示意圖如圖6所示。

圖6 中徑測量示意圖
由于理想中徑線幾乎不存在,并且軸線的位置是通過擬合得到的,存在著一定的誤差。本文對傳統中徑測量方法進行改進。設中徑線表達式為y=kx+b。該中徑線與各個牙型線的交點為集合x={x1,x2,…,xn},則每個間距之間的距離如式(10)所示:

式(10)中,l為間距平均距離,ki與bi代表第i條牙型線的斜率與截距,所以每個牙上的截距誤差如式(11)所示:

定義函數如式(12)所示:

式(12)中,f(k,b)為所有誤差的絕對值和,當取最小值時,對應的k與b就是中徑線的斜率與截距。上述函數式可以通過求偏導,計算它的極值,但是這種方法過于繁瑣,所以在本文采用改進的鯨魚優化算法來對中徑線進行求解。
1)鯨魚優化算法
鯨魚優化算法(The Whale Optimization Algorithm)[12]主要通過模擬鯨魚捕食行為來實現對復雜優化問題的尋優算法,鯨魚優化算法的數學模型主要分為三個階段:包圍獵物、發泡網攻擊和搜索捕食。
(1)包圍獵物
座頭鯨可以對獵物的位置進行識別,并且將其包圍,在定義最優位置后,其他座頭鯨將朝著最優位置靠近,位置更新方程如式(13)、式(14)所示:


式(15)、式(16)中,的取值范圍為[0,2],并且呈現一個遞減的形式,r為[0,1]上的隨機數。
(2)發泡網攻擊
發泡網攻擊主要分為收縮包圍機制與螺旋式位置更新機制。收縮包圍機制主要通過減少式(15)中的的值來實現的,當的值在迭代過程中由2減小至0時,而A的取值范圍為[-a,a],若A的取值在[-1,1]之間,則座頭鯨的游動位置位于當前位置與獵物位置之間,包圍過程如上式(13)所示。
在座頭鯨與獵物的位置建立一個螺旋方程,模擬座頭鯨的螺旋形運動,其表達式如式(17)所示:

考慮到座頭鯨在一個縮小的圓圈內繞著獵物游動,同時沿著螺旋型的路徑游動,為了模擬同時發生這種行為,將兩種圍捕策略的選擇概率設為50%用以更新座頭鯨位置,數學模型如式(18)所示:

式(18)中,p為[0,1]上的隨機數。
(3)搜索捕食
座頭鯨除上述氣泡網法搜索策略之外,還可以進行隨機搜索獵物,更新時以系數A的變化為基礎,若A超出[-1,1]范圍,距離D隨機更新,鯨魚個體為了找尋獵物,就會偏離原本目標,使得全局搜索能力提高,公式如式(19)、式(20)所示:

式(19)、式(20)中的Xrand為當前種群中隨機一個座頭鯨個體所在的位置。
上述WOA算法尋優方式存在容易陷入局部最優的情況,本文提出一種基于自適應權重非線性收斂的鯨魚優化算法,用來改善WOA算法的全局尋優能力和收斂速度。
1)收斂因子
在傳統WOA算法中,決定全局搜索和局部開發主要通過參數A,當算法以0.5的概率進行,當算法將進行全局搜索。由于傳統WOA收斂因子A為線性變化,不能很好地調節全局搜索能力及局部開發能力,所以本文引入非線性收斂因子,其表達式如式(21)所示:

式(21)中,i為迭代次數,Max_iter為最大迭代次數。
2)自適應權重
自適應權重的特點是當權重較大時,其搜索范圍較大;當權重較小時,可對局部進行精細化搜索。因此,在鯨魚接近目標時,利用權重較小時的特點改變最優鯨魚的位置,提高局部尋優的能力[13,14]。
本文在鯨魚優化算法的前期階段,選取一個線性微分遞減的權重w,在算法運行到中期甚至后期時,根據鯨魚自身的適應度進行調整權重值。在算法前期引入的權重表達式如式(22)所示:

式(22)中,wmax=0.9,wmin=0.2,i代表當前迭代次數,imax代表最大迭代次數。在算法迭代進入中后期時,選擇按照f(k,b)將這些鯨魚個體的值進行升序排序,然后求個體值的平均值favg,從而將個體值分為兩部分,分別求取出兩部分的個體平均值記為favg1與favg2。通過比較個體值與favg1與favg2的大小關系,將個體值分為三個集合,表達式如式(23)所示:

當fi(k,b)≤favg1,說明該部分的個體值優于平均個體值,此時鯨魚應該在小范圍內搜索,所以權重范圍取在[0.2,0.4]之內的隨機數。
當fi(k,b)>favg2,說明該部分的個體值略差于平均個體值,所以此時權重值應取較大值,有利于鯨魚個體在全局中搜索最優解,權重范圍應當在[1.2,1.4]之間。
當favg1<fi(k,b)≤favg2,說明該部分的個體值較為普通,所以此時的權重值與前期迭代方程相同,讓它按照原位置向著最優解靠近。
使用這種權重分配策略,使得權重不再選擇固定值,鯨魚在搜尋獵物的方式變得多樣化,能改善算法的求解精度、收斂速度。
為了驗證本文算法的性能,選取了相關測量函數,與傳統WOA算法、PSO算法進行對比。三種算法的種群值均設置為30,迭代次數為100。測試函數選擇如表2所示,本文解決問題的取值范圍通過參考大徑、小徑的斜率值與截距值進行設定,實驗結果對比圖如圖8所示。

表2 測試函數選擇
圖7與圖8為三種優化算法每個測試函數的性能比較,圖中橫坐標為迭代次數,縱坐標為最優解。從上述結果可以看出本文算法在最優解求解,算法收斂速度都明顯優于傳統WOA算法與PSO算法。

圖7 實驗結果對比圖

圖8 本文目標函數實驗結果
接下來將本文中徑測量方法與傳統中徑測量方法進行比較,中軸線的擬合表達式如(24)所示:

然后將中軸線擬合式在[109.4,179.5]范圍內進行平移,計算該軸線與各個牙型線的交點,通過式(12)計算相鄰間距的誤差絕對值和。
在求解本文問題上,本文算法計算的誤差絕對值和為0.2040,傳統中徑測量方法誤差絕對值和為0.5737,證明本方法在測量中徑優于傳統測量中徑方法。
為了驗證本文的螺紋鋼絲頭檢測方法在實際應用中的檢測效果,在滾絲加工現場進行算法精度的驗證。以大徑參數為例,選取一定數量參數已知的的螺紋鋼絲頭,在完成檢測后以檢測誤差的均值、最大值、最小值和均方根誤差(RMSE)為參考進行算法的精度分析,其中RMSE為:

式(25)中ξi表示第i件螺紋鋼絲頭的測量誤差,n為進行測量的螺紋鋼絲頭數目,Di為螺紋鋼絲頭檢測參數的測量值,Di’為螺紋鋼絲頭檢測的真實值,系統的標定系數k為0.02099mm/pixel。具體測量結果和誤差如表3所示。

表3 大徑檢測結果誤差表
由表3可知,系統尺寸檢測算法的測量精度最大誤差為0.114mm,滿足國標檢測的要求,檢測的最小誤差為0.018mm,均方根誤差為0.265mm,同時誤差檢測的平均誤差為0.061mm,滿足系統設計時的精度要求。
本文采用機器視覺技術對螺紋鋼絲頭檢測方法進行了研究,通過對預處理后的圖像進行角點篩選完成對螺紋鋼絲頭角點的精確定位,設計了基于Sigmoid亞像素細分算法,提高了角點檢測精度。提出了一種基于自適應權重非線性收斂的鯨魚算法,實現了對螺紋鋼絲頭尺寸特征信息的測量。試驗和測試結果表明,該方法的檢測精度滿足螺紋鋼絲頭加工要求,與傳統的檢測方法相比提高了檢測效率和準確度。