国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于機(jī)器視覺的螺紋計(jì)數(shù)方法研究

2024-01-05 05:42:46易煥銀
關(guān)鍵詞:波谷中軸線波峰

易煥銀

(廣東交通職業(yè)技術(shù)學(xué)院,廣東 廣州 510650)

1 引言

作為一種常見的連接緊固零件,螺釘由于具有結(jié)構(gòu)簡單、價(jià)格低廉、連接可靠等特點(diǎn),在工程、工業(yè)、電子等領(lǐng)域有著不可取代的地位[1]。不合格的螺紋可能導(dǎo)致產(chǎn)品、機(jī)構(gòu)甚至整個(gè)系統(tǒng)失效,因此需要對(duì)螺紋的參數(shù)進(jìn)行嚴(yán)格管控[2]。螺紋數(shù)目是重點(diǎn)監(jiān)控的參數(shù)之一,手工計(jì)數(shù)工作量大、效率低且難以保障測量結(jié)果的可靠性和一致性。關(guān)于螺紋的視覺檢測,張昊[3]提出了一種基于角點(diǎn)檢測和支持向量機(jī)的外螺紋參數(shù)檢測方法;吳智峰等[4]使用高倍遠(yuǎn)心鏡頭測量礦山鉆孔所用的鉆桿接頭外螺紋;周策策等[5]采用旋轉(zhuǎn)工件和相機(jī)跟拍來測量螺紋參量;田野等[6]提出了一種基于機(jī)器視覺的內(nèi)螺紋檢測方法;包能勝等[7]提出了一種對(duì)連續(xù)運(yùn)動(dòng)螺紋的尺寸進(jìn)行檢測的機(jī)器視覺方法;李晉惠等[8]設(shè)計(jì)了一種基于雙遠(yuǎn)心光學(xué)系統(tǒng)的外螺紋參數(shù)視覺測量系統(tǒng)。劉文龍[9]設(shè)計(jì)了一種能夠自動(dòng)進(jìn)行螺紋計(jì)數(shù)的設(shè)備,但該設(shè)備基于物理接觸式測量螺紋數(shù),相對(duì)于視覺測量方法效率較低,且該設(shè)備結(jié)構(gòu)較為復(fù)雜,包括機(jī)臺(tái)、由伺服電機(jī)驅(qū)動(dòng)的線性滑臺(tái)、軟軸固定座、計(jì)數(shù)頭和控制裝置等,一定程度上限制了該設(shè)備的應(yīng)用范圍。

針對(duì)人工檢測的不足、目前公開的自動(dòng)螺紋計(jì)數(shù)設(shè)備存在型號(hào)適應(yīng)性較弱且需對(duì)工件的位置進(jìn)行控制等問題,本文以對(duì)螺釘兩側(cè)部分螺紋近似直線的檢測為出發(fā)點(diǎn),以根據(jù)螺紋邊沿點(diǎn)到中軸線距離的變化趨勢(shì)來定位螺紋波峰點(diǎn)和波谷點(diǎn)為突破口,提出了一種快速對(duì)螺釘螺紋進(jìn)行計(jì)數(shù)的機(jī)器視覺方法?;谠摲椒▽?shí)現(xiàn)的螺紋計(jì)數(shù)系統(tǒng)運(yùn)行時(shí)只需拍攝一張圖片即可在50 ms左右完成螺紋計(jì)數(shù),且系統(tǒng)自動(dòng)適應(yīng)螺釘型號(hào)、擺放角度和位置的變化。

2 方法設(shè)計(jì)

2.1 圖像采集

系統(tǒng)包括上位機(jī)、工業(yè)相機(jī)、鏡頭和LED背光光源。上位機(jī)與工業(yè)相機(jī)連接,LED背光光源的亮度可調(diào),用于建立光照環(huán)境;工業(yè)相機(jī)和鏡頭用于獲取工件圖像;上位機(jī)用于控制工業(yè)相機(jī)進(jìn)行圖像采集和算法的運(yùn)行與結(jié)果顯示。選型方面,系統(tǒng)采用500萬像素國產(chǎn)CMOS面陣黑白相機(jī)和國產(chǎn)LED背光源,鏡頭采用日本某公司生產(chǎn)的25 mm工業(yè)鏡頭。圖1a為系統(tǒng)采集到的螺釘原圖。

(a)采集到的螺釘原圖

2.2 圖像預(yù)處理

圖像預(yù)處理用于提取螺釘?shù)倪呇夭⑷コ尘霸肼暋J紫?對(duì)原圖進(jìn)行反向二值化,得到二值圖像,由式(1)得到。

(1)

式中T為經(jīng)實(shí)驗(yàn)得到的最優(yōu)閾值,實(shí)驗(yàn)中T取245。對(duì)圖像gb(x,y)以半徑2像素圓盤形結(jié)構(gòu)元素為參數(shù)進(jìn)行形態(tài)學(xué)開運(yùn)算以去除孤立的小毛刺,得到結(jié)果圖記為g0(x,y)。再以半徑1像素圓盤形結(jié)構(gòu)元素為參數(shù)進(jìn)行形態(tài)學(xué)腐蝕運(yùn)算,得到結(jié)果圖記為ge(x,y)。再與腐蝕前圖像相減,如式(2)所示,得1像素寬度的螺紋邊沿圖像記為gt(x,y)。最后對(duì)gt(x,y)進(jìn)行連通域分析后保留面積最大的連通域,得到去除噪聲后的邊沿圖像,記為g(x,y),結(jié)果如圖1b所示。此部分獲取較細(xì)的螺紋邊沿是為了提高后續(xù)邊沿遍歷的速度和保證所獲取螺紋波峰點(diǎn)和波谷點(diǎn)的準(zhǔn)確性。

gt(x,y)=go(x,y)-ge(x,y)

(2)

2.3 螺紋兩側(cè)邊沿直線和中軸線獲取

最初的方案為一次性檢測左右兩側(cè)的螺紋邊沿直線段。但在批量測試過程中發(fā)現(xiàn),該方案在一些測試用例中只能檢測到一條直線。經(jīng)分析,其原因是當(dāng)左右兩側(cè)直線段得分相差較大時(shí),hough直線檢測函數(shù)會(huì)過濾掉其中一條直線。本方法采用了兩次hough直線檢測的方案,把首先檢測到的那條直線段周圍區(qū)域的邊沿點(diǎn)屏蔽,再檢查另一邊的直線段。

1)檢測螺紋一側(cè)的邊沿直線,結(jié)果如圖2a所示。對(duì)圖1b中的,首先采用概率霍夫變換[10]進(jìn)行直線檢測,然后合并距離相近且夾角較小的線段并保留最長的線段L1,該線段的兩個(gè)端點(diǎn)記為P1、P2。

(a)hough直線檢測得到的一側(cè)邊沿直線L1

2)屏蔽L1周圍區(qū)域的邊沿點(diǎn),結(jié)果如圖2b所示。屏蔽方法:以P1、P2為起止點(diǎn)繪制一定像素寬度(實(shí)驗(yàn)中取20)的背景色直線,結(jié)果如圖2b所示。

3)首先,用步驟1)相同的方法對(duì)圖2b進(jìn)行直線檢測,得到另一側(cè)的直線段L2,并將L2與L1的兩個(gè)端點(diǎn)調(diào)整為同一方向。然后,求取兩線段的中線,得到螺紋中線L3,結(jié)果如圖2c所示。

2.4 螺紋波峰點(diǎn)和波谷點(diǎn)獲取

1)以P1為起始點(diǎn)按連通域關(guān)系依次遍歷螺紋的所有邊沿點(diǎn)(利用隊(duì)列結(jié)構(gòu)),并保存邊沿點(diǎn)的坐標(biāo)和到中軸線的距離信息。根據(jù)邊沿點(diǎn)到中軸線L3距離公式中加絕對(duì)值運(yùn)算前的計(jì)算結(jié)果的正負(fù),將直線左右兩邊的邊沿點(diǎn)分開,并將點(diǎn)坐標(biāo)和距離絕對(duì)值信息按順序分別保存到結(jié)構(gòu)體數(shù)組points_pos和points_neg中。式(3)為L3的直線方程,邊界點(diǎn)到中軸線L3的距離由式(4)表示,其中(x0,y0)為邊界點(diǎn)的坐標(biāo)。

Ax+By+C=0

(3)

(4)

因?yàn)楸舅惴ㄖ挥玫较鄬?duì)距離,所有邊界點(diǎn)到中軸線的距離公式的分母都為同一值,所以計(jì)算時(shí)舍棄除以分母的操作以提高速度。將Ax0+By0+C>0的邊界點(diǎn)的坐標(biāo)及到L3的距離保存到points_pos結(jié)構(gòu)體數(shù)組中,將Ax0+By0+C>0的邊界點(diǎn)的坐標(biāo)及到L3的距離保存到points_neg結(jié)構(gòu)體數(shù)組中。

2)將points_pos和points_neg結(jié)構(gòu)體數(shù)組中保存的距離進(jìn)行均值濾波處理以降低噪聲邊沿點(diǎn)的干擾,以當(dāng)前點(diǎn)前后K個(gè)點(diǎn)的值為參數(shù)(實(shí)驗(yàn)中K取5),均值濾波由式(5)表示。

(5)

3)分別以points_pos和points_neg結(jié)構(gòu)體數(shù)組為對(duì)象搜索螺紋波峰點(diǎn)和波谷點(diǎn),方法是判斷絕對(duì)上升個(gè)數(shù)和絕對(duì)下降個(gè)數(shù)的數(shù)量是否均達(dá)到預(yù)設(shè)閾值。

以結(jié)構(gòu)體數(shù)組points_pos中的波峰點(diǎn)檢測為例,從points_pos中的第2個(gè)邊沿點(diǎn)開始到最后一個(gè)邊沿點(diǎn)為止,以當(dāng)前點(diǎn)到中軸線距離與前一個(gè)點(diǎn)到中軸線距離相比較來判斷變化的趨勢(shì),共有三種情況:上升、下降或維持不變。若待檢測點(diǎn)左側(cè)絕對(duì)上升的邊沿點(diǎn)計(jì)數(shù)數(shù)目up_N達(dá)到N個(gè)(螺紋波動(dòng)幅度越大閾值N越大),且右側(cè)絕對(duì)下降的邊沿點(diǎn)計(jì)數(shù)數(shù)目down_N也達(dá)到N個(gè),則判定該點(diǎn)為波峰點(diǎn)。

下面以圖3中的三種情況為例詳細(xì)說明搜索波峰點(diǎn)的具體操作方法,波谷點(diǎn)的判斷方法與波峰點(diǎn)類似。

圖3 搜索波峰點(diǎn)的三種情況

圖3a為最常見的情況,即先連續(xù)上升再連續(xù)下降的邊沿點(diǎn)數(shù)目都大于閾值N。達(dá)到局部頂點(diǎn)A點(diǎn)時(shí)up_N大于N,然后到達(dá)B點(diǎn)時(shí)down_N達(dá)到N,即可判斷A點(diǎn)為波峰點(diǎn),并將A點(diǎn)加入到峰值點(diǎn)集合中。

圖3b為遍歷過程中有局部變化出現(xiàn)反復(fù)相反趨勢(shì)的情況。由于遍歷到局部頂點(diǎn)A時(shí)的up_N大于N,故將A點(diǎn)標(biāo)記為候選峰值點(diǎn)。但達(dá)到局部低谷點(diǎn)B時(shí)down_N未達(dá)到閾值N,候選峰值點(diǎn)A未能判為波峰點(diǎn)。而到局部頂點(diǎn)C點(diǎn)后趨勢(shì)變?yōu)橄陆?此時(shí)up_N大于A點(diǎn)時(shí)的up_N,因此C點(diǎn)代替A點(diǎn)成為新的候選峰值點(diǎn)。C點(diǎn)到D點(diǎn)之間為下降趨勢(shì),其間down_N從C點(diǎn)開始每遍歷一個(gè)點(diǎn)down_N自增1,up_N自減1(若減到0則不再變化)。由于達(dá)到D點(diǎn)時(shí)down_N未達(dá)到閾值N,因此候選峰值點(diǎn)C點(diǎn)此時(shí)未能判為峰值點(diǎn)。此后D點(diǎn)到E點(diǎn)之間趨勢(shì)變?yōu)樯仙?其間每遍歷一個(gè)點(diǎn)up_N自增1,down_N自減1(若減到0則不再變化)。直到E點(diǎn)后一個(gè)點(diǎn)的趨勢(shì)變?yōu)橄陆?因?yàn)榇藭r(shí)up_N小于C點(diǎn)時(shí)的up_N,所以E點(diǎn)未能代替C點(diǎn)成為新的候選峰值點(diǎn)。E點(diǎn)到F點(diǎn)之間為下降趨勢(shì),其間每遍歷一個(gè)點(diǎn)down_N自增1,up_N自減1。當(dāng)遍歷至F點(diǎn)時(shí)down_N達(dá)到閾值N,因此將候選峰值點(diǎn)C點(diǎn)判為峰值點(diǎn),并將C點(diǎn)加入到峰值點(diǎn)集合中。

圖3c為達(dá)到峰值A(chǔ)點(diǎn)后趨勢(shì)為維持不變的情況,此時(shí)需同時(shí)記錄達(dá)到峰值后趨勢(shì)維持不變的最后一個(gè)點(diǎn)B點(diǎn)(根據(jù)遍歷到B點(diǎn)的后一個(gè)點(diǎn)時(shí)趨勢(shì)變?yōu)橄陆祦砼袛?,當(dāng)遍歷到C點(diǎn)時(shí)down_N已經(jīng)達(dá)到閾值N,此時(shí)將候選峰值點(diǎn)A點(diǎn)和B點(diǎn)的中間位置X點(diǎn)判為峰值點(diǎn),并將X點(diǎn)加入到峰值點(diǎn)集合中。

4)刪除偽波峰點(diǎn)和偽波谷點(diǎn)。圖4中的空心圓點(diǎn)和實(shí)心圓點(diǎn)分別為搜索到的波峰點(diǎn)和波谷點(diǎn)。由圖中可見,所得到的波峰點(diǎn)和波谷點(diǎn)中存在少部分誤判點(diǎn)。圖中將誤判點(diǎn)標(biāo)注為3類,其特點(diǎn)分別為:1類和2類偽點(diǎn)并非在L1、L2兩條邊界線附近,1類偽點(diǎn)距離中軸線過近,2類偽點(diǎn)距離中軸線過遠(yuǎn);3類偽點(diǎn)在邊界線L1、L2附近,但其兩側(cè)的波動(dòng)幅度較小,不構(gòu)成螺紋的波峰和波谷,而且該類偽波峰點(diǎn)和偽波谷點(diǎn)經(jīng)常以相鄰成對(duì)的形式出現(xiàn)。①清除1類和2類偽波峰點(diǎn)和偽波谷點(diǎn)的方法:分別計(jì)算波峰點(diǎn)、波谷點(diǎn)到中軸線L3的平均距離,刪除與平均距離偏差過大的波峰點(diǎn)和波谷點(diǎn)。②清除3類偽波峰點(diǎn)和偽波谷點(diǎn)的方法:計(jì)算波峰點(diǎn)、波谷點(diǎn)到中軸線L3的平均距離,其差值記為GAP,若相鄰波峰點(diǎn)和波谷點(diǎn)的差值<β×GAP(實(shí)驗(yàn)中β取0.2),則刪除這一對(duì)鄰波峰點(diǎn)和波谷點(diǎn)。

圖4 搜索得到的波峰點(diǎn)和波谷點(diǎn)

2.5 螺紋計(jì)數(shù)與結(jié)果顯示

首先,按式(6)計(jì)算螺紋數(shù)c,其中a、b分別為波峰點(diǎn)和波谷點(diǎn)的數(shù)量。

(6)

然后,根據(jù)中軸線L3與螺紋邊沿的兩個(gè)交點(diǎn)確定螺釘?shù)拈L度,并根據(jù)螺釘長度和螺紋數(shù)c確定螺釘?shù)男吞?hào)。最后,獲取該型號(hào)的螺紋數(shù)的預(yù)設(shè)閾值,并根據(jù)測量值是否在閾值范圍內(nèi)判斷該螺釘是否通過檢測。檢測結(jié)果如圖5所示,圖中小圓點(diǎn)為波峰點(diǎn)和波谷點(diǎn)。

圖5 檢測結(jié)果的圖像顯示

3 算例

以M6×50、M6×40、M5×40、M4×30、M3×30共5個(gè)型號(hào)的螺釘為實(shí)驗(yàn)對(duì)象(前一組數(shù)據(jù)表示螺紋外徑,后一組數(shù)據(jù)表示螺紋長度),分別進(jìn)行100次測試,共得到500組實(shí)驗(yàn)數(shù)據(jù),統(tǒng)計(jì)信息如表1所示。算法運(yùn)行速度方面,在測試筆記本電腦上(型號(hào):華碩FX86F,CPU主頻:2.2GHz,RAM:8G)運(yùn)行,用OpenCV實(shí)現(xiàn)的該算法對(duì)2448*2048的采集圖像(500萬像素)的平均運(yùn)行速度為50.31 ms。

表1 測試螺紋信息

實(shí)驗(yàn)結(jié)果顯示,算法的螺紋計(jì)數(shù)誤差為±1個(gè)螺紋,測量均值與真實(shí)值最大相差0.23個(gè)螺紋(型號(hào)為M5×40),最大方差為0.448(型號(hào)為M4×30),說明本方法對(duì)螺紋數(shù)目的測量準(zhǔn)確度較高。引起誤差的主要原因是,本方法基于二維視覺,兩端的螺紋在不同旋轉(zhuǎn)視角下的成像起伏變化較大,從而引起波峰點(diǎn)和波谷點(diǎn)數(shù)目的波動(dòng),導(dǎo)致螺紋計(jì)數(shù)出現(xiàn)1個(gè)左右的差異。

4 結(jié)論

針對(duì)目前的螺紋計(jì)數(shù)方法和設(shè)備檢測效率低、適應(yīng)性較弱等不足,提出了一種基于機(jī)器視覺的快速螺紋計(jì)數(shù)方法,包括如下步驟:①通過兩次hough直線檢測得到螺紋兩側(cè)的邊沿直線進(jìn)而獲得螺釘中軸線;②根據(jù)邊沿點(diǎn)的連通關(guān)系遍歷螺紋邊沿點(diǎn)及由各邊沿點(diǎn)到中軸線的距離的變化趨勢(shì)得到螺紋的波峰點(diǎn)和波谷點(diǎn);③計(jì)算得到螺紋數(shù)。通過算例實(shí)驗(yàn)驗(yàn)證,該方法運(yùn)行速度較快(50 ms左右)、精度較高(±1個(gè)螺紋波動(dòng)),自動(dòng)適應(yīng)工件擺放位置、角度和型號(hào)的變化,降低了人工檢測的工作強(qiáng)度并提高了檢測的效率。

猜你喜歡
波谷中軸線波峰
漫畫北京中軸線(三)
《穿越北京中軸線》簡介
行走中軸線 尋找城市靈魂
中國收藏(2023年6期)2023-06-08 21:13:31
板厚與波高對(duì)波紋鋼管涵受力性能影響分析
梅緣稻
作用于直立堤墻與樁柱的波峰高度分析計(jì)算
兒童標(biāo)準(zhǔn)12導(dǎo)聯(lián)T波峰末間期的分析
基于音節(jié)時(shí)間長度高斯擬合的漢語音節(jié)切分方法
Dynamic Loads and Wake Prediction for Large Wind Turbines Based on Free Wake Method
北京中軸線掠影
托里县| 新和县| 井陉县| 蛟河市| 泰来县| 昌宁县| 黄石市| 慈溪市| 丘北县| 鸡东县| 永平县| 岳西县| 弥勒县| 佛教| 鄢陵县| 巴彦县| 肥西县| 九江市| 道孚县| 泸水县| 丹寨县| 临桂县| 赤壁市| 潢川县| 舞阳县| 赤城县| 读书| 大渡口区| 乐清市| 迭部县| 汉寿县| 台东县| 临高县| 达日县| 穆棱市| 织金县| 霸州市| 漠河县| 镇赉县| 桐柏县| 南阳市|