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

?

基于霍夫變換和Canny 算子的表殼中心定位方法

2022-10-31 11:31劉雙龍金曉怡范瑜奚鷹
關(guān)鍵詞:表殼圖像處理邊緣

劉雙龍,金曉怡,范瑜,奚鷹

(1.201620 上海市 上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院;2.201804 上海市 同濟(jì)大學(xué) 機(jī)械與能源工程學(xué)院)

0 引言

機(jī)器視覺(jué)發(fā)展至今,已不是單一的應(yīng)用產(chǎn)品。機(jī)器視覺(jué)的軟硬件產(chǎn)品已逐漸成為生產(chǎn)制造各個(gè)階段的必要部分,這對(duì)系統(tǒng)的集成性提出了更高的要求[1-2]。企業(yè)需要能夠與測(cè)試或控制系統(tǒng)協(xié)同工作的一體化工業(yè)自動(dòng)化系統(tǒng),而非獨(dú)立的視覺(jué)應(yīng)用[3]。在現(xiàn)代自動(dòng)化生產(chǎn)過(guò)程中,機(jī)器視覺(jué)系統(tǒng)廣泛用于工況監(jiān)視、成品檢驗(yàn)和質(zhì)量控制等領(lǐng)域。

工業(yè)領(lǐng)域中,視覺(jué)定位可以實(shí)現(xiàn)目標(biāo)產(chǎn)品的自動(dòng)化,例如,搬運(yùn)、定位、焊接等[4]。市面上MATLAB、OpenCV、LabVIEW、HALCON 等成熟的軟件都可用于視覺(jué)定位。視覺(jué)定位方法有很多,按傳感器的數(shù)量多少可分為單目視覺(jué)定位、雙目視覺(jué)定位以及全方位視覺(jué)定位[5]。當(dāng)前,學(xué)者們較多研究的還是單目視覺(jué)定位算法,本文中也選擇了單目識(shí)別進(jìn)行手表表殼中心定位。

1 視覺(jué)系統(tǒng)設(shè)計(jì)與搭建

完整的視覺(jué)系統(tǒng)包括4 個(gè)主要部分:光學(xué)系統(tǒng)、圖像采集設(shè)備、圖像處理系統(tǒng)和執(zhí)行系統(tǒng)。在開發(fā)圖像處理算法之前,設(shè)計(jì)和構(gòu)建合適的機(jī)器視覺(jué)系統(tǒng)是很有必要的。一個(gè)好的視覺(jué)系統(tǒng)可以減少環(huán)境對(duì)圖像采集系統(tǒng)的干擾,并且能夠簡(jiǎn)化圖像處理算法,降低對(duì)算法處理隨機(jī)噪聲的系統(tǒng)要求。

1.1 圖像采集設(shè)備

圖像采集設(shè)備一般選用工業(yè)相機(jī)或者支持二次開發(fā)的攝像頭。二者當(dāng)中,工業(yè)相機(jī)支持超高清晰度圖像的采集,但由于本文中的視覺(jué)算法對(duì)清晰度的要求不是很高,所以選定性價(jià)比較高的銳爾威視的RERUSB100W03M型攝像頭做圖像采集設(shè)備,其最高有效像素為1 280(H)×720(V),支持幀率是30 fps。

1.2 圖像處理系統(tǒng)

本文選用的圖像處理硬件系統(tǒng)為聯(lián)想G50-80筆記本電腦,使用Visual Studio 2017 編譯環(huán)境配置OpenCV 4.1.2。圖像采集設(shè)備與圖像處理系統(tǒng),即攝像頭與電腦之間采用USB3.0 High Speed 接口連接,實(shí)現(xiàn)圖像數(shù)據(jù)交換。

1.3 執(zhí)行系統(tǒng)

本研究?jī)H涉及機(jī)器視覺(jué)的算法部分,而依照工廠實(shí)際要求,每個(gè)手表殼的中心坐標(biāo)及偏轉(zhuǎn)角度是需要獲得的主要信息,由視覺(jué)系統(tǒng)向后續(xù)執(zhí)行系統(tǒng)提供。執(zhí)行系統(tǒng)的搭建不在本文的討論范圍之內(nèi)。

1.4 光學(xué)系統(tǒng)

光學(xué)系統(tǒng)提供與工況相似的照明環(huán)境,以便收集工件的圖像信息。圖像采集設(shè)備會(huì)受到工廠內(nèi)光照條件和人員移動(dòng)等因素的影響,造成拍照環(huán)境不穩(wěn)定,并且很可能會(huì)進(jìn)一步干擾圖像處理的結(jié)果。

另外,光學(xué)系統(tǒng)也是為了保證視覺(jué)系統(tǒng)識(shí)別任務(wù)的準(zhǔn)確性和穩(wěn)定性。本文中的手表殼表面還沒(méi)有經(jīng)過(guò)拋光處理,所以需要利用良好的照明來(lái)提高亮度。本文應(yīng)用的算法僅需分辨手表殼輪廓,對(duì)采集到的圖像質(zhì)量要求不高,所以選用白色光源為表殼載物盤照明。

2 表殼中心坐標(biāo)識(shí)別方法設(shè)計(jì)

2.1 表殼中心識(shí)別算法原理

表殼圖像的獲取主要通過(guò)工業(yè)攝像機(jī)拍攝獲得,圖1 所示為工業(yè)攝像機(jī)拍攝的工廠實(shí)際圖。每個(gè)載物盤上分別有4×4=16 個(gè)待加工表殼的放置點(diǎn),為準(zhǔn)確表達(dá)每個(gè)表殼的實(shí)際坐標(biāo),可將橫向記為x軸、縱向記為y軸。

圖1 工廠車間表殼樣品擺放圖Fig.1 Shop floor sample layout

圖像分析利用數(shù)學(xué)模型,結(jié)合圖像處理技術(shù),分析底層特征和上層結(jié)構(gòu),從而提取具有一定智能信息的數(shù)據(jù)。本文需要提取各表殼中心坐標(biāo)以及每個(gè)表殼相對(duì)于自己坐標(biāo)中心的偏轉(zhuǎn)角度。

用V表示一個(gè)表殼中所有邊緣像素的集合。若隨機(jī)從V中選擇3 個(gè)像素,這3 個(gè)像素有可能是從圓中選擇出來(lái)的。假設(shè)很多被選擇的3 個(gè)像素集合都是從同一個(gè)圓上選擇的,那么就有很大概率這個(gè)圓是真正的圓。通過(guò)循環(huán)運(yùn)算實(shí)現(xiàn)圓的數(shù)據(jù)并不斷迭代,從而從累加器中找到潛在的圓形。本文使用的算法,隨機(jī)一次選擇4 個(gè)邊緣像素,并定義一個(gè)判據(jù)距離來(lái)尋找一個(gè)可能的圓形,具體過(guò)程如下:

第1 步:存儲(chǔ)全部邊緣像素vi=(xi,yi)進(jìn)入集合V,同時(shí)初始化記錄失敗次數(shù)的計(jì)數(shù)器f為0。讓Tf,Tmin,Ta,Td和Tr作為給定的5 個(gè)初始值。其中Tf為能容忍的失敗次數(shù)。如果V中像素比Tmin小,則停止檢測(cè)圓形的任務(wù)。在任意位于潛在圓上的兩個(gè)中介像素間的距離應(yīng)該比Ta更大。Td和Tr是距離臨界值和比率臨界值。此外,讓│V│表示仍存留于V中的便算像素?cái)?shù)量;

第2 步:如果f=Tf或者│V│<Tmin,然后停止,否則,將從集合V中隨機(jī)選擇4 個(gè)點(diǎn)vi(i=1,2,3,4),在vi被選擇的情況下,設(shè)定集合V=V-{vi}。

第3 步:從4 個(gè)邊緣像素中選擇潛在的圓,使任意在3 個(gè)中介像素中的2 個(gè)間的距離比Ta大,4個(gè)在潛在圓邊緣上的像素的間距比Td大。如果滿足,進(jìn)入第4 步,否則將vi(i=1,2,3,4)點(diǎn)放回V集合,重置f:=f+1,返回第2 步。

第4 步:假設(shè)Cijk是潛在的圓,設(shè)定計(jì)數(shù)器C為0。對(duì)于任何一個(gè)V集合中的元素vi,檢查dl→ijk是否不比給定的間距臨界值Td更大。如果是的話C:=C+1,同時(shí)從V集合中將vk取出。在檢測(cè)所有V集合中的邊緣像素之后,假設(shè)C=np,也即邊緣像素np滿足dl→ijk≤Td。

第5 步:如果np≥2πrijkTr,進(jìn)入第6 步。否則認(rèn)為潛在的圓是個(gè)假圓,將這些邊緣像素np放回V,重置f:=f+1,返回第2 步。

第6 步:潛在的圓Cijk已經(jīng)被檢測(cè)為真正的圓,將f置為0,返回第2 步。

2.2 表殼中心識(shí)別算法實(shí)現(xiàn)

在進(jìn)行表殼中心坐標(biāo)識(shí)別之前,為了消除圖像中無(wú)關(guān)的信息,恢復(fù)有用的真實(shí)信息,增強(qiáng)有關(guān)信息的可檢測(cè)性、最大限度地簡(jiǎn)化數(shù)據(jù),一般需要對(duì)其進(jìn)行預(yù)處理。通過(guò)圖像預(yù)處理,可以改進(jìn)特征提取、圖像分割、匹配和識(shí)別的可靠性[6]。

經(jīng)過(guò)預(yù)處理,下一步需要對(duì)每一個(gè)表殼的圖像進(jìn)行單獨(dú)分析,包括中心坐標(biāo)識(shí)別和偏轉(zhuǎn)角度。通過(guò)以上分析,確定表殼中心坐標(biāo),算法操作流程如圖2 所示。

圖2 圖像操作流程Fig.2 Image operation flow

在進(jìn)行圖像預(yù)處理時(shí),調(diào)用OpenCV 函數(shù)庫(kù)中的cv2.THRESH_OTSU,使用OTSU 算法選擇最優(yōu)閾值,搭配cv2.THRESH_TOZERO 語(yǔ)法提取出圖像中的所有表殼特征,經(jīng)過(guò)彩色閾值處理后的圖像如圖3 所示。

圖3 彩色閾值處理后的圖像Fig.3 Color thresholded image

接下來(lái),對(duì)每個(gè)表殼分別進(jìn)行圖像二值化處理,二值化處理后的圖像如圖4 所示。為了進(jìn)一步提取圖像中的有用信息。對(duì)上述操作后的表殼圖像進(jìn)行Canny 邊緣檢測(cè)[7-8],獲取到的表殼邊緣輪廓圖像如圖5 所示。

圖4 二值化處理后的圖像Fig.4 Image after binarization processing

圖5 Canny 算法得到的輪廓圖像Fig.5 Outline image by Canny algorithm

對(duì)于表殼的邊緣輪廓圖像可以調(diào)用OpenCV 函數(shù)庫(kù)中的cv2.HoughCircles(),即霍夫算法(Hough算法)[9],然后采用cv2.HOUGH_GRADIENT 語(yǔ)法檢測(cè)出輪廓圖像中的圓形。對(duì)檢測(cè)圓形中的每一個(gè)非0 點(diǎn),通過(guò)Sobel 算法[10]計(jì)算局部梯度。計(jì)算得到的梯度方向,實(shí)際上就是圓切線的法線,圓的中心坐標(biāo)亦得。

根據(jù)最大圓半徑與中心圓半徑繪制一個(gè)合適大小的輔助圓,獲得表殼與該圓相交的8 個(gè)點(diǎn),再由這8 個(gè)點(diǎn)擬合出表殼中心線的位置。受噪聲影響,有時(shí)獲得的最大圓半徑并不能與表殼相交產(chǎn)生8 個(gè)點(diǎn),對(duì)表殼的中心線位置產(chǎn)生些許影響。圖6 和圖7 為上述方法繪制的輔助圓以及最后求得的表殼偏轉(zhuǎn)角度。

圖6 輔助圓交點(diǎn)得到的中心線Fig.6 Centerline obtained from intersection of auxiliary circles

圖7 最后擬合的中心線Fig.7 Centerline of final fitting

最后,為了能夠直觀觀察表殼中心坐標(biāo)識(shí)別算法的處理結(jié)果,編寫一段輸出程序,使得算法運(yùn)行成功后,輸出一張帶有每個(gè)表殼中心圓和中心點(diǎn)的閾值圖像,如圖8 所示。

圖8 算法處理輸出圖像Fig.8 Algorithm processing output image

3 表殼中心坐標(biāo)識(shí)別方法準(zhǔn)確率驗(yàn)證

首先,在搭建完成的機(jī)器視覺(jué)硬件系統(tǒng)中,對(duì)擺放位置和角度隨機(jī)的手表殼載物盤進(jìn)行50 次拍照,獲得50 張待檢測(cè)的實(shí)驗(yàn)圖像,作為表殼中心定位算法的檢測(cè)數(shù)據(jù)。

向Visual Studio 2017 平臺(tái)上編寫好的表殼中心坐標(biāo)識(shí)別代碼中輸入50 張實(shí)驗(yàn)圖像,并根據(jù)本文介紹的方法對(duì)圖像中表殼的中心進(jìn)行定位,然后觀察50 張經(jīng)過(guò)算法處理后的輸出圖像,中心定位的實(shí)際情況可用人眼直接判斷,與算法輸出的結(jié)果進(jìn)行對(duì)比。

通過(guò)50 張圖像的算法識(shí)別結(jié)果和表殼中心坐標(biāo)實(shí)際情況對(duì)比,得到算法在50 張圖像中對(duì)表殼中心定位的準(zhǔn)確率。實(shí)驗(yàn)結(jié)果見表1。

表1 表殼中心定位算法準(zhǔn)確率檢測(cè)數(shù)據(jù)Tab.1 Accuracy detection data of shell center positioning algorithm

4 結(jié)語(yǔ)

針對(duì)手表殼工件的中心定位任務(wù),本論文搭建了一套單目機(jī)器視覺(jué)系統(tǒng),模擬實(shí)際情況對(duì)手表殼工件拍照;然后對(duì)獲得的表殼圖像進(jìn)行濾波處理、灰度處理以及表殼中心位置的確定;基于OTSU 算法對(duì)表殼圖像進(jìn)行彩色閾值分割,利用該閾值對(duì)圖像二值化處理后,再進(jìn)行Canny 邊緣檢測(cè),獲得表殼邊緣輪廓信息;運(yùn)用Hough 算法檢測(cè)表殼輪廓中的圓,確定圓心坐標(biāo)后,再通過(guò)擬合求得表殼的中心線位置。本算法避免了大量的數(shù)值排序和迭代計(jì)算,大大提高了運(yùn)算速度。最后,使用50 張擺放位置和角度隨機(jī)的手表殼載物盤作為實(shí)驗(yàn)圖像,對(duì)本算法進(jìn)行準(zhǔn)確率驗(yàn)證,從驗(yàn)證結(jié)果可知,本算法對(duì)手表殼中心定位的準(zhǔn)確率接近100%,完全能夠滿足實(shí)際生產(chǎn)的任務(wù)要求。

猜你喜歡
表殼圖像處理邊緣
基于線性源法與圖像處理的土壤飽和導(dǎo)水率快速測(cè)量方法
“課程思政”視域下職業(yè)學(xué)?!秷D像處理》課程教學(xué)改革實(shí)踐
構(gòu)建《Photoshop圖像處理》課程思政實(shí)踐教學(xué)路徑的探索
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識(shí)別
CJ/T359—2016鋁合金及不銹鋼水表殼及管接件
藍(lán)寶石表殼
一張圖看懂邊緣計(jì)算
時(shí)光之禮
在邊緣尋找自我
走在邊緣