(廣西師范大學(xué) 電子工程學(xué)院,廣西 桂林 541004)
單目光柵投影三維測(cè)量系統(tǒng)由相機(jī)、投影儀和計(jì)算機(jī)組成。投影儀向待測(cè)物體投影一組編碼圖案,圖案受到物體表面形貌的調(diào)制產(chǎn)生形變,再由相機(jī)捕獲;通過解碼調(diào)制后的編碼圖案,獲得待測(cè)物體表面上各點(diǎn)在相機(jī)和投影儀的圖像坐標(biāo),最后根據(jù)光學(xué)三角法計(jì)算待測(cè)物表面各點(diǎn)在世界坐標(biāo)系下的三維坐標(biāo)[1-3]。光柵投影三維測(cè)量技術(shù)具有非接觸、測(cè)量速度快、自動(dòng)化等優(yōu)點(diǎn),近年來在逆向工程、質(zhì)量檢測(cè)、文物保護(hù)等領(lǐng)域得到廣泛應(yīng)用。
其中相機(jī)和投影儀的標(biāo)定是系統(tǒng)工作的基本步驟與關(guān)鍵環(huán)節(jié),其精度直接決定了系統(tǒng)的測(cè)量精度。
圓形特征對(duì)噪聲的抑制性較強(qiáng),識(shí)別率較高[4],且在投影儀標(biāo)定時(shí),標(biāo)志點(diǎn)中心處的相位調(diào)制度較好,故圓形陣列標(biāo)定板常作為三維測(cè)量系統(tǒng)的標(biāo)定物。圓形特征的提取在圖像處理領(lǐng)域研究較早,對(duì)圖像中圓形及橢圓的識(shí)別具有較高的準(zhǔn)確度與速度[5-7],標(biāo)定場(chǎng)景中標(biāo)定板圖像特征簡(jiǎn)單,標(biāo)志點(diǎn)與非標(biāo)志點(diǎn)在輪廓的閉合性、輪廓長(zhǎng)度、圓度、對(duì)比度等特征上區(qū)分明顯,綜合使用以上方式可以準(zhǔn)確快速提取標(biāo)志點(diǎn)圖像[8,10,12]。
圓形標(biāo)志點(diǎn)像素坐標(biāo)的獲取精度主要由邊緣檢測(cè)精度決定,朱統(tǒng)晶等基于正交傅里葉—馬林距的算法來獲取亞像素邊緣[9],張虎等人通過邊緣梯度方向的灰度插值擬合高斯曲線進(jìn)行亞像素邊緣定位[10]。除傳統(tǒng)的插值、擬合、基于距等方法外,Agustin 等人提出了一種基于邊緣局部區(qū)域效應(yīng)的亞像素邊緣提取方法[11]。此外,標(biāo)志點(diǎn)圖像坐標(biāo)需要與空間坐標(biāo)匹配,夏仁波等人通過標(biāo)志點(diǎn)之間的幾何位置關(guān)系,對(duì)標(biāo)志點(diǎn)進(jìn)行了排序和匹配[12],以實(shí)現(xiàn)相機(jī)的自動(dòng)標(biāo)定。
投影儀使用逆向相機(jī)模型,使用相移輪廓術(shù)進(jìn)行投影儀像素編碼,通過相位建立標(biāo)志點(diǎn)的投影儀圖像坐標(biāo)與相機(jī)圖像坐標(biāo)的對(duì)應(yīng)關(guān)系[13],進(jìn)而與標(biāo)志點(diǎn)的空間坐標(biāo)相匹配來進(jìn)行標(biāo)定。光柵條紋會(huì)受到物體表面調(diào)制及環(huán)境光干擾等影響,引起相位誤差。通過補(bǔ)償、校正等方式可以減小相位誤差,毛翠麗等人提出多頻法和反向相位誤差補(bǔ)償結(jié)合的高效方法[14],鄭東亮等人提出雙四步相移的方法[15],有效減小非線性引起的相位誤差。標(biāo)志點(diǎn)圓心坐標(biāo)往往是亞像素級(jí)別的,圓心處的相位值需要通過插值獲得,Jakob Wilm 等人使用高斯徑向基函數(shù)方法進(jìn)行插值[16],進(jìn)一步提高圓心處相位獲取精度與穩(wěn)定性。
本文考慮邊緣變化劇烈程度和噪聲影響,根據(jù)邊緣特征靈活提出了基于擬合及局域區(qū)域效應(yīng)的亞像素邊緣檢測(cè)算法,獲得高精度標(biāo)志點(diǎn)圓心圖像坐標(biāo);同時(shí)提供一種基于透視變換圖像矯正的簡(jiǎn)易快速標(biāo)志點(diǎn)匹配方法。投影儀標(biāo)定中,除使用雙四步相移減小誤差之外,針對(duì)插值算法,提出一種基于徑向基的線性插值方式。
單目光柵投影三維測(cè)量系統(tǒng)模型如圖1所示。其中,世界坐標(biāo)系Ow?XwYwZw是物體在空間中所建立的絕對(duì)坐標(biāo)系,以標(biāo)定時(shí)的標(biāo)定物為基礎(chǔ)而建立,重建的點(diǎn)云通過該坐標(biāo)系來描述;相機(jī)坐標(biāo)系Oc?XcYcZc是以相機(jī)鏡頭光心為原點(diǎn)建立的坐標(biāo)系;相機(jī)圖像坐標(biāo)系oc?ucvc是以圖像的左上角為原點(diǎn)建立的二維坐標(biāo)系;投影儀坐標(biāo)系與投影儀圖像坐標(biāo)系同理。
圖1 三維測(cè)量系統(tǒng)模型示意圖Fig.1 Schematic of 3D measurement system model
在相機(jī)的小孔成像模型中,相機(jī)的成像過程可以簡(jiǎn)化為透視投影模型:
式中:s為尺度因子;A為相機(jī)的內(nèi)參矩陣;R3×3為世界坐標(biāo)系到相機(jī)坐標(biāo)系的正交旋轉(zhuǎn)矩陣;T3×1為平移向量;Mc是3×4 大小的相機(jī)投影變換矩陣。使用逆向相機(jī)模型對(duì)投影儀進(jìn)行數(shù)學(xué)建模,世界坐標(biāo)系下物點(diǎn)PW(XW,YW,ZW)到投影儀圖像Pp(up,vp)的轉(zhuǎn)換關(guān)系同相機(jī)一致,描述為
Mc、Mp進(jìn)一步表示為
通過系統(tǒng)標(biāo)定,可得投影變換矩陣Mc和Mp,由(1)式~(4)式可求得物體表面的世界坐標(biāo)[3]為
由上述公式可以看出,相機(jī)和投影儀的標(biāo)定精度直接決定了三維掃描系統(tǒng)的工作精度。
使用圓形陣列標(biāo)定板進(jìn)行相機(jī)標(biāo)定時(shí),需要拍攝不同方位的標(biāo)定板,并建立各個(gè)標(biāo)志點(diǎn)的世界坐標(biāo)與相機(jī)圖像坐標(biāo)的對(duì)應(yīng)關(guān)系。標(biāo)志點(diǎn)圓心的圖像坐標(biāo)直接參與標(biāo)定計(jì)算,提取的精度決定相機(jī)標(biāo)定的精度。
標(biāo)志點(diǎn)圖像特征簡(jiǎn)單,由黑色背景和白色圓形填充組成。由方形孔徑采樣定理[17],標(biāo)志點(diǎn)由一系列離散的灰度陣列描述,設(shè)對(duì)應(yīng)標(biāo)志點(diǎn)內(nèi)、外的像素灰度值分別為fA、fB,當(dāng)像素點(diǎn)內(nèi)有邊緣穿過時(shí),像素落在標(biāo)志點(diǎn)內(nèi)外兩個(gè)部分,該像素的灰度值可以表示為
式中:SA、SB分別為該像素點(diǎn)在標(biāo)志點(diǎn)內(nèi)、外所占的面積,設(shè)像素寬、高均為1,則有SA+SB=1。
圓形標(biāo)志點(diǎn)通過投影變換成像時(shí),往往退化成橢圓,而且由于相機(jī)的離焦等影響,實(shí)際空間中劇變的灰度經(jīng)過光學(xué)成像成為漸變的形式[17-18]。這種變化可以看作是系統(tǒng)點(diǎn)擴(kuò)展函數(shù)與圖像卷積的結(jié)果。圖像邊緣灰度值變化表征為高斯分布,標(biāo)志點(diǎn)邊緣退化模型可以用典型的二維高斯點(diǎn)擴(kuò)展函數(shù)描述為
式中:σp為點(diǎn)擴(kuò)展函數(shù)方差,方差越大,代表像素點(diǎn)灰度值受周圍像素影響越大。
邊緣的精確提取還受到噪聲的影響,通過分析標(biāo)志點(diǎn)內(nèi)外的灰度分布均勻區(qū)域的圖像,相機(jī)拍攝到圖像包含隨機(jī)噪聲[19],信噪比(signal noise ratio,SNR)為18 dB,SNR 定義為
式中:k為圖像的對(duì)比度;σr為隨機(jī)噪聲的標(biāo)準(zhǔn)差。
根據(jù)上述分析,采用圖像模擬方式生成標(biāo)志點(diǎn)圖像[4]。為直觀體現(xiàn)邊緣退化情況,本文提出了四分區(qū)的模擬標(biāo)志點(diǎn)圖像進(jìn)行邊緣檢測(cè)驗(yàn)證,如圖2(a)所示,四個(gè)分區(qū)1~4分別為理想邊緣圖像、添加隨機(jī)噪聲的邊緣圖像、使用點(diǎn)擴(kuò)展函數(shù)與邊緣圖像卷積后添加隨機(jī)噪聲、使用點(diǎn)擴(kuò)展函數(shù)與邊緣圖像卷積。
圖2 模擬標(biāo)志點(diǎn)與提取的亞像素邊緣Fig.2 Simulation of mark point and extracted sub-pixel edges
根據(jù)文獻(xiàn)[10]所提供的方法,將邊緣的二維高斯曲面擬合轉(zhuǎn)化為一維的高斯曲線擬合,其亞像素邊緣提取分為4個(gè)步驟:
1) 提取包含橢圓的感興趣區(qū)域(region of interesting,ROI),使用Canny算子定位像素級(jí)的單邊緣;
2) 邊緣點(diǎn)梯度方向的確定以及基于梯度方向的區(qū)域劃分;
3) 梯度方向的灰度插值以及灰度差求取;
4) 高斯曲線擬合。
步驟3 中求出的灰度差分曲線可以使用高斯曲線描述,曲線極值點(diǎn)即梯度方向上的邊緣,描述為
式中:N(x)為梯度方向上插值點(diǎn)x的灰度差分值;k,σ,μ分別為高斯曲線系數(shù)、方差和均值,其中k對(duì)應(yīng)曲線極值點(diǎn)大小,μ對(duì)應(yīng)極值點(diǎn)位置。
對(duì)(9)式兩邊取對(duì)數(shù),等式變成關(guān)于x的多項(xiàng)式:
當(dāng)存在2個(gè)以上有效灰度插值時(shí),擬合多項(xiàng)式可以得到μ=?p2/2p1。
使用文獻(xiàn)[11]中的方法對(duì)模擬生成的標(biāo)志點(diǎn)圖像進(jìn)行亞像素邊緣提取,結(jié)果如圖2(b)所示??梢钥吹剑瑢?duì)于圖中區(qū)域2 中的邊緣,該方法提取效果并不理想。如圖3所示,以區(qū)域2 中的點(diǎn)P(x,y)為例,該點(diǎn)處的邊緣變化劇烈且灰度差分分布曲線受噪聲影響,使用最小二乘法擬合時(shí)求得高斯曲線定點(diǎn)偏差較大。
圖3 P點(diǎn)局部像素分布及高斯曲線擬合示意圖Fig.3 Point Ppartial pixel distribution and schematic of Gaussian curve fitting
實(shí)際使用中,文獻(xiàn)[10]中的方法在σp比較大的情況下表現(xiàn)較好,但在σp較小的情況下表現(xiàn)較差。計(jì)算邊緣梯度方向上插值點(diǎn)的灰度差分值,本文取閾值為10,當(dāng)差分值中大于閾值的個(gè)數(shù)小于4的時(shí)候,判斷邊緣變化劇烈。變化劇烈的邊緣處,使用基于邊緣灰度值分布局部區(qū)域效應(yīng)的方法[11],替換高斯曲線擬合方法,進(jìn)行亞像素邊緣提取,如圖4所示。
圖4 二階曲線模擬邊緣示意圖及局部區(qū)域效應(yīng)邊緣提取Fig.4 Schematic of second order curve simulated edge and partial area effect edge extraction
圖4(a)中的邊緣用虛線表示,二次曲線可以表示在點(diǎn)P(x,y)附 近的邊緣走向,以P(x,y)為原點(diǎn)建立坐標(biāo)軸,列出曲線方程為
求解系數(shù)a、b、c后,可以計(jì)算曲線邊緣點(diǎn)P(x,y)處的亞像素位置。在已知邊緣像素點(diǎn)及周圍像素灰度值的情況下,以該點(diǎn)為中心選擇周圍像素建立方程與灰度值的對(duì)應(yīng)關(guān)系,可以求解方程系數(shù)。
首先進(jìn)行梯度方向區(qū)域劃分,劃分標(biāo)準(zhǔn)是邊緣點(diǎn)在灰度梯度方向上的直線斜率kl的大小。當(dāng)|kl|<1時(shí),為k1區(qū)域,否則為k2區(qū)域。已知點(diǎn)P(x,y)屬于k2區(qū)域,選擇該點(diǎn)周圍 5×3區(qū)域的像素,當(dāng)屬于k1區(qū)域時(shí),取 3×5區(qū)域的像素進(jìn)行計(jì)算。如圖4(a)所示,區(qū)域分為3列,計(jì)算每一列的灰度值之和,以SL、SM、SR表示為
式中:L、M、R表示區(qū)域中每一列在標(biāo)志點(diǎn)內(nèi)部,即邊緣內(nèi)側(cè)的面積,帶入曲線方程使用積分求得
根據(jù)3個(gè)等式,可以求得曲線方程系數(shù)為
實(shí)際使用中,fA、fB使用靠近所求邊緣內(nèi)外、側(cè)附近像素點(diǎn)均值求得。使用該方法求得亞像素邊緣如圖4(b)所示,邊緣獲取精度大幅度提高。
對(duì)比試驗(yàn)分別用方法1) 基于Canny 算子邊緣像素提取,方法2) 基于文獻(xiàn)[10]中高斯曲線擬合的亞像素邊緣提取,方法3) 本文所使用方法,對(duì)實(shí)際拍攝所得的標(biāo)志點(diǎn)圖像進(jìn)行處理及橢圓擬合(標(biāo)志點(diǎn)邊緣及橢圓焦點(diǎn)由方法3 得出)。由于實(shí)際拍攝的標(biāo)志點(diǎn)無法得到圓心的準(zhǔn)確位置,使用殘差的方法進(jìn)行對(duì)比,殘差由以下方式給出:首先用邊緣點(diǎn)進(jìn)行橢圓擬合,得到橢圓方程;計(jì)算所有參與擬合的點(diǎn)到橢圓方程曲線的距離,距離均值則為殘差。如表1所示,方法2的平均殘差為0.1477,方法3的平均殘差為0.0871,本文方法對(duì)比方法2,殘差精度提高41%。
表1 擬合殘差比較Table1 Comparison of fitting residual error
對(duì)標(biāo)志點(diǎn)進(jìn)行排序,建立標(biāo)志點(diǎn)的圖像坐標(biāo)與其世界坐標(biāo)一一的對(duì)應(yīng)關(guān)系。當(dāng)相機(jī)正視標(biāo)定板時(shí),標(biāo)志點(diǎn)橫平豎直地排列,容易進(jìn)行排序匹配,透視變換可以將圖像投影到一個(gè)新的視平面,使用透視變換矩陣將傾斜的標(biāo)定板進(jìn)行矯正得到
式中:(x,y,1)為圖像坐標(biāo);(x′,y′,1)為矯正后的圖像坐標(biāo);A為透視矩陣,通常令a33值為1。透視矩陣為8 自由度,因此透視矩陣只需要4個(gè)對(duì)應(yīng)的點(diǎn)就可以解出。透視變換矯正步驟如下:
1) 提取到圖像中標(biāo)志點(diǎn)后,通過面積篩選出定位標(biāo)志點(diǎn),如圖5(a)所示;
2) 通過定位標(biāo)志點(diǎn)之間的距離,首先為每個(gè)定位標(biāo)志點(diǎn)進(jìn)行區(qū)分,預(yù)算出每個(gè)定位標(biāo)志點(diǎn)透視變換矯正后的圖像坐標(biāo);
3) 求出透視矩陣;
4) 使用(16)式求出標(biāo)定板圖像透視變換矯正后的圖像坐標(biāo)為
5) 此時(shí)矯正后的標(biāo)志點(diǎn)橫平豎直排列,如圖5(b)所示,可以進(jìn)行排序和匹配。
完成上述操作后,可以使用張氏標(biāo)定法對(duì)相機(jī)進(jìn)行快速標(biāo)定,相機(jī)標(biāo)定的重投影誤差均值為0.0524像素,誤差分布如圖5(d)所示。
圖5 透視變換標(biāo)志點(diǎn)匹配過程及相機(jī)重投影誤差Fig.5 Process of mark points matching by perspective transformation and re-projection error of camera
投影儀使用相移輪廓術(shù)進(jìn)行像素編碼[20],相移條紋圖片的生成公式為
式中:In為圖片在點(diǎn)(x,y)處的灰度值;IA為條紋圖案的背景光強(qiáng);IB為條紋調(diào)制強(qiáng)度;φ(x,y)為待求相位,φ(x,y)=2πx/p,p為條紋周期;N為相移步數(shù);n表示第幾次相移。
實(shí)際使用中,生成的圖像從投影出來到相機(jī)捕獲的過程還會(huì)引入非線性的誤差,這種非線性往往不能用Gamma 變換等來描述。系統(tǒng)的灰度響應(yīng)如圖6(a)所示,這種非線性導(dǎo)致正弦條紋變形,從而引起周期性的相位誤差,如圖6(b)。本文使用文獻(xiàn)[15]中雙四步相移方式進(jìn)行誤差抑制。
圖6 灰度響應(yīng)曲線與相位誤差Fig.6 Gray scale response curves and phase error
圖7 相位插值示意圖Fig.7 Schematic of phase interpolation
在投影儀標(biāo)定時(shí),分別投影上述兩組水平、垂直條紋圖像序列并使用相機(jī)捕獲,另拍攝一張不包含條紋的圖片。使用多頻條紋,基于時(shí)域方式進(jìn)行相位展開。條紋圖像序列分別解碼得到水平、垂直的絕對(duì)相位,由標(biāo)志點(diǎn)圓心的絕對(duì)相位值可以計(jì)算出標(biāo)志點(diǎn)的投影儀圖像坐標(biāo)[13],如圖7所示。
拍攝的不包含條紋的標(biāo)定板圖片可以提取亞像素精度的標(biāo)志點(diǎn)圓心圖像坐標(biāo)。將標(biāo)定板的絕對(duì)相位看做關(guān)于圖像坐標(biāo)的二維函數(shù),通過插值方式獲取圓心的絕對(duì)相位值,常用插值方式為雙線性插值,公式為
式中:θ (x,y)表示該點(diǎn)處插值后的相位值,θ (x0,y0)表示圖7中對(duì)應(yīng)已知點(diǎn)的相位值,λx=x?[x],λy=y?[y],[x]、[y]表示取整數(shù)部分。使用雙線性差值的方式,進(jìn)行投影儀標(biāo)定,重投影誤差均值為0.1582,誤差分布如圖8(a)所示,分布特征明顯。文獻(xiàn)[16]中提到使用基于徑向基函數(shù)的插值方法,將插值問題轉(zhuǎn)化成曲面重構(gòu)問題,使用該方法求出標(biāo)志點(diǎn)圓心的投影儀圖像坐標(biāo),標(biāo)定后的重投影誤差均值為0.1602,誤差分布如圖8(b)所示??紤]到存在噪聲等因素影響,本文提出一個(gè)基于徑向基的插值方式為
式中:r(xi,yj)是點(diǎn)(xi,yj)到待插值點(diǎn)的歐氏距離,遍歷待插值點(diǎn)周圍已知點(diǎn),本文取所有歐氏距離小于2.6的已知點(diǎn),令經(jīng)式(20)變換后參與計(jì)算得
該方法是線性插值的方式,將已知點(diǎn)到待插值點(diǎn)徑向距離的高斯變換作為權(quán)值,使用SR保證權(quán)值和為1。使用本文方法對(duì)投影儀進(jìn)行標(biāo)定,重投影誤差均值為0.1203,誤差分布如圖8(c)所示,對(duì)比使用雙線性插值和基于徑向基函數(shù)的插值方法,標(biāo)定精度分別提高23.9%、24.9%。
圖8 投影儀重投影誤差Fig.8 Re-projection error of projector
搭建如圖9所示單目光柵投影三維測(cè)量系統(tǒng)對(duì)本文算法進(jìn)行驗(yàn)證。使用PointGrey公司FL3-U3-13Y3M-C COMS 相機(jī),分辨率1280×1024,相機(jī)搭配Computar 8 mm 定焦鏡頭;投影儀為TI公司DLP LightCrafter 4500 數(shù)字微鏡(DMD)投影儀,本征分辨率為912×1140,偏軸率為100%;使用9行11列圓形陣列標(biāo)定板,標(biāo)志點(diǎn)直徑18 mm,中心距離45 mm。使用本文標(biāo)定方法進(jìn)行系統(tǒng)標(biāo)定,結(jié)果如表2所示。
圖9 三維測(cè)量系統(tǒng)硬件Fig.9 Hardware of 3D measurement system
表2 系統(tǒng)標(biāo)定結(jié)果Table2 System calibration results
單目光柵投影三維測(cè)量系統(tǒng)完成標(biāo)定后,對(duì)標(biāo)準(zhǔn)塊進(jìn)行測(cè)量,測(cè)量距離為1050 mm。如圖10所示,導(dǎo)出點(diǎn)云到Geomagic Studio 軟件中進(jìn)行分析,本文方法測(cè)得標(biāo)準(zhǔn)塊正面有效點(diǎn)云30 290個(gè)。將左中右三個(gè)平面進(jìn)行擬合,標(biāo)準(zhǔn)差分別為0.221 mm、0.232 mm、0.210 mm,系統(tǒng)相對(duì)精度約為1:5000。
圖10 標(biāo)準(zhǔn)塊的三維測(cè)量實(shí)驗(yàn)Fig.10 3D measurement experiment of standard block
圖11 三維測(cè)量系統(tǒng)人臉重建結(jié)果Fig.11 Reconstruction results of face with 3D measurement system
使用單目光柵投影三維測(cè)量系統(tǒng)進(jìn)行人臉掃描,重建效果較好,如圖11所示。
本文研究了單目光柵投影三維測(cè)量系統(tǒng)標(biāo)定的兩個(gè)關(guān)鍵步驟。提出了基于擬合和局部區(qū)域效應(yīng)相結(jié)合的亞像素邊緣檢測(cè)方法,對(duì)標(biāo)志點(diǎn)邊緣進(jìn)行高精度提取,標(biāo)志點(diǎn)邊緣平均殘差為0.0871。對(duì)比基于擬合方法提取的邊緣殘差,精度提高了41%,并提供了一種快速簡(jiǎn)單的、基于透視矯正的標(biāo)志點(diǎn)自動(dòng)化匹配方法,相機(jī)標(biāo)定重投影誤差均值為0.0524像素。投影儀標(biāo)定中,分析相位誤差產(chǎn)生原因并使用雙四步相移減小誤差。針對(duì)插值算法,提出一種基于徑向基的線性插值方式,投影儀標(biāo)定重投影誤差均值為0.1203像素,對(duì)比雙線性插值方式,精度提高23.9%。使用上述標(biāo)定方法,有效地提高了單目光柵三維測(cè)量系統(tǒng)的標(biāo)定精度。