本發(fā)明涉及一種三維激光掃描系統(tǒng)中線激光中心的亞像素定位的方法。
背景技術:
隨著機器視覺技術的不斷發(fā)展,三維激光掃描技術逐漸成為該領域的核心力量。憑借具有實時獲取待測物體表面的三維數(shù)據(jù)信息、且掃描精度高以及非接觸特性等優(yōu)勢,三維激光掃描已成為新技術研究熱點之一。
三維激光掃描系統(tǒng)一般由線激光器、攝像頭、步進電機、旋轉平臺等結構組成,線激光器用于發(fā)射線狀激光光帶,攝像頭用于實時捕捉被測物體表面上含有線狀激光的畫面,步進電機以及旋轉平臺用于獲取物體多個角度的掃描信息。
三維激光掃描系統(tǒng)的測量原理一般有三種:脈沖測距法、相位測距法以及三角測距法,前兩種原理較簡單,對成本要求比較高,三角測距法對硬件的成本要求較低,對算法精確度的要求較高。本發(fā)明涉及到的激光掃描系統(tǒng)基于三角測距原理:當激光投射到被測物體表面上時,物體的表面信息可通過精確定位線激光中心亞像素信息得到。理想中的線激光是一條細線,然而由于各種干擾,如光照不均勻及待測物體表面性質的差異,使得獲取的線激光具有一定的寬度,線激光中心提取的好壞將直接影響到掃描結果。
傳統(tǒng)的提取線激光中心的算法有極值法、閾值法、重心法、hessian矩陣法、曲線擬合法等,極值法即提取像素中每一行(或者每一列)灰度值最大的像素點,極值法的優(yōu)點是提取速度快,但容易受到噪聲的干擾。閾值法是通過設定某一個灰度閾值,檢測圖像每一行(或每一列)中像素的灰度值為該閾值的坐標點,然后再對坐標點對應的坐標值求和取平均,即得到中心點的像素坐標,該方法計算速度快,但如果線激光的光強不是對稱分布,就會存在較大誤差。重心法是將物理學中計算物體質心的方法運用在線激光中心亞像素提取中的一種算法,即將圖像的灰度值當作物理學中微元出的一個質點的質量,通過求質心的公式得出線激光中心的亞像素級別像素點,重心法計算速度快,但抗干擾能力較差。hessian矩陣法是利用hessian矩陣得到圖像中線激光的法線方向,然后再求出法線方向極值點,即為所求亞像素坐標值。hessian矩陣法中圖像的每個像素點都需要進行5次高斯卷積運算,hessian矩陣法得出的結果精度高,需要的計算量也大,速度較慢,不適合實時掃描系統(tǒng)。曲線擬合法是根據(jù)線激光的灰度值近似呈高斯分布的特性,如圖2所示,線激光的中心點就是光強的峰值點,利用曲線擬合的方式計算出激光中心點的亞像素坐標,一般包括高斯曲線擬合和二次曲線擬合,將擬合曲線的極大值作為線激光的中心。曲線擬合算法提取的精度高,可以達到亞像素級精度,但是在計算過程中處理的數(shù)據(jù)量較大。
各種算法根據(jù)其不同原理都有其優(yōu)缺點,極值法、閾值法、灰度重心法的優(yōu)點是算法簡單、速度較快,能實現(xiàn)掃描的實時性,但受噪聲影響比較嚴重。曲線擬合法和hessian矩陣法提取的精度較高,能夠達到亞像素級別,不易受到噪聲干擾且魯棒性好,但算法復雜度較高,檢測速度較慢,不能夠滿足實時性的要求。
以上分析了現(xiàn)有的幾種線激光中心的提取算法及其優(yōu)劣,在此基礎上,本案提出一種能夠實現(xiàn)線激光中心精確定位的方法。
技術實現(xiàn)要素:
本發(fā)明的目的,在于提供一種三維激光掃描系統(tǒng)中線激光中心的亞像素定位方法,其將改進型重心法和hough變換相結合,能夠滿足三維激光掃描系統(tǒng)實時、準確地獲取線激光中心的亞像素坐標,實現(xiàn)線激光中心的亞像素精確定位。
為了達成上述目的,本發(fā)明的解決方案是:
一種三維激光掃描系統(tǒng)中線激光中心的亞像素定位方法,包括如下步驟:
(1)從攝像頭獲取激光掃描的原始圖像信息,并對原始圖像進行預處理,消除圖像中的噪聲;
(2)對消除噪聲的圖像進行閾值分割,對線激光進行粗提?。?/p>
(3)消除粗提取之后的線激光存在的毛刺現(xiàn)象,進一步縮小線激光的寬度;
(4)利用改進型重心法得到線激光中心的亞像素級別坐標;
(5)采用hough變換對亞像素級別坐標中的偽目標像素進行糾正。
上述步驟(1)具體包括如下步驟:
(11)將攝像頭獲取的原始圖像三通道形式轉化為單通道灰度圖像;
(12)對灰度圖像采用中值濾波處理,消除圖像中的噪聲。
上述步驟(12)中,采用3×3濾波窗口對灰度圖像進行中值濾波處理。
上述步驟(2)中,利用最大類間方差法計算出將圖像中的目標和背景分割的最佳閾值。
上述閾值分割的具體過程是:
設原始圖像各點的灰度值為f(x,y),總的像素數(shù)為n=n0+n1+…+nl-1,灰度級數(shù)設為l,閾值t將圖像分為目標類o和背景類b,i表示像素的灰度值,灰度值為i的像素點的個數(shù)記為ni,其相應的概率記為pi,則有:
背景類的灰度范圍記為[0,t],目標類的灰度范圍記為[t+1,l-1],背景類的灰度概率記為pb,目標類的灰度概率記為po,則有:
pb+po=1
背景類像素的灰度均值為μb,目標類像素的灰度均值為μo,則有:
poμo+pbμb=μt
則類間均方差表示為:
σ2=pb(μb-μt)2+po(μo-μt)2
得到:
σ2=pbpo(μb-μo)2
不同的t得到的σ也不同,求出令σ取得最大值的t,即為所求最佳閾值。
上述步驟(3)的具體步驟是:采用zhang并行細化算法,將圖像上的像素分為目標點和背景點,取圖像中任意一點的像素值為p1,其鄰域用p2-p9來標記,并做如下處理:
第一步:如果滿足以下四個條件,則在圖像中刪除該點;
a.2≤n(p1)≤6
b.z0(p1)=1
c.p2*p4*p6=0
d.p4*p6*p8=0
式中,n(p1)是p1的鄰域中非零點的數(shù)量,z0(p1)是從p2至p9遍歷過程中其對應的像素值由0變?yōu)?的變化次數(shù);
第二步:對圖像再進行一次掃描,如果不為0的點的8鄰域滿足以下4個條件,則在圖像中刪除該點;
a.2≤n(p1)≤6
b.z0(p1)=1
c.p2*p6*p8=0
d.p2*p4*p8=0。
上述步驟(3)中,還對圖像使用開運算來去除可能存在的噪點,即對圖像先腐蝕再膨脹,達到去除孤立點的目的。
上述步驟(4)中,改進型重心法的公式如下:
其中,x表示光強最強的像素點,g(x,y)表示圖像提取后的各點像素的灰度值。
上述步驟(5)的詳細內容是:
a)對線激光中心亞像素坐標鄰域內目標像素的數(shù)量進行檢測;
b)如果目標點的數(shù)量滿足要求,則認為是目標點,轉為c),否則是噪點,轉為d);
c)繼續(xù)遍歷下一行亞像素點,并檢測其鄰域內目標點的數(shù)量;
d)以該噪點上下各10行的目標點為樣本,再進行hough變換,得到直線,并用該直線上對應的點代替該噪點,轉為c),直至遍歷完整個圖像中的目標像素為止。
采用上述方案后,本發(fā)明的優(yōu)點是:
(1)本發(fā)明利用最大類間方差法,根據(jù)不同圖像計算出不同閾值,進而將線激光的整體輪廓大致分割出來;
(2)本發(fā)明利用zhang并行細化算法,有效去除了線激光的毛刺現(xiàn)象并將邊界噪點細化,將線激光的寬度縮小,減少了計算量;
(3)本發(fā)明首次將改進型重心法和hough變換相結合用于精確定位線激光中心,可以有效提高線激光的定位精度至亞像素級別,并對圖像中的孤立噪點具有很強的抑制能力,增強穩(wěn)健性。
附圖說明
圖1是本發(fā)明的流程圖;
圖2是線激光的光強分布圖;
圖3是zhang并行細化算法的鄰域排布圖;
圖4是hough變換中(x,y)和(r,θ)的關系對應圖。
具體實施方式
以下將結合附圖,對本發(fā)明的技術方案進行詳細說明。
如圖1所示,本發(fā)明提供一種三維激光掃描系統(tǒng)中線激光中心的亞像素定位方法,將改進型重心法和hough變換相結合,實現(xiàn)線激光中心的亞像素精確定位,具體包括如下步驟:
(1)從攝像頭獲取激光掃描的原始圖像信息,并對原始圖像進行預處理,消除圖像中的噪聲;
具體包括如下內容:
a)圖像預處理的目的是減少噪聲對提取線激光中心的影響,保留有用的圖像信息。在圖像預處理過程中,由于彩色圖像包含更多的顏色信息量,處理速度相對較慢,因此在圖像預處理之前需要將原始三通道圖像轉化為單通道灰度圖像,最常用的灰度圖像轉換公式為:
gray=r*0.229+g*0.587+b*0.114(1)
其中,r、g、b分別表示紅色、綠色、藍色分量的數(shù)值。
b)對得到的灰度圖像采用中值濾波處理,以消除圖像中一些孤立的噪聲,中值濾波是一種典型的非線性濾波,通過檢測目標像素及鄰域像素灰度值,并對該區(qū)域內像素值從小到大排序,找到中間值,進而用中間值代替該目標像素的灰度值。中值濾波可以有效去除椒鹽噪聲和斑點噪聲,并同時保留圖像的邊緣輪廓和圖像細節(jié),實驗中需要選擇一個合適的濾波窗口,既能保證濾波效果,又要保證計算量不能太大,一般采用的是3×3的濾波窗口對圖像進行中值濾波處理,從而消除圖像中孤立的噪點。
(2)對消除噪聲的圖像進行閾值分割,對線激光進行粗提??;
在激光掃描系統(tǒng)中,只有將目標有效地從圖像中分割出來,才可以對該目標進行后續(xù)的亞像素提取。根據(jù)激光相對于背景對比度較強的特點,可通過設定閾值的方法來達到將背景與需要提取的線激光中心分離的目的。其思想是通過圖像中的每一個像素的灰度值與設定的閾值進行比較,判斷該像素是不是目標點。閾值提取方法包括固定閾值分割和自適應閾值分割,固定閾值分割就是整個圖像用同一個設定好的閾值來分割出目標和背景,閾值的選取要根據(jù)多次實驗來得到,由于不同環(huán)境中所采用的閾值不相同,該方法適應性較差。自適應閾值分割根據(jù)實際圖像的像素的灰度值大小來確定該圖像的閾值,不同圖像在不同的亮度、對比度和紋理環(huán)境中所對應的閾值也會不同,靈活性較好。為了提高掃描系統(tǒng)的靈活性,本發(fā)明采用自適應閾值的提取方法,并利用最大類間方差法,得出每一張圖像的最佳分割閾值。
最大類間方差圖像分割法是通過把采集到的圖像根據(jù)像素的灰度值將其分為目標和背景兩部分,再計算目標和背景的類間方差,當圖像的類間方差達到最大值時,說明目標部分和背景部分的差異達到最大,此時的灰度就是分割圖像的最佳閾值。具體步驟如下:
設原始圖像各點的灰度值為f(x,y),總的像素數(shù)為n=n0+n1+…+nl-1,灰度級數(shù)設為l(0至l-1),閾值t將圖像分為目標類o和背景類b,i表示像素的灰度值,灰度值為i的像素點的個數(shù)記為ni,其相應的概率記為pi,則有:
背景類的灰度范圍記為[0,t],目標類的灰度范圍記為[t+1,l-1],背景類的灰度概率記為pb,目標類的灰度概率記為po,則有:
pb+po=1(5)
背景類像素的灰度均值為μb,目標類像素的灰度均值為μo,則有:
poμo+pbμb=μt(8)
則類間均方差可以表示為:
σ2=pb(μb-μt)2+po(μo-μt)2(9)
由式(5)、式(8)可以得到:
σ2=pbpo(μb-μo)2(10)
不同的t得到的σ也不同,求出可以令σ取得最大值的t,即為所求最佳閾值。通過該值即可將線激光提取出來。
設原始圖像各點的灰度值為f(x,y),設t是選取的自適應閾值,g(x,y)是圖像提取后的各點像素的灰度值,有:
(3)消除粗提取之后的線激光存在的毛刺現(xiàn)象,進一步縮小線激光的寬度;
閾值分割后,圖像中線激光寬度占用的像素點較多,用于激光掃描系統(tǒng)中的像素點的精度需要達到亞像素級別,在提取亞像素線激光之前需要將閾值分割后的圖像進行邊緣細化處理,以消除條紋邊緣點對提取亞像素中心的影響。邊緣細化即是刪除不需要的輪廓點,只保留其骨架。
zhang并行細化算法具有有效去除輪廓邊沿的點、不影響條紋內部像素點的連通性、可以去除激光的毛刺現(xiàn)象,以及保持激光中心線的完整結構等優(yōu)點,符合系統(tǒng)要求,所以采用zhang并行細化算法來對線激光進行細化,該算法基于像素8鄰域的灰度值來決定是否刪除當前像素點,具有實用性強、速度快、細化后的圖像可以保持內部結構的連通性、無毛刺等優(yōu)點。
zhang并行細化算法將圖像上的像素分為目標點和背景點,目標點是像素灰度值不為0的點,背景點是指像素灰度值為0的像素點。取圖像中任意一點的像素值為p1,其鄰域用p2-p9來標記,標記的相應位置如圖3所示:
細化的具體步驟如下:
第一步:如果滿足以下四個條件,則在圖像中刪除該點(設置該像素值為0);
a.2≤n(p1)≤6
b.z0(p1)=1
c.p2*p4*p6=0
d.p4*p6*p8=0
式中,n(p1)是p1的鄰域中非零點的數(shù)量,該條件這樣設置是由于大于等于2會保證p1點不是端點或者孤立點,小于等于6保證p1點是一個邊界點,而不是一個內部點,因為端點以及內部點不應該被刪除。z0(p1)是從p2至p9遍歷過程中其對應的像素值由0變?yōu)?的變化次數(shù),該值設置為1是為了保證刪除該點后區(qū)域的連通性。條件c和d中p4、p6出現(xiàn)了2次,即它們有一個為0,則c、d就滿足。待所有邊界點都被判斷完后,再一起將所有標記點刪除,接下來進入第二階段的刪除步驟。
第二步:對圖像再進行一次掃描,如果不為0的點的8鄰域滿足以下4個條件,則在圖像中刪除該點(設置該像素值為0);
a.2≤n(p1)≤6
b.z0(p1)=1
c.p2*p6*p8=0
d.p2*p4*p8=0
條件c、d中的p2、p8出現(xiàn)了2次,若其中有一個為0,則c、d就滿足。
為了確保將上述過程中存在的孤立噪點對整個亞像素定位精度的影響降到最低,此時由于已經(jīng)提取出了有一定寬度的線激光,不可以用中值濾波再次對孤立點去噪,因為中值濾波的特點是取其鄰域內的中間值,這樣會大大破壞提取出的骨架;因此比較合適的選擇是使用開運算來去除可能存在的噪點,即對圖像先腐蝕再膨脹,達到去除孤立點的目的。
(4)利用改進型重心法結合hough變換對線激光中心進行亞像素精確定位;
對圖像進行細化后,激光中心線的毛刺現(xiàn)象被明顯消除,線激光的寬度縮小至若干個像素。由于線激光光帶服從高斯分布,所以其極大值點并不在某一個像素點上,如果直接取某一個像素值作為線激光中心的精確位置勢必會造成偏差,所以本發(fā)明結合hough變換與重心法的優(yōu)點,通過改進型重心法獲得線激光中心的亞像素坐標,并利用hough變換來糾正噪點對改進型重心法的影響,最終確定其亞像素坐標。
傳統(tǒng)的重心法是通過計算整個行(或列)來得到線激光中心的亞像素坐標,將重心法應用到線激光提取中,可以找到光強最強的像素點,即:
其中,n表示圖像中每行像素的個數(shù)。
傳統(tǒng)的重心法極易受到噪聲干擾,針對此缺陷,將細化后的圖像分為目標和背景兩部分,其中目標部分是細化后的線激光,每次在使用重心法提取亞像素線激光中心之前,需要遍歷整行(或整列)的像素點,尋找目標區(qū)域,只對目標區(qū)域采取改進型重心法,如下式:
其中,x0表示目標區(qū)域左邊界像素的位置坐標,y0表示目標區(qū)域右邊界像素的位置坐標。
該方法優(yōu)點在于:公式(13)根據(jù)線激光的光強分布是高斯分布的特性,即灰度值越大的點,其越接近線激光中心位置,對應的像素值也較大,公式中增加了灰度值較強的像素點在公式中的權值,且縮小了重心法的計算范圍,提高了提取精度的同時減少了計算量。
重心法比較容易受到噪聲的干擾,針對此缺陷,本發(fā)明采用hough變換對改進型重心法得到的偽目標像素進行糾正。
一條直線在一個二維的坐標系中有兩種表示方式,即:
a.在笛卡爾坐標系中,可以由斜率和截距來表示;
b.在極坐標系中,可以由參數(shù)的極徑和極角來表示,對于hough變換,采用了極坐標系來表示直線,極坐標中的直線方程為:
化簡之后可以表示為:
r=xcosθ+ysinθ(15)
結合圖4所示,將其改寫成hough變換式,即自變量(x,y)到參數(shù)變量(r,θ)的映射,對于點(x0,y0),在極坐標中通過這個點的所有直線可以表示為:
r=x0cosθ+y0sinθ(16)
則對于一個給定的定點(x0,y0),在極坐標中對其極徑和極角來繪制出所有通過該點的直線,將得到一條正弦曲線。
圖像空間中所有過y=kx+b的點經(jīng)過hough變換后在參數(shù)空間都會相交于點(k,b),利用該性質,如果過兩個不同定點進行上述操作后,得到的曲線相交,就意味著這兩個點通過同一條直線。通過hough變換,可以將圖像空間中直線的檢測轉化為參數(shù)空間中對點的檢測。
具體如下:
1)在參數(shù)空間中建立一個二維(分別對應r,θ)計數(shù)器,實質就是二維數(shù)組cnt(ri,θi);數(shù)組中所有值都初始化為0;
2)掃描圖像空間中的所有點(xi,yi),通過hough變換進行圖像空間到參數(shù)空間的變換(ri,θi),計數(shù)cnt(ri,θi)+1;
3)確定一個閾值thr,圖像中有超過thr個點共線認為存在直線,cnt(ri,θi)>thr時,認為(ri,θi)可以組成圖像中的直線。
根據(jù)該性質,尋找相交于一點的曲線數(shù)量就可以檢測到一條直線,越多的點交于一點就意味著這個交點表示的直線由更多的點組成。
hough變換利用過直線的點的數(shù)量來確定一條直線,更具有全局性,其抗干擾能力較強,但是其計算量比較大。重心法的計算速度較快,對噪聲比較敏感。本發(fā)明針對hough變換和重心法的優(yōu)點,將其結合在一起:在沒有噪聲干擾的情況下,直接用改進后的重心法精確定位中心點的亞像素位置;當存在噪點時,首先將噪點刪除,然后通過該行上下各10行目標像素點作為樣本進行hough變換,得到由這些點構成的直線,用直線上對應的點代替原來的噪點,具體如下:
a)通過改進型重心法得到線激光中心的亞像素坐標;
b)對線激光中心亞像素坐標鄰域內目標像素的數(shù)量進行檢測;
c)如果目標點的數(shù)量滿足要求,則認為是目標點,轉為d),否則是噪點,轉為e);
d)繼續(xù)遍歷下一行亞像素點,并檢測其鄰域內目標點的數(shù)量;
e)以該噪點上下各10行的目標點為樣本,再進行hough變換,得到直線,并用該直線上對應的點代替該噪點,轉為d),直至遍歷完整個圖像中的目標像素為止。
以上實施例僅為說明本發(fā)明的技術思想,不能以此限定本發(fā)明的保護范圍,凡是按照本發(fā)明提出的技術思想,在技術方案基礎上所做的任何改動,均落入本發(fā)明保護范圍之內。