結構光光條中心高精度亞像素提取方法【專利摘要】一種結構光光條中心高精度亞像素提取方法,屬于機器視覺
技術領域:
,其特征是它采用骨架細化法獲得條紋中心初始位置,通過均方灰度梯度求取骨架上每一點的法線方向,然后采用自適應閾值法提取出條紋各列法向寬度值,最后通過條紋法向寬度值內的灰度值數據進行傅里葉擬合,求取擬合曲線的峰值,得到光條中心點的亞像素坐標,連接各光條中心點形成光條中心。采用本發明提取的光條中心具有較高的精度,同時在光條灰度和寬度不均勻的情況下,也能準確的提取出光條的中心位置。【專利說明】結構光光條中心高精度亞像素提取方法
技術領域:
[0001]本發明涉及一種圖像處理技術,尤其是一種機器視覺技術,具體地說是一種結構光光條中心高精度亞像素提取方法。【
背景技術:
】[0002]目前,結構光主動視覺主要基于光學三角法測量原理,由激光發生器和攝像機共同作為結構光圖像傳感器組成視覺系統。因物體表面形狀不規則和反射特性不一致,圖像傳感器拍攝到的含有結構光條的圖像,其光條灰度和寬度也不均勻。這些給光條圖像的條紋中心提取帶來很大困難,因此結構光視覺技術圖像處理關鍵的一步是精確提取激光條紋的中心線。[0003]從實現方法上分析,可將現有的光條紋提取技術歸結為兩大類:一類是以幾何中心作為光條紋中心的提取方法,如閾值法,邊緣取中法、骨架細化法等,這類方法算法簡單,運行速度快,但精度低,受閾值與噪聲影響較大。另一類是以能量中心作為光條紋中心的提取方法,如極值法,重心法,高斯擬合法等。極值法算法原理簡單、運算速度快,缺點是激光條紋光強較大時會存在多個極大值現象,提取出的中心線不是單像素的。灰度重心法是把一定區域內的光帶灰度重心作為光帶中心,在灰度重心法的基礎上,吳家勇等在"基于梯度重心法的線結構光中心亞像素提取方法"一文中提出了一種基于梯度重心法的線結構光光帶中心快速亞像素提取算法,當光帶灰度極大值位置與真實光帶中心有較大偏離時,該方法求出的中心能獲得偏離灰度極大值的真實光帶中心。熊會元等在"線結構光條紋中心的全分辨率精確提取"一文中提出了應用灰度梯度計算光條法線方向,在法線方向上應用灰度重心法來精確提取光條中心的方法。該方法有效地彌補了傳統重心法不能處理光條法線方向和方向模板法只能獲得光條近似法線方向的不足,提取精度較高。高斯擬合法的原理是根據激光條紋法向灰度值近似服從高斯分布,利用條紋的灰度數據擬合出高斯曲線并把其極值作為激光條紋的中心,Lukas等在"Detectingdigitalimageforgeriesusingsensorpatternnoise"一文中提出了先確定條紋中心的大致位置,然后以該位置附近的5個像素為高斯擬合數據,求取激光條紋的中心位置。該法僅適用直線度較好、粗細均勻的激光條紋。[0004]但上述這些方法均存在精度不高,同時在光條灰度和寬度不均勻的情況下,難以準確提取出光條中心位置的問題。【
發明內容】[0005]本發明的目的是針對結構光條紋存在光條粗細不均、曲率變化,而現有的方法均存在精度不高,同時在光條灰度和寬度不均勻的情況下,難以準確提取出光條中心位置的問題,在考慮光條法線方向的基礎上,發明一種基于自適應閾值和傅里葉擬合的結構光光條中心高精度亞像素提取方法。該方法自適應確定條紋法向寬度,利用光帶邊界內的大量像素的灰度信息,在法線方向上基于傅里葉擬合來進行光帶中心位置的精確提取。[0006]本發明的技術方案是:[0007]一種結構光光條中心高精度亞像素提取方法,其特征在于,該方法包括如下步驟:[0008]步驟一:對獲取的光條圖像進行去噪處理,獲取去噪后的光條圖像;[0009]步驟二:采用骨架細化的方法,對經步驟一獲得的去噪后的光條圖像層層剝離獲得光條中心的粗略位置,并計算每一個骨架中心點對應的法線方向;[0010]步驟三:在得到光帶中心粗略位置(^后,在Q處的法線方向上取左右各nw個像素之間的范圍作為條紋的粗略寬度,在粗略寬度內還還必須再精確地確定光帶的邊界,以提高后續傅里葉擬合法計算光帶中心位置的準確度;[0011]步驟四:對經步驟三獲得的條紋法向寬度值內的灰度值數據進行傅里葉擬合,求取擬合曲線的峰值,得到光條中心點的亞像素坐標;[0012]步驟五:連接經步驟四獲得的所述光條的亞像素坐標點形成光條中心。[0013]所述的對獲取的光條圖像進行去噪處理,獲取去噪后的光條圖像的步驟如下:[0014]步驟1.1:采用有光條圖像與無光條圖像相減的方法去除光條圖像中的非隨機噪聲,獲得初步去噪后的圖像;[0015]步驟1.2:采用小波閾值去噪的方法對所述初步去噪后的光條圖像進行去噪,去除光條圖像中的隨機噪聲,從而獲得去噪后的光條圖像。[0016]所述的采用骨架細化的方法獲得光條中心的粗略位置,并計算每一個骨架中心點對應的法線方向包括以下步驟:[0017]步驟2.1:根據光條圖像的灰度直方圖,選擇合適的閾值,對光條圖像進行二值化處理,獲取光條圖像第一行與最后一行的像素點坐標,計算光條的斜率,斜率的絕對值大于1,則光條為垂直走向,反之則為水平走向;本發明中分析光條走向為垂直方向的情況,即在水平方向上求取光條中心的粗略位置;[0018]步驟2.2:對二值化的光條圖像而言,0為背景,1為目標。依據步驟2.1獲得的光條走向,針對圖像中的任意像素P〇,構造它的八鄰域如圖2所示。圖3為Po的左右各兩個鄰點。先對整個圖像逐點作點運算,若該點為背景點數時(即Po=〇),則不作任何動作;若該點為光條上的點時(即P〇=1),則依據算法判斷該點是否應刪除,其步驟如下:[0019]4)若滿足如下條件,則標記下該點;[0020]d)Po=l[0021]e)(Pn-l=0&&Pn+l=l&&Pn+2=l)||(Pn-2=l&&Pn-l=l&&Pn+l=0)[0022]f)erasetable[num]=1[0023](num=Pi+2*P2+4*P:B+8*P4+16*P5+32*P6+64*P7+128*P8)[0024]erasetable[256]={[0025]0,0,1,1,0,0,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,10,0,0,0,0,0,0,1[0026]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,10,0,0,0,0,0,0,1[0027]1,1,0,0,1,1,0,0[0028]1,1,0,0,1,1,0,01,1,0,1,1,1,0,1[0029]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,10,0,0,0,0,0,0,1[0030]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,1[0031]1,1,0,0,1,1,0,01,1,0,0,1,1,1,1[0032]1,1,0,0,1,1,0,01,1,0,1,1,1,0,01,1,0,0,1,1,1,01,1,0,0,1,0,0,0[0033]}[0034]5)逐行遍歷整幅圖片,刪除步驟1中標記的點;[0035]6)重復步驟1和2直到沒有點被刪除為止,獲得光條圖像的粗略中心位置。[0036]步驟2.3:采用均方灰度梯度的方法獲得骨架上每一點的法線方向。[0037]所述的在匕處的法線方向上取左右各nw個像素之間的范圍作為條紋的粗略寬度,在粗略寬度內還還必須再精確地確定光帶的邊界的算法如下:[0038]1)計算出Ci處法向上Ci-nw列至Ci+nw列范圍內灰度值的平均值Im[0039]2)求出Ci_nw列至Ci+nw列范圍內灰度值小于Im的像素灰度值的平均值Ih[0040]3)把Ih作為光帶邊界的灰度閾值可以自適應地將光帶區域與背景分割開來。[0041]所述的傅里葉擬合時的傅里葉函數的數學表達式如下:[0042]f(xi)=ao+ai*cos(Xi*w)+bi*sin(Xi*w)(1)[0043]式中,加^^匕是傅里葉函數的參數^是數據的頻率信息:擬合不同的灰度值點會得到相應的參數和頻域信息;[0044]對式(1)左右兩邊求導得:[0045]f'(xi)=_ai*w*sin(Xi*w)+bi*w*cos(Xi*w)(2)[0046]光條中心位置即為傅里葉擬合曲線的峰值點,令f'(Xl)=0,則[0047]ai*w*sin(xi*w)=bi*w*cos(Xi*w)(3)[0048]可得光條的中心位置為(4)C-[0050]本發明的有益效果:[0051]本發明根據光帶截面灰度非正態分布的特點,提出的結構光光條中心高精度亞像素提取方法,采用骨架細化的方法獲取光條圖像的初始中心,再以獲取的光條骨架為基礎,求取每一個初始中心點處的法向,在法線方向上基于自適應閾值獲得光條在法向的寬度值,最后采取傅里葉擬合來求取光條中心點的亞像素坐標。它具有較高的光帶中心提取精度,同時在光條灰度和寬度不均勻的情況下,也能準確的提取出光條的中心位置。【附圖說明】[0052]圖1是本發明的結構光光條中心高精度亞像素提取方法的流程圖。[0053]圖2為Po的八領域示意圖。[0054]圖3為Po的鄰點示意圖。[0055]圖4為本發明實施例中的光條紋圖像經去噪與二值化后的光條圖像示意圖。[0056]圖5為本發明實施例中采用的模擬件示意圖。[0057]圖6為本發明實施例中獲得的光條中心線局部放大圖。【具體實施方式】[0058]下面結合附圖和實施例對本發明作進一步的說明。[0059]如圖1-6所示。[0060]本發明實施例中,采用相機拍攝獲得光條紋圖像,圖像采集相機選擇大恒CCD相機F-504B/C,分辨率為2452*2056,鏡頭選擇大恒Computar定焦鏡頭M0814-MP2,焦距為8mm,激光條紋采用鮑威爾激光器3D掃描儀產生,輸出的波長為650nm,輸出功率可調,最大輸出功率為100mW。[0061]-種結構光光條中心高精度亞像素提取方法流程如圖1所示,它包括如下步驟:[0062]步驟一:對獲取的光條圖像進行去噪處理,獲取去噪后的光條圖像,其包括如下子步驟:[0063]步驟1.1:采用有光條圖像與無光條圖像相減的方法去除光條圖像中的非隨機噪聲,獲得初步去噪后的圖像;[0064]步驟1.2:采用小波閾值去噪的方法對所述初步去噪后的光條圖像進行去噪,去除光條圖像中的隨機噪聲,從而獲得去噪后的光條圖像。[0065]通過實驗驗證與分析,針對光條圖像,采用sym4小波基作為小波基函數,對小波分解層選擇三層分解,閾值的選擇采用的是Donoho的統一閾值2=其中N為信號的長度或尺寸,〇為噪聲方差,由第一層小波分解系數進行估算:[0066]<3*-Median^uj)/0.6745Q[0067]針對光條圖像,采用軟硬折中閾值處理函數,既可以平滑去噪,又能很好的保留圖像邊緣等局部特征,其表達式如下:(1)[0069]式(1)中,w是原始小波系數,n(w)表示閾值化后的小波系數,T是給定的閾值,針對本例中獲取的光條圖像,a取2.5,0取6。[0070]步驟二:采用骨架細化的方法,對經步驟一獲得的去噪后的光條圖像層層剝離獲得光條中心的粗略位置,并計算每一個骨架中心點對應的法線方向,其具體包括如下子步驟:[0071]步驟2.1:根據光條圖像的灰度直方圖,選擇合適的閾值,對光條圖像進行二值化處理,獲取光條圖像第一行與最后一行的像素點坐標為4(^,71),8(^,72),如圖4所示。計算光條的斜率k,斜率k的絕對值大于1,則光條為垂直走向,反之則為水平走向;本發明中分析光條走向為垂直方向的情況,即在水平方向上求取光條中心的粗略位置;[0072]步驟2.2:對二值化的光條圖像而言,0為背景,1為目標。依據步驟2.1獲得的光條走向,針對圖像中的任意像素P〇,構造它的八鄰域,如圖2所示。圖3為Po的左右各兩個鄰點。先對整個圖像逐點作點運算,若該點為背景點數時(即Po=0),則不作任何動作;若該點為光條上的點時(即P〇=1),則依據算法判斷該點是否應刪除,其步驟如下:[0073]1)若滿足如下條件,則標記下該點;[0074]a)Po=1[0075]b)(Pn-l=0&&Pn+l=l&&Pn+2=l)||(Pn-2=l&&Pn-l=l&&Pn+l=0)[0076]c)erasetable[num]=1[0077](num=Pi+2*P2+4*P:B+8*P4+16*P5+32*P6+64*P7+128*P8)[0078]erasetable[256]={[0079]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,11[0080]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,11[0081]1,1,0,0,1,1,0,0[0082]1,1,0,0,1,1,0,01,1,0,1,1,1,0,1[0083]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,10,0,0,0,0,0,0,1[0084]〇,〇,1,1,〇,〇,1,11,1,0,1,1,1,0,11,1,0,0,1,1,1,1[0085]1,1,0,0,1,1,0,00,0,0,0,0,0,0,01,1,0,0,1,1,1,1[0086]1,1,0,0,1,1,0,01,1,0,1,1,1,0,01,1,0,0,1,1,1,01,1,0,0,1,0,0,0[0087]}[0088]2)逐行遍歷整幅圖片,刪除步驟1中標記的點;[0089]3)重復步驟1和2直到沒有點被刪除為止,獲得光條圖像的粗略中心位置。[0090]步驟2.3:采用均方灰度梯度的方法獲得骨架上每一點的法線方向;[0091]設骨架上任意一點(x,y)處的灰度值記為f(x,y),則點(x,y)處的方向角0(x,y)計算如下:[0092]在復平面上任意向量取平方后,該向量與x軸正方向的夾角將增加一倍,根據這一特質,用復平面上的向量f=(fX,fy)來表示灰度梯度,取其平方得:[0093](X+X)2=(/,-/;:)+/.(2./;.,,)(2)[0094]fx與fy分別為采用Sobel梯度算子計算點(x,y)在x方向與y方向的偏導數。[0095]為了提高光條骨架法線方向求解的精度,以點(x,y)為中心,取5X5區域內的平方灰度梯度的平均值來計算該點法向,則法向角9(x,y)計算公式為:n-v)=zzyt(u'v)~f'(u'v)][0096]了::2⑴l\(A'.r)=乞£2./;u-x-2v-y-2[0097]式(3)中¥\(1,7)和¥\(1,7)分別為均方灰度梯度向量的實部和虛部。貝11(4)[0099]依照上述步驟即可獲得骨架上每一點的法線方向。[0100]步驟三:在得到光帶中心粗略位置匕后,在Q處的法線方向上取左右各nw個像素之間的范圍作為條紋的粗略寬度,在粗略寬度內還還必須再精確地確定光帶的邊界,以提高后續傅里葉擬合法計算光帶中心位置的準確度。具體算法如下:[0101]1.計算出Ci處法向上Ci-nw列至Ci+nw列范圍內灰度值的平均值Im;[0102]2.求出Ci-nw列至Ci+nw列范圍內灰度值小于IM的像素灰度值的平均值Ih;[0103]3.把Ih作為光帶邊界的灰度閾值可以自適應地將光帶區域與背景分割開來。[0104]步驟四:對經步驟三獲得的條紋法向寬度值內的灰度值數據進行傅里葉擬合,求取擬合曲線的峰值,得到光條中心點的亞像素坐標;[0105]傅里葉函數的數學表達式如下:[0106]f(xi)=ao+ai*cos(Xi*w)+bi*sin(Xi*w)(5)[0107]式中,&0,&1,131是傅里葉函數的參數,《是條紋法向寬度值內的灰度值數據的頻率fg息。[0108]擬合不同的灰度值點會得到相應的參數和頻率信息w。[0109]對式(1)左右兩邊求導得:[0110]f,(xi)=_ai*w*sin(Xi*w)+bi*w*cos(Xi*w)(6)[0111]光條中心位置即為傅里葉擬合曲線的峰值點,令f'(Xl)=0,則[0112]ai*w*sin(xi*w)=bi*w*cos(Xi*w)(7)[0113]可得光條的中心位置為(8)[0115]步驟五:連接經步驟四獲得的所述光條的亞像素坐標點形成光條中心。[0116]本發明的工作原理是:[0117]本發明首先通過有無光條圖像的相減與小波閾值去噪,消除光條圖像中的非隨機噪聲與隨機噪聲,然后基于去噪后光條圖像的灰度直方圖,選擇合適的閾值對光條圖像進行二值化處理,采用獲取光條首尾像素坐標點計算光條斜率的方法獲得光條的走向,并對光條進行骨架細化,獲取粗略的中心位置,通過均方灰度梯度的方法獲取每一個初始中心點處的法線方向,并在法線方向上采用自適應閾值求取光條每一處的法向寬度值,最后在光條發現方向上,利用傅里葉函數擬合條紋法向寬度值內灰度值數據來計算光條中心,實現光條的亞像素中心提取。該方法測量精度高,在光條灰度和寬度不均勻的情況下,也能準確的提取出光條的中心位置。[0118]本發明未涉及部分均與現有技術相同或可采用現有技術加以實現。【主權項】1.一種結構光光條中心高精度亞像素提取方法,其特征在于,該方法包括如下步驟:步驟一:對獲取的光條圖像進行去噪處理,獲取去噪后的光條圖像;步驟二:采用骨架細化的方法,對經步驟一獲得的去噪后的光條圖像層層剝離獲得光條中心的粗略位置,并計算每一個骨架中心點對應的法線方向;步驟三:在得到光帶中心粗略位置(^后,在C1處的法線方向上取左右各nw個像素之間的范圍作為條紋的粗略寬度,在粗略寬度內還還必須再精確地確定光帶的邊界,以提高后續傅里葉擬合法計算光帶中心位置的準確度;步驟四:對經步驟三獲得的條紋法向寬度值內的灰度值數據進行傅里葉擬合,求取擬合曲線的峰值,得到光條中心點的亞像素坐標;步驟五:連接經步驟四獲得的所述光條的亞像素坐標點形成光條中心。2.根據權利要求1所述的方法,其特征是所述的對獲取的光條圖像進行去噪處理,獲取去噪后的光條圖像的步驟如下:步驟1.1:采用有光條圖像與無光條圖像相減的方法去除光條圖像中的非隨機噪聲,獲得初步去噪后的圖像;步驟1.2:采用小波閾值去噪的方法對所述初步去噪后的光條圖像進行去噪,去除光條圖像中的隨機噪聲,從而獲得去噪后的光條圖像。3.根據權利要求1所述的方法,其特征是所述的采用骨架細化的方法獲得光條中心的粗略位置,并計算每一個骨架中心點對應的法線方向包括以下步驟:步驟2.1:根據光條圖像的灰度直方圖,選擇合適的閾值,對光條圖像進行二值化處理,獲取光條圖像第一行與最后一行的像素點坐標,計算光條的斜率,斜率的絕對值大于1,則光條為垂直走向,反之則為水平走向;本發明中分析光條走向為垂直方向的情況,即在水平方向上求取光條中心的粗略位置;步驟2.2:對二值化的光條圖像而言,O為背景,1為目標。依據步驟2.1獲得的光條走向,針對圖像中的任意像素Po,構造它的八鄰域如圖2所示。圖3為Po的左右各兩個鄰點。先對整個圖像逐點作點運算,若該點為背景點數時(即Po=O),則不作任何動作;若該點為光條上的點時(即Po=1),則依據算法判斷該點是否應刪除,其步驟如下:1)若滿足如下條件,則標記下該點;a)Po=1b)(Ρη-1=0&&Ρη+1=1&&Ρη+2=I)||(Pn-2=IMPn-I=1&&Ρη+1=0)c)erasetable[num]=I(num=Pi+2*P2+4*P:B+8*P4+16*P5+32*P6+64*P7+128*P8)2)逐行遍歷整幅圖片,刪除步驟1中標記的點;3)重復步驟1和2直到沒有點被刪除為止,獲得光條圖像的粗略中心位置。步驟2.3:采用均方灰度梯度的方法獲得骨架上每一點的法線方向。4.根據權利要求1所述的方法,其特征是所述的在C1處的法線方向上取左右各nw個像素之間的范圍作為條紋的粗略寬度,在粗略寬度內還還必須再精確地確定光帶的邊界的算法如下:1)計算出Ci處法向上Ci-nw列至Ci+nw列范圍內灰度值的平均值Im2)求出C1-Iiw列至C^nw列范圍內灰度值小于Im的像素灰度值的平均值Ih3)把Ih作為光帶邊界的灰度閾值可以自適應地將光帶區域與背景分割開來。5.根據權利要求1所述的方法,其特征是所述的傅里葉擬合時的傅里葉函數的數學表達式如下:f(xi)=ao+ai*cos(Xi*w)+bi*sin(Xi*w)(I)式中,80,&1,131是傅里葉函數的參數,《是數據的頻率信息;擬合不同的灰度值點會得到相應的參數和頻域信息;對式(1)左右兩邊求導得:f'(Xi)=_ai*w*sin(Xi*w)+bi*w*cos(Xi*w)(2)光條中心位置即為傅里葉擬合曲線的峰值點,令f'(X1)=OJiJai*w*sin(xi*w)=bi*w*cos(Xi*w)(3)可得光條的中心位置為【文檔編號】G06T7/00GK105931232SQ201610240776【公開日】2016年9月7日【申請日】2016年4月18日【發明人】李瀧杲,黃翔,丁祖嬌【申請人】南京航空航天大學