賈衛(wèi)平,王邦國(guó)
(大連大學(xué) 機(jī)械工程學(xué)院 特種加工與功能材料制備遼寧省教育廳重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116622)
主動(dòng)視覺(jué)的結(jié)構(gòu)光測(cè)量系統(tǒng)的測(cè)量基于三角法測(cè)量原理。測(cè)量過(guò)程中將結(jié)構(gòu)光條紋投射在待測(cè)物體表面,結(jié)構(gòu)光條紋與待測(cè)物體相交時(shí),由于物體深度信息的變化結(jié)構(gòu)光受到調(diào)制,調(diào)制后的光條信息被CCD 攝像機(jī)采集為圖像后可用恢復(fù)待測(cè)物體的空間位置和尺寸信息。為獲取這些信息,需要對(duì)結(jié)構(gòu)光條紋的中心位置進(jìn)行精確提取。
國(guó)內(nèi)外學(xué)者對(duì)結(jié)構(gòu)光中心提取方法進(jìn)行了許多研究,主要應(yīng)用的結(jié)構(gòu)光條紋中心提取方法有極值法[1]、灰度重心法[2-4]、方向模板法[5]、曲線擬合法[6]等。
極值法算法簡(jiǎn)單、運(yùn)算速度快,對(duì)于圖像中符合高斯分布的光條提取效果較好,但當(dāng)投射在物體上光線過(guò)強(qiáng)時(shí),圖像中光條會(huì)存在多個(gè)極大值,造成中心提取精度差?;叶戎匦姆▽?duì)于曲率變化較大的條紋提取效果差。方向模板法應(yīng)用了可變方向模板檢測(cè)結(jié)構(gòu)光條紋的亞像素中心,該方法具有一定的抗噪聲能力,可對(duì)較短的斷線進(jìn)行修復(fù),但計(jì)算較復(fù)雜。高斯擬合法通過(guò)對(duì)光條截面進(jìn)行高斯擬合,根據(jù)擬合曲線的極值點(diǎn)確定結(jié)構(gòu)光條紋的亞像素中心位置,該方法適用于圖像中法線方向變化較小的光條。Steger 提出利用Hessian 矩陣計(jì)算結(jié)構(gòu)光條紋亞像素中心的方法[7],該方法具有檢測(cè)精度高、魯棒性好的特點(diǎn)。但是,該方法運(yùn)算量大,無(wú)法滿足結(jié)構(gòu)光條紋亞像素中心快速提取的需要,不能直接用于實(shí)時(shí)性要求高的場(chǎng)合。
本文提出了一種基于Hessian 矩陣的多結(jié)構(gòu)光條紋亞像素中心提取方法,可識(shí)別結(jié)構(gòu)光條紋并實(shí)現(xiàn)結(jié)構(gòu)光條紋亞像素中心的快速提取。
投影結(jié)構(gòu)光平面與被測(cè)物體相交后在物體表面形成一定寬度的光線條紋。如果在投影設(shè)備同時(shí)投射多個(gè)結(jié)構(gòu)光平面時(shí),則待測(cè)物體表面形成多個(gè)結(jié)構(gòu)光條紋,圖1(a)為圖像采集設(shè)備采集的多結(jié)構(gòu)光圖像中一個(gè)光線條紋的光強(qiáng)分布圖。圖1 中各圖的橫坐標(biāo)為像素位置,縱坐標(biāo)為像素點(diǎn)的灰度值,灰度值越大則光強(qiáng)越強(qiáng)。由圖1(a)可知,投射在待測(cè)物體表面的光線條紋橫截面的光強(qiáng)非均勻分布,呈現(xiàn)出中心灰度值大,邊緣灰度值小的特點(diǎn)。
當(dāng)光線條紋豎直投射在待測(cè)物體表面,以光條的水平方向?yàn)閤 軸,灰度值為y 軸,該光條可用下式表示:
通過(guò)求該式的一階導(dǎo)數(shù)的零值或二階導(dǎo)數(shù)最大值可求該線的亞像素中心。圖1(b)為拋物線擬合后的圖像,圖中的圓圈為擬合前像素坐標(biāo)位置,各像素點(diǎn)用虛線連接;實(shí)線為拋物線擬合曲線;豎線與拋物線擬合曲線的交點(diǎn)為曲線的頂點(diǎn),該頂點(diǎn)對(duì)應(yīng)的像素位置為光線條紋的中心。由圖1(b)可知,拋物擬合曲線頂點(diǎn)的像素坐標(biāo)與擬合像素點(diǎn)的坐標(biāo)不重合。拋物線頂點(diǎn)坐標(biāo)可通過(guò)一階導(dǎo)數(shù)的零點(diǎn)或二階導(dǎo)數(shù)的最大值求得。
圖1 像素位置及灰度值特征圖
為消除噪聲對(duì)中心提取的影響,可使用高斯濾波函降數(shù)噪降后噪的,函即數(shù)函為數(shù) T (f x ( ) x, )與則高 T斯 ( x函 )的數(shù) 二 gσ 階( x導(dǎo))數(shù)卷等積于。若高斯函數(shù) gσ( x)的二階導(dǎo)數(shù)與函數(shù) f ( x )的卷積,其最大值為光條的亞像素中心。 當(dāng)拍攝圖像中投影結(jié)構(gòu)光條非水平或豎直時(shí),光條的亞像素位置需要在x 和y 兩個(gè)方向上進(jìn)行調(diào)整,通過(guò)以下三個(gè)步驟實(shí)現(xiàn)亞像素中心計(jì)算:
(1)計(jì)算圖像 f ( x , y )中各點(diǎn)的Hessian 矩陣; Hessian 矩陣為:
各階高斯核如下式所示:
(2)根據(jù)Hessian 矩陣的特征值和特征向量確定像素點(diǎn) ( x0, y0)的二階方向?qū)?shù)的極大值法線方向?yàn)?/p>
在光條亞像素中心提取過(guò)程中要進(jìn)行多次高斯卷積,由于運(yùn)算量大,造成運(yùn)算速度慢,因此難以實(shí)現(xiàn)光條亞像素中心的快速提取。
為實(shí)現(xiàn)多結(jié)構(gòu)光條紋亞像素中心的快速識(shí)別和提取,根據(jù)結(jié)構(gòu)光條紋亞像素中心在光條灰度最大值附近的特點(diǎn),可在識(shí)別各結(jié)構(gòu)光條紋及各光條灰度最大值的基礎(chǔ)上,對(duì)灰度最大值附近的像素進(jìn)行高斯卷積運(yùn)算。
物體被投射結(jié)構(gòu)光后所拍攝的圖像如圖2 所示。圖像中結(jié)構(gòu)光水平投射,由于拍攝角度和位置的影響圖像中結(jié)構(gòu)光條紋呈一定角度向右上方傾斜,為識(shí)別結(jié)構(gòu)光條紋的位置可從上向下搜索。在搜索過(guò)程中會(huì)受到干擾光線的影響,如圖3 為圖像中沿豎直方向上各像素的灰度值。圖3 中橫坐標(biāo)為像素位置,其中,圖中的零位于圖像的最上端,縱坐標(biāo)為各像素對(duì)應(yīng)的灰度值。從圖3 中可看出,干擾光條的灰度值較小,均在25 以下。為消除干擾光線的影響,將圖2 中灰度值小于25 的像素點(diǎn)灰度置0,其余像素位置的灰度值保持不變。
圖2 投射結(jié)構(gòu)光后的物體圖像
圖3 各像素位置的灰度曲線
根據(jù)投射結(jié)構(gòu)光條的特點(diǎn),從圖像的最左端開(kāi)始每相隔一定像素值對(duì)圖像中光條數(shù)目進(jìn)行計(jì)數(shù)。設(shè)圖像中像素坐標(biāo)為( , )u v ,圖像左上角的u、v 值分別為u=1,v=1。在位置分別從上到下對(duì)圖像進(jìn)行搜索,直到圖像的右側(cè)為止。對(duì)圖像的 um列從上到下搜索時(shí),設(shè)在 vt前已搜索到l 個(gè)光條,若像素從變?yōu)闀r(shí),其灰度值從零變?yōu)榉橇阒担以诘椒秶鷥?nèi)各像素灰度值均大于零,則光條數(shù)為 l+ 1個(gè),否則仍為l 個(gè),并接著向下搜索,直到圖像邊緣為止。其中,r 為預(yù)先設(shè)定值。搜索完成后,在一定范圍內(nèi)光條的數(shù)目相同且同為最大值,則該數(shù)目即為光條數(shù)目。
確定結(jié)構(gòu)光條紋的數(shù)目后,選擇光條數(shù)目最大的橫坐標(biāo)位置 u 從上到下搜索,得到各光條的灰度最大值的像素坐標(biāo)L 為結(jié)構(gòu)光條的數(shù)目。確定 ui列各列光條最大灰度的像素位置后,即實(shí)現(xiàn)對(duì)光條的識(shí)別。
以存儲(chǔ)的第l 個(gè)光條上灰度最大的像素級(jí)中心( ul,i, vl,j)為起點(diǎn),先向左邊搜索,即確定當(dāng)前像素左邊到范圍內(nèi)灰度最大值的像素坐標(biāo)J 為整數(shù),且接著以為起點(diǎn),接著向左搜索可得到第l 個(gè)光條 ul,i- 2列的灰度最大像素坐標(biāo),左邊光條搜索完成后,以 ( ul,i, vl,j)為起點(diǎn)向右搜索,可得到第l 個(gè)光條右邊各列灰度最大值的像素坐標(biāo)。其它各結(jié)構(gòu)光條紋依次搜索可得到各結(jié)構(gòu)光條紋的像素級(jí)中心。圖4(a)為結(jié)構(gòu)光條像素級(jí)中心,圖4(b)為結(jié)構(gòu)光條像素級(jí)中心線局部放大圖。
圖4 提取的結(jié)構(gòu)光條紋像素級(jí)中心
對(duì)按豎直方向上提取的結(jié)構(gòu)光條紋上灰度最大的像素點(diǎn),以及該像素坐標(biāo)上下一定范圍內(nèi)的像素點(diǎn)進(jìn)行高斯卷積運(yùn)算,減小了運(yùn)算量,可實(shí)現(xiàn)結(jié)構(gòu)光條紋的亞像素精度提取。提取的結(jié)構(gòu)光條紋亞像素中心如圖5(a)所示,圖5(b)為局部放大圖。
圖5 光條亞像素中心
為提高結(jié)構(gòu)光條紋亞像素中心提取速度,提出了一種基于Hessian 矩陣的結(jié)構(gòu)光中心快速提取方法,該方法可用于多結(jié)構(gòu)光條紋識(shí)別及亞像素中心的快速提取。試驗(yàn)表明,該算法能準(zhǔn)確、快速的提取多結(jié)構(gòu)光圖像的光條亞像素中心,處理速度可達(dá)5 幅/s,可滿足實(shí)時(shí)處理的需要。
[1] 楊雪嬌, 池海紅. 一種改進(jìn)的光條中心提取方法[J]. 應(yīng)用科技, 2009, 36(12): 41-44.
[2] 李丹, 耿楠, 亢娟娜. 復(fù)雜背景下光條中心提取算法研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013, 30(3): 271-273, 314.
[3] 趙博華, 王伯雄, 張金, 等. 粗糙金屬表面光條中心提取方法[J]. 光學(xué)精密工程, 2011, 19(9): 2138-2145.
[4] 冷惠文, 徐春廣, 肖定國(guó), 等. 基于線結(jié)構(gòu)光的復(fù)雜深孔內(nèi)輪廓三維測(cè)量方法[J]. 北京理工大學(xué)學(xué)報(bào), 2013, 33(2): 139-143.
[5] 胡斌, 李德華, 金剛, 等. 基于方向模板的結(jié)構(gòu)光條紋中心檢測(cè)方法[J]. 計(jì)算機(jī)工程與應(yīng)用, 2002(11): 59-60, 109.
[6] 高世一, 楊凱珍. 變邊限高斯擬合提取激光條紋中心線方法的研究[J]. 儀器儀表學(xué)報(bào), 2011, 32(5): 1132-1137.
[7] STEGER C. An unbiased detector of curvilinear structures[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(2): 113-125.