本發(fā)明涉及一種基于機(jī)器視覺(jué)的工件測(cè)量系統(tǒng),適用于各種工件加工場(chǎng)的尺寸測(cè)量場(chǎng)合,屬于分析及測(cè)量控制技術(shù)領(lǐng)域。
背景技術(shù):
現(xiàn)階段在我國(guó)大多數(shù)機(jī)械加工企業(yè)的加工生產(chǎn)流水線上,產(chǎn)品尺寸的測(cè)量仍然采用傳統(tǒng)的人工隨機(jī)抽樣的方法,這種傳統(tǒng)的手工測(cè)量方法對(duì)操作人員的依賴性強(qiáng),操作者勞動(dòng)強(qiáng)度大,而且測(cè)量效率低、準(zhǔn)確度不高、隨機(jī)性大,產(chǎn)品質(zhì)量得不到有效保障,還可能產(chǎn)生很多人為誤差,這樣就難以滿足大批量、高精度、高效率的產(chǎn)品檢測(cè)要求。
隨著現(xiàn)代制造業(yè)的快速發(fā)展,迫切需要改進(jìn)測(cè)量方法。研究低成本、高精度、高效率的零件尺寸自動(dòng)檢測(cè)系統(tǒng),對(duì)提高我國(guó)機(jī)械裝備制造業(yè)的技術(shù)水平具有重大意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于建立一種基于機(jī)器視覺(jué)的工件測(cè)量方法,該方法可以實(shí)時(shí)監(jiān)視工件生產(chǎn)線的加工情況并隨時(shí)存儲(chǔ)圖像,同時(shí)能對(duì)工件的尺寸進(jìn)行在線測(cè)量,為后續(xù)的進(jìn)一步加工處理提供數(shù)據(jù)支持。本發(fā)明能夠顯著提高尺寸檢測(cè)精度和工件的加工速度,有利于企業(yè)降低生產(chǎn)成本、提升生產(chǎn)效率,實(shí)現(xiàn)智能生產(chǎn)、智能制造。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提出的一種基于機(jī)器視覺(jué)的工件測(cè)量方法,包括以下步驟:
步驟一、對(duì)工件圖像的采集、顯示與存儲(chǔ);
步驟二、對(duì)步驟一采集到的工件圖像進(jìn)行濾波、二值化預(yù)處理:
2-1)采用中值濾波對(duì)步驟一采集到的工件圖像進(jìn)行濾波處理,
式(1)中,f(s,t)為原始圖像的灰度值,s為設(shè)定的濾波模板,i為濾波處理后的圖像a的灰度值;
2-2)利用類間方差法對(duì)圖像a進(jìn)行二值化處理,
式(2)中:
式(3)、式(4)和式(5)中:
式(3)-式(6)中:當(dāng)式(2)的結(jié)果為最大時(shí),其中的k值是被選做閾值的灰度值,h(i)代表圖像a中每個(gè)灰度值的像素?cái)?shù),n代表圖像a中灰度值的總數(shù);
步驟三、對(duì)二值化處理后的圖像b中的工件進(jìn)行尺寸測(cè)量,包括:
3-1)旋轉(zhuǎn)圖像:在圖像b中,選定一條與工件上某一輪廓線平行、且與垂直方向的夾角<45°的直線作為參考線,并得到這條參考線的斜率,進(jìn)而將斜率轉(zhuǎn)換為對(duì)應(yīng)的角度;如果該角度為正,則將圖像b順時(shí)針旋轉(zhuǎn);如果該角度為負(fù),則將圖像b逆時(shí)針旋轉(zhuǎn),將圖像b旋轉(zhuǎn)至所述參考線與豎直方向一致得到旋轉(zhuǎn)后的圖像c;
3-2)測(cè)量,包括以下情形中的一種或多種:
自動(dòng)測(cè)量長(zhǎng)寬,使用一矩形檢測(cè)框在圖像c中選取待測(cè)區(qū)域,從矩形檢測(cè)框的左側(cè)至矩形檢測(cè)框的右側(cè)按垂直方向檢測(cè)該檢測(cè)框內(nèi)所有像素的值,第一個(gè)非零像素的水平坐標(biāo)x0和最后一個(gè)非零像素的水平坐標(biāo)x1差值的絕對(duì)值即為待測(cè)形狀的長(zhǎng)度;再?gòu)木匦螜z測(cè)框的上側(cè)至矩形檢測(cè)框的下側(cè)按水平方向檢測(cè)該檢測(cè)框內(nèi)所有像素的值,第一個(gè)非零像素的垂直坐標(biāo)y0和最后一個(gè)非零像素的垂直坐標(biāo)y1差值的絕對(duì)值即為待測(cè)形狀的寬度;
手動(dòng)測(cè)量距離,在圖像c中確定待測(cè)距離的兩個(gè)端點(diǎn),得到該兩個(gè)端點(diǎn)的坐標(biāo)值,進(jìn)而得到該距離;
測(cè)量圓或圓弧,使用一扇環(huán)檢測(cè)框在圖像c中選取待測(cè)圓或圓弧,沿徑向自外向里檢測(cè)該檢測(cè)框內(nèi)所有像素的值,得到每次檢測(cè)的第一個(gè)非零像素,將檢測(cè)到的所有第一個(gè)非零像素點(diǎn)擬合成圓弧,即得到待測(cè)圓或圓弧的半徑和圓心。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明提出采用機(jī)器視覺(jué)技術(shù)自動(dòng)檢測(cè)工件尺寸,將機(jī)器視覺(jué)引入工業(yè)檢測(cè)中,實(shí)現(xiàn)對(duì)物體尺寸或相對(duì)位置的快速測(cè)量,具有實(shí)時(shí)性高、非接觸、精度高、誤差小等特點(diǎn)?;跈C(jī)器視覺(jué)的工件尺寸自動(dòng)測(cè)量系統(tǒng),可以從根本上解決人工測(cè)量效率低、精度低等問(wèn)題,不僅省時(shí)省力,而且還能對(duì)這些指標(biāo)進(jìn)行定量描述,同時(shí)也能實(shí)現(xiàn)生產(chǎn)的連續(xù)性和提高生產(chǎn)的自動(dòng)化程度,具有人工檢測(cè)所無(wú)法比擬的優(yōu)越性。
附圖說(shuō)明
圖1是本發(fā)明一種基于機(jī)器視覺(jué)的工件測(cè)量方法流程框圖;
圖2是本發(fā)明中工件圖像采集、顯示和存儲(chǔ)的流程框圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)描述,所描述的具體實(shí)施例僅對(duì)本發(fā)明進(jìn)行解釋說(shuō)明,并不用以限制本發(fā)明。
如圖1所示,本發(fā)明提出的一種基于機(jī)器視覺(jué)的工件測(cè)量方法,包括以下步驟:
步驟一、對(duì)工件圖像的采集、顯示與存儲(chǔ);如圖2所示,首先在內(nèi)存中為圖像分配內(nèi)存并初始化攝像頭,然后取出攝像頭緩存中的圖像并顯示。為了達(dá)到動(dòng)態(tài)顯示的效果,為整個(gè)程序添加了一個(gè)while循環(huán),使其能夠不斷循環(huán)從攝像頭緩存采集圖像并顯示的過(guò)程,達(dá)到連續(xù)動(dòng)態(tài)顯示的效果。與此同時(shí),在循環(huán)中引入等待。這樣做是為了能夠根據(jù)控制畫(huà)面每秒鐘顯示的幀數(shù),同時(shí)也能大大減少計(jì)算機(jī)的cpu和內(nèi)存占用。循環(huán)中還包括時(shí)間顯示和圖像存儲(chǔ)功能,使用戶能夠隨時(shí)了解當(dāng)前的系統(tǒng)時(shí)間,并且能夠在硬盤(pán)的指定位置存儲(chǔ)當(dāng)前圖像。采用本發(fā)明中的圖像采集方法,不但可以實(shí)時(shí)采集工件圖像,而且還可以實(shí)時(shí)監(jiān)控生產(chǎn)的畫(huà)面。
步驟二、對(duì)步驟一采集到的工件圖像進(jìn)行濾波、二值化預(yù)處理。
與傳統(tǒng)濾波器的概念類似,圖像濾波器可以在保留圖像內(nèi)主要信息的條件下盡可能多地去除圖像內(nèi)的干擾噪聲,工業(yè)生產(chǎn)線上的產(chǎn)品表面往往存在一些細(xì)小的紋理或污點(diǎn),而且待處理的數(shù)字圖像是由數(shù)字?jǐn)z像機(jī)或攝像頭采集的,在環(huán)境光不足時(shí),圖像上的噪點(diǎn)也會(huì)明顯增多。這些像素點(diǎn)降低了圖像質(zhì)量,擾亂了圖像內(nèi)的有效信息,對(duì)圖像識(shí)別與尺寸測(cè)量等后續(xù)工作的運(yùn)行有極大的影響。因此,對(duì)圖像進(jìn)行濾波是圖像在預(yù)處理過(guò)程中不可或缺的一個(gè)環(huán)節(jié),能夠大大提高圖像在后期處理和分析時(shí)的效率和準(zhǔn)確性。由于本發(fā)明的目的是對(duì)圖像進(jìn)行尺寸測(cè)量,所以所選的濾波器應(yīng)滿足兩點(diǎn)要求:一是能夠盡可能多地抑制圖像主體和背景中的紋理、斑點(diǎn)等噪聲,二是能夠有效地保留工件的形狀、大小等幾何特征。
對(duì)圖片分別用線性濾波,中值濾波,自適應(yīng)濾波等濾波方法進(jìn)行分析。通過(guò)多組實(shí)驗(yàn)結(jié)果比較可知,線性濾波在去除噪聲的同時(shí)會(huì)使圖像變得模糊,使邊界信息減弱,并且模板的尺寸越大圖像模糊程度越大。中值濾波是一種非線性的圖像濾波方法。與線性濾波器不同,中值濾波器處理后的圖像邊緣受模板大小變化影響不大,同時(shí)去噪效果較好,且對(duì)于消除孤立點(diǎn)和線段的干擾十分有效。中值濾波的優(yōu)點(diǎn)在于除去圖像噪聲的同時(shí),還能夠保護(hù)圖像的邊緣信息。
因此,本發(fā)明測(cè)量方法中對(duì)原始圖像的濾波處理采用中值濾波處理,其基本原理是把濾波模板在圖像區(qū)域內(nèi)滑動(dòng),將濾波模板中像素按灰度等級(jí)依次排序,取中間值作為當(dāng)前像素的灰度值,采用中值濾波對(duì)步驟一采集到的工件圖像進(jìn)行濾波處理,
式(1)中,f(s,t)為原始圖像的灰度值,s為設(shè)定的濾波模板,i為濾波處理后的圖像a的灰度值。
對(duì)圖像a進(jìn)行二值化處理。
二值化算法有雙峰法、熵權(quán)法、迭代法、力矩法和類間方差法等。這些算法計(jì)算閾值的方式各有不同,對(duì)于同一副圖片,不同的算法最終得到的閾值也會(huì)不同。因此,應(yīng)根據(jù)圖像的特點(diǎn)來(lái)選擇最適合的算法。對(duì)圖片分別使用以上閾值算法處理對(duì)比后發(fā)現(xiàn),類間方差法保留了圖像中物體的完整輪廓,符合本發(fā)明處理圖像的要求,效果相對(duì)最好。類間方差法又叫大津法,簡(jiǎn)稱otsu法,是日本學(xué)者大津展之(nobuyukiotsu)于1979年提出的。類間方差法是一種自適應(yīng)的二值化算法,在前景和目標(biāo)之間的類間方差最大時(shí)得到閾值。此時(shí)前景和背景之間的差別最大,也就意味著錯(cuò)誤劃分二者的概率最小。類間方差法是最常用的二值化算法之一。因此,本發(fā)明測(cè)量方法中選用類間方差法對(duì)圖像進(jìn)行二值化處理。
二值化的閾值是像素值k在下列表達(dá)式最大時(shí)
式(2)中:
式(3)、式(4)和式(5)中:
式(3)-式(6)中:當(dāng)式(2)的結(jié)果為最大時(shí),其中的k值是被選做閾值的灰度值,h(i)代表圖像a中每個(gè)灰度值的像素?cái)?shù),n代表圖像a中灰度值的總數(shù),本發(fā)明實(shí)施例中采用的是8位圖像,其n=256。
步驟三、對(duì)圖像中的工件進(jìn)行尺寸測(cè)量。
為了實(shí)現(xiàn)把二值化后的圖像b進(jìn)行尺寸測(cè)量的目的,這一部分主要分兩步:首先是把圖像旋轉(zhuǎn)到合適的角度,將圖像轉(zhuǎn)正之后將大大方便測(cè)量工作的進(jìn)行。然后進(jìn)入正式的圖像測(cè)量過(guò)程。本發(fā)明設(shè)置了兩種尺寸測(cè)量類型:一是距離(長(zhǎng)寬)測(cè)量,適合測(cè)量直線部分的尺寸,二是圓(弧)測(cè)量,適合測(cè)量圓、弧等形狀的尺寸。具體過(guò)程如下:
3-1)旋轉(zhuǎn)圖像:
設(shè)計(jì)思路是,首先在圖像中得到一條垂直方向的參考線,該參考線可以通過(guò)自動(dòng)識(shí)別圖像中的邊界得到,也可以手動(dòng)設(shè)置。進(jìn)一步得到這條線的兩個(gè)端點(diǎn)的坐標(biāo)值,將兩點(diǎn)的水平坐標(biāo)和垂直坐標(biāo)分別相減后再相除,得到這條線的斜率。使用反正切函數(shù)得到斜率對(duì)應(yīng)的弧度值,再將弧度轉(zhuǎn)換為角度。接下來(lái)需要判斷旋轉(zhuǎn)的方向:如果該角度為正,則說(shuō)明圖像需要順時(shí)針旋轉(zhuǎn),因此將該角度減去90°得到旋轉(zhuǎn)角;如果該角度為負(fù),則說(shuō)明圖像需要逆時(shí)針旋轉(zhuǎn),因此將該角度加上90°得到旋轉(zhuǎn)角。再根據(jù)該旋轉(zhuǎn)角旋轉(zhuǎn)圖像,即可將圖像旋轉(zhuǎn)至參考線豎直的方向。
在圖像b中,選定一條與工件上某一輪廓線平行、且與垂直方向的夾角<45°的直線作為參考線,并得到這條參考線的斜率,進(jìn)而將斜率轉(zhuǎn)換為對(duì)應(yīng)的角度;如果該角度為正,則將圖像b順時(shí)針旋轉(zhuǎn);如果該角度為負(fù),則將圖像b逆時(shí)針旋轉(zhuǎn),將圖像b旋轉(zhuǎn)至所述參考線與豎直方向一致得到旋轉(zhuǎn)后的圖像c;
3-2)工件的測(cè)量。
(1)測(cè)量長(zhǎng)寬,本發(fā)明中設(shè)置了兩種測(cè)量方式:第一種是自動(dòng)測(cè)量形狀的長(zhǎng)寬,第二種是手動(dòng)測(cè)量?jī)牲c(diǎn)間的距離。
自動(dòng)測(cè)量長(zhǎng)寬,使用一矩形檢測(cè)框在圖像c中選取待測(cè)區(qū)域,從矩形檢測(cè)框的左側(cè)至矩形檢測(cè)框的右側(cè)按垂直方向檢測(cè)該檢測(cè)框內(nèi)所有像素的值,第一個(gè)非零像素的水平坐標(biāo)x0和最后一個(gè)非零像素的水平坐標(biāo)x1差值的絕對(duì)值即為待測(cè)形狀的長(zhǎng)度;自動(dòng)測(cè)量寬度的原理與之類似。
手動(dòng)測(cè)量距離,在圖像c中確定待測(cè)距離的兩個(gè)端點(diǎn),得到該兩個(gè)端點(diǎn)的坐標(biāo)值,進(jìn)而使用勾股定理就能夠很容易地得到兩點(diǎn)間的距離。
(2)測(cè)量圓或圓弧,使用一扇環(huán)檢測(cè)框在圖像c中選取待測(cè)圓或圓弧,沿徑向自外向里檢測(cè)該檢測(cè)框內(nèi)所有像素的值,得到每次檢測(cè)的第一個(gè)非零像素,將檢測(cè)到的所有第一個(gè)非零像素點(diǎn)擬合成圓弧,即得到待測(cè)圓或圓弧的半徑和圓心。
盡管上面結(jié)合附圖對(duì)本發(fā)明進(jìn)行了描述,但是本發(fā)明并不局限于上述的具體實(shí)施方式,上述的具體實(shí)施方式僅僅是示意性的,而不是限制性的,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨的情況下,還可以做出很多變形,這些均屬于本發(fā)明的保護(hù)之內(nèi)。