專利名稱:基于脊線跟蹤與海森矩陣的結(jié)構(gòu)光光條中心提取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于脊線跟蹤與海森矩陣的結(jié)構(gòu)光光條中心提取方法,屬 于機(jī)器視覺技術(shù)領(lǐng)域。
背景技術(shù):
結(jié)構(gòu)光光條在視覺檢測和非接觸測量中己被廣泛應(yīng)用,它通常與CCD攝像 機(jī)按照三角法原理組成結(jié)構(gòu)光檢測系統(tǒng)。如圖1所示,結(jié)構(gòu)光光源1產(chǎn)生一線 狀光條,投射到被測物體2的表面,由于被測物體2的表面高度與檢測平臺4 不同,光條在被測物體2的表面形成一條變形條紋,利用CCD攝像機(jī)3采集所 述變形條紋的圖像,若要獲得被測物體2精確的三維輪廓,必須從被測物體2的 光條圖像中提取光條中心位置信息,故結(jié)構(gòu)光光條中心提取的精度與速度會直 接影響整個結(jié)構(gòu)光檢測系統(tǒng)的性能。
在工業(yè)檢測中,高精度是評定檢測設(shè)備性能優(yōu)良的重要指標(biāo)之一;高速度 可以實現(xiàn)在線檢測,大大提高工作效率。所以研究結(jié)構(gòu)光光條中心高精度快速 提取有著重要意義,它可為整個結(jié)構(gòu)光檢測系統(tǒng)的高精度在線檢測提供保證。
目前,常見的光條中心提取方法有極值法、閾值法、灰度重心法等(參見《基 于圖像的精密測量與運(yùn)動測量》于起峰,陸宏偉,劉肖琳,科學(xué)出版社,2002.), 這些方法實現(xiàn)簡單,速度快,但精度不高;曲線擬合法(參見《結(jié)構(gòu)光三維視 覺檢測中光條圖像處理方法研究》賀俊吉,張廣軍,北京航空航天大學(xué)學(xué)報, 2003, 29 (7): 593-597)只適用于光條圖像中法線方向變化不大的情況,具有 局限性;基于骨架的灰度重心法(參見《一種新的線結(jié)構(gòu)光光帶中心提取算法》: 吳慶陽,蘇顯渝,李景鎮(zhèn)等,四川大學(xué)學(xué)報(工程科學(xué)版),2007, 39(4): 151-155)、 方向模板法(參見《一種結(jié)構(gòu)光條紋中心快速檢測方法》雷海軍,李德華,王 建永等,華中科技大學(xué)學(xué)報(自然科學(xué)版),2003, 31 (1): 74-76)等雖然精 度較高,但是由于計算量大,難以實現(xiàn)快速檢測。Steger提出了一種基于Hessian矩陣(海森矩陣)的亞像素級精度結(jié)構(gòu)光光 條中心提取方法(參見《An unbiased detector of curvilinear structures[J]》 STEGER.C. IEEE Transactions on Pattern Analysis and machine Intelligence. 1998,20(2):113-125),該方法精度高、魯棒性好,但由于圖像中所有點均須參與 大規(guī)模高斯巻積運(yùn)算,計算量大,速度低,很難實現(xiàn)結(jié)構(gòu)光條紋中心線的快速 提取,難以滿足實時性要求較高的應(yīng)用場合。
公開號為CN101178812的中國專利"一種結(jié)構(gòu)光光條中心線提取的混合圖 像處理方法"在Steger方法的基礎(chǔ)上提出了一種基于感興趣區(qū)域(ROI)的結(jié)構(gòu)光 條紋中心混合圖像處理方法,該方法只對圖像中感興趣區(qū)域的點進(jìn)行大規(guī)模高 斯巻積運(yùn)算,雖處理速度有了較大提高,但處理的點數(shù)依舊較多,有進(jìn)一步改 進(jìn)空間。
發(fā)明內(nèi)容
本發(fā)明的目的是解決目前已有結(jié)構(gòu)光光條中心提取方法不能兼顧高精度和 高速度的問題,為實現(xiàn)結(jié)構(gòu)光光條中心高精度在線提取,提供了一種基于脊線 跟蹤與海森矩陣的結(jié)構(gòu)光光條中心提取方法。
本發(fā)明實現(xiàn)基于脊線跟蹤與海森矩陣的結(jié)構(gòu)光光條中心提取方法的步驟包
括
步驟一、圖像預(yù)處理,確定圖像目標(biāo)區(qū)域與圖像背景區(qū)域,確定目標(biāo)塊與
背景塊;
步驟二、令A(yù)為跟蹤點的變量,A:為自然數(shù),且&27,并初始化為^: = 7;
步驟三、在未被跟蹤過的目標(biāo)塊中選取方差數(shù)值最大的目標(biāo)塊,求取所述方 差數(shù)值最大的目標(biāo)塊中的灰度值最大點^ ,并作為第A:個像素級初步跟蹤點;
步驟四、用Hessian矩陣求所述第A個像素級初步跟蹤點^的法線方向上的 第A個亞像素級精度光條中心點G ,對所述第A個亞像素級精度光條中心點G 的坐標(biāo)取整,得到第A個像素級中心跟蹤點A,用Hessian矩陣求所述第A:個像 素級中心跟蹤點&的切線方向;
步驟五、將第A個像素級中心跟蹤點A在其切線方向上增加一個像素步長,獲取第&個亞像素級初步跟蹤點,對所述第A個亞像素級初步跟蹤點的坐
標(biāo)取整,得到第A: + /個像素級初步跟蹤點4+1;
步驟六、如果第& + 7個像素級初步跟蹤點4+1不屬于圖像目標(biāo)區(qū)域,或者 所述第A: + 7個像素級初步跟蹤點4+,已被跟蹤過,則執(zhí)行步驟七,否則,令 A = A: + 7,執(zhí)行步驟四;
步驟七、完成一條脊線跟蹤,及基于所述脊線的結(jié)構(gòu)光光條中心的提取;
步驟八、判斷未被跟蹤過的目標(biāo)塊的數(shù)量是否為零;
判斷結(jié)果為否,令^ = ^ + 7,然后執(zhí)行步驟三,判斷結(jié)果為是,獲得亞像素 級精度光條中心點集合(q, C2, q…CJ,基于脊線跟蹤與海森矩陣的結(jié)構(gòu)光 光條中心提取方法完成。
本發(fā)明的優(yōu)點
1、 處理速度快;
在處理速度方面,本發(fā)明由于采用了脊線跟蹤,只對光條脊線附近的點進(jìn) 行了大規(guī)模高斯巻積運(yùn)算,從而大大地減少了光條中心提取的冗余計算,處理 速度大大提高,實現(xiàn)了結(jié)構(gòu)光光條中心線的快速提取。
2、 處理精度高;
在處理精度方面,本發(fā)明由于采用了 Hessian矩陣進(jìn)行亞像素級精度光條中 心提取,處理精度高。
3、 魯棒性好。
圖1是本發(fā)明背景技術(shù)中結(jié)構(gòu)光檢測系統(tǒng)的原理示意圖,圖2是Steger方 法須進(jìn)行大規(guī)模巻積運(yùn)算處理的圖像點點數(shù)示意圖,圖3是公開號為 CN101178812的中國專利所述方法須進(jìn)行大規(guī)模巻積運(yùn)算處理的圖像點點數(shù)示 意圖,圖4是本發(fā)明所述方法須進(jìn)行大規(guī)模巻積運(yùn)算處理的圖像點點數(shù)示意圖, 圖5是灰度重心法提取的結(jié)構(gòu)光光條中心的效果圖,圖6是方向模板法提取的 結(jié)構(gòu)光光條中心的效果圖,圖7是本發(fā)明所述方法提取的結(jié)構(gòu)光光條中心的效 果圖,圖8是本發(fā)明在采集的結(jié)構(gòu)光光條灰度圖像上提取結(jié)構(gòu)光光條中心的過程示意圖,圖9是本發(fā)明提取結(jié)構(gòu)光光條中心的原理示意圖,圖10是本發(fā)明所
述方法的流程圖。
具體實施例方式
具體實施例方式下面結(jié)合圖2 圖IO說明本實施方式,本實施方式實現(xiàn)基
于脊線跟蹤與海森(Hessian)矩陣的結(jié)構(gòu)光光條中心提取方法的步驟包括
步驟一、圖像預(yù)處理,確定圖像目標(biāo)區(qū)域與圖像背景區(qū)域,確定目標(biāo)塊與 背景塊;
將結(jié)構(gòu)光光條灰度圖像進(jìn)行灰度值歸一化處理及方差歸一化處理,設(shè)置灰 度值閾值7;,所述結(jié)構(gòu)光光條灰度圖像中灰度值大于等于灰度值閾值 ;的點所
在區(qū)域為圖像目標(biāo)區(qū)域,否則為圖像背景區(qū)域;將所述結(jié)構(gòu)光光條灰度圖像分 成mx"個子塊,計算出每個子塊的圖像方差v^f/,yj,設(shè)定方差閾值7_,方 差1^/7,//大于等于方差閾值7,的子塊為目標(biāo)塊,否則為背景塊,
其中,ra小》7為第z'行第7列子塊的圖像方差數(shù)值,且/ S m , y、 " , m 2 7 ,
77^7, W,"為自然數(shù)。
步驟二、令&為跟蹤點的變量,A為自然數(shù),且A2h并初始化為& =門 步驟三、在未被跟蹤過的目標(biāo)塊中選取方差數(shù)值最大的目標(biāo)塊,求取所述方
差數(shù)值最大的目標(biāo)塊中的灰度值最大點^ ,并作為第A個像素級初步跟蹤點; 步驟四、用Hessian矩陣求所述第A個像素級初步跟蹤點^的法線方向上的
第&個亞像素級精度光條中心點& ,對所述第&個亞像素級精度光條中心點&
的坐標(biāo)取整,得到第A個像素級中心跟蹤點A,用Hessian矩陣求所述第A個像
素級中心跟蹤點A的切線方向;
步驟五、將第A個像素級中心跟蹤點^在其切線方向上增加一個像素步長,
獲取第A個亞像素級初步跟蹤點」& ,對所述第&個亞像素級初步跟蹤點Z),的坐
標(biāo)取整,得到第A + /個像素級初步跟蹤點4+1;
步驟六、如果第A + 7個像素級初步跟蹤點《,不屬于圖像目標(biāo)區(qū)域,或者
所述第^ + 7個像素級初步跟蹤點4+1已被跟蹤過,則執(zhí)行步驟七,否則,令
A = & + J ,執(zhí)行步驟四;
7步驟七、完成一條脊線跟蹤,及基于所述脊線的結(jié)構(gòu)光光條中心的提??; 步驟八、判斷未被跟蹤過的目標(biāo)塊的數(shù)量是否為零;
判斷結(jié)果為否,令^ = & + 7,然后執(zhí)行步驟三,判斷結(jié)果為是,獲得亞像素 級精度光條中心點集合(q, C2, C3 Ct},基于脊線跟蹤與海森矩陣的結(jié)構(gòu)光 光條中心提取方法完成。
本實施方式步驟一中說明了結(jié)構(gòu)光光條灰度圖像的預(yù)處理過程,將所述結(jié)構(gòu) 光光條灰度圖像區(qū)分出圖像目標(biāo)區(qū)域與圖像背景區(qū)域,所述圖像目標(biāo)區(qū)域與圖 像背景區(qū)域用于判定本實施方式步驟六中第& + 7個像素級初步跟蹤點4+1是否 可靠;然后對所述結(jié)構(gòu)光光條灰度圖像進(jìn)行圖像分塊,分成目標(biāo)塊和背景塊, 目標(biāo)塊就是圖像塊內(nèi)包含了光條區(qū)域的子塊,背景塊就是圖像塊內(nèi)不包含光條 區(qū)域的子塊。目標(biāo)塊的方差越大,表示目標(biāo)圖像塊內(nèi)灰度值變化越大,光條特 征越明顯。因為目標(biāo)塊中包含了光條區(qū)域,所以在跟蹤過程中,必須保證所有 目標(biāo)塊均被跟蹤到,所有的光條中心才提取完畢。
本實施方式步驟三中說明了確定第A:個像素級初步跟蹤點4的方法。進(jìn)行 脊線跟蹤時,必須選取一個可靠的初步跟蹤點,所述可靠的初步跟蹤點必須在 光條中心附近,才能保證跟蹤結(jié)果的正確性。本發(fā)明采用以下方法設(shè)置初步跟 蹤點方差vmfz》7數(shù)值最大的目標(biāo)塊為圖像中光條特征最明顯處,選擇所述 方差數(shù)值最大的目標(biāo)塊中灰度值最大的點為初步跟蹤點。
本實施方式步驟四中涉及用Hessian矩陣求光條圖像中點的法線方向及其 法線方向上的亞像素級精度光條中心點,其基本原理簡要介紹如下
以提取結(jié)構(gòu)光光條第一個亞像素級精度中心點C,為例進(jìn)行說明,基于 Hessian矩陣的亞像素級精度結(jié)構(gòu)光光條中心提取算法的基本思路是首先利用 Hessian矩陣確定第一個像素級初步跟蹤點(其中^,"分別表示第一 個像素級初步跟蹤點4的橫、縱坐標(biāo))的法線方向,然后在所述法線方向上利 用泰勒展開求出基于第一個像素級初步跟蹤點J/^,少J法線方向上的結(jié)構(gòu)光光 條第一個亞像素級精度光條中心點C,。
Hessian矩陣求法線的原理為圖像中點的法線方向就是圖像中點的二階方向?qū)?shù)絕對值取極大值的方向,該方向可以通過計算Hessian矩陣的特征值和特 征向量來確定。在結(jié)構(gòu)光光條圖像中,Hessian矩陣可以表示為
雞,力=^v (1) 、矽 kvJ
腫
;=%^帥,力,;=%^,)' ,XV=^W,30
其中,g(^,W為二維高斯巻積模板,0表示巻積運(yùn)算,/"W為以圖像點(^,刃 為中心,大小與所述二維高斯巻積模板gfx,^大小相等的圖像矩陣。第一個像 素級初步跟蹤點J/A,;^的法線方向由_W在該點的Hessian矩陣最大 特征值的絕對值所對應(yīng)的特征向量r ,w"給出。
Hessian矩陣求第一個亞像素級精度光條中心點C7的原理為設(shè)根據(jù) Hessian矩陣求得結(jié)構(gòu)光光條中第一個像素級初步跟蹤點J/x,,;^的法線方向 的單位向量為(X,"",以所述第一個像素級初步跟蹤點」/x^J為基點,對結(jié)
構(gòu)光光條橫截面上灰度分布函數(shù)進(jìn)行二階泰勒展開,則所述結(jié)構(gòu)光光條橫截面
上的點/" + A,乃+ 」的灰度值可以表示為
〃x, + & ,乃+ /化〃 W" +吼/口 W卿W/ O / 2 (2 )
其中// = —^"口, /,, ^由圖像/f;c,3;)分別與相應(yīng)微分形式的高斯模板
巻積得到,艮口
/ 二M^②取力,/ =^^取力 , x Sx 少
由于光條能量在光條法線方向上呈高斯分布,且光強(qiáng)越大,越接近光條中 心,那么使公式(2)中/^c,+m^"+加^的一階導(dǎo)數(shù)為零的點即為第一個像素
級初步跟蹤點X/^yJ所在法線上的第一個亞像素級精度光條中心點G ,由3//& = 0,根據(jù)公式(2)得到:
則基于第一個像素級初步跟蹤點^/V少j法線方向上的第一個亞像素精度
光條中心點q的位置為fx7 +加,,力+氣」。
其它亞像素級精度光條中心點《q, q…CJ的提取與上述過程相同,不再 贅述。
本實施方式步驟四與步驟五中說明了脊線跟蹤的跟蹤原則。在結(jié)構(gòu)光光條 圖像中,光條上點的法線方向上灰度值最大處為光條中心點,光條上點的切線 方向為該點延伸的方向;此外,步驟四中"對所述第A個亞像素級精度光條中 心點G的坐標(biāo)取整,得到第A個像素級中心跟蹤點A",及步驟五中"對所述 第A:個亞像素級初步跟蹤點的坐標(biāo)取整,得到第A: + /個像素級初步跟蹤點 4+1 "是由于Hessian矩陣法只能對圖像中真實存在的像素級圖像點進(jìn)行處理, 故如果所得點需要利用Hessian矩陣進(jìn)行處理時,須先將其坐標(biāo)求整。
參見圖8和圖9。圖8是本發(fā)明在采集的結(jié)構(gòu)光光條灰度圖像上提取結(jié)構(gòu)光 光條中心的過程示意圖,圖9是本發(fā)明提取結(jié)構(gòu)光光條中心的原理示意圖,其 中,10表示第A:個像素級初步跟蹤點4的法線,ll表示第A個像素級中心跟蹤 點&的法線,12表示第A個像素級中心跟蹤點&的切線。
本實施方式步驟六至步驟八說明了脊線跟蹤中的判定條件。已跟蹤過的圖 像點及已跟蹤過的目標(biāo)塊程序自動作標(biāo)記,與未被跟蹤的圖像點及目標(biāo)塊區(qū)分 開,在跟蹤過程中,若第A: + 7個像素級初步跟蹤點4+,不屬于圖像目標(biāo)區(qū)域, 或者所述第A: + 7個像素級初步跟蹤點4+,已經(jīng)被跟蹤過,則結(jié)束一條脊線的結(jié) 構(gòu)光光條中心提取,再重新開始,在未被跟蹤過的目標(biāo)塊中重新定位初步跟蹤 點,開始另一條脊線的結(jié)構(gòu)光光條中心提取過程,直至最后判斷所有的目標(biāo)塊 都被跟蹤過了,結(jié)束這幅圖像的處理,所述圖像中全部結(jié)構(gòu)光光條中心都被提 取出來。脊線跟蹤可以大幅減少所處理的圖像點點數(shù),從而提高處理速度,但普通 的基于脊線跟蹤的方法只能達(dá)到像素級精度處理,在指紋圖像處理,心血管圖
像、靜脈圖像等醫(yī)學(xué)圖像處理中有涉及;用Hessian矩陣提取結(jié)構(gòu)光光條中心, 處理精度高,但是其處理點數(shù)多,且均須參與大規(guī)模巻積運(yùn)算,處理速度慢。 本發(fā)明創(chuàng)新之處在于將兩者結(jié)合,并首次將脊線跟蹤方法用于結(jié)構(gòu)光光條處理 領(lǐng)域,實現(xiàn)了進(jìn)行結(jié)構(gòu)光光條中心提取時兼顧高精度和高速度。具體的優(yōu)點說 明如下-
1、 處理速度快;
在處理速度方面,本發(fā)明由于采用了脊線跟蹤,只對光條脊線附近的點進(jìn) 行了大規(guī)模高斯巻積運(yùn)算,從而大大地減少了光條中心提取的冗余計算,處理 速度大大提高,實現(xiàn)了結(jié)構(gòu)光光條中心線的快速提取。
對一幅大小為768X576像素、光條寬度約15像素的單線狀光條圖像,Steger 方法須參與大規(guī)模高斯巻積運(yùn)算的點數(shù)如圖2中黑色部分所示,為768X576點;
發(fā)明者劉宛予, 尉 楊 申請人:哈爾濱工業(yè)大學(xué)