程詩翩, 何海波, 卿粼波, 何小海
(1 四川大學(xué) 電子信息學(xué)院, 成都 610065; 2 成都西圖科技有限公司, 成都 610065)
巖心圖像是油田勘探和地質(zhì)研究寶貴的分析資料,在一些圖像存儲(chǔ)和分析任務(wù)中,需要巖心圖像達(dá)到一定的分辨率。獲取高分辨率圖像可以通過降低相機(jī)采集高度來完成,但是必須多次拍攝才能采集到完整圖像。為了獲得完整的高分辨率巖心圖像,往往需要對(duì)多幅巖心圖像進(jìn)行拼接。
近年來,研究人員針對(duì)巖心圖像拼接做了許多有意義的工作。王丹等人提出了一種基于SURF-球面模型的巖心圖像拼接算法,它使用SURF算法檢測(cè)指定圖像區(qū)域的特征點(diǎn),提升了圖像配準(zhǔn)速度,但并不能精準(zhǔn)地對(duì)齊圖像[1];顧宮等人利用RANSAC (Random Sample Consensus)算法,結(jié)合特征向量篩選最優(yōu)特征點(diǎn),提高了配準(zhǔn)精度,但只能對(duì)齊較小視差的巖心圖像[2]。針對(duì)大視差圖像的拼接,目前已經(jīng)有一些比較成熟的方法。Brown M提出了Auto-Stitching算法,其以一個(gè)全局的單應(yīng)性矩陣對(duì)齊圖像,僅適合較小視差的場(chǎng)景[3];APAP (As-Projective-As-Possible)算法由Zaragoza等人提出,使用MDLT(Moving Direct Linear Transformation)計(jì)算方法,將圖像分為密集網(wǎng)絡(luò),每個(gè)網(wǎng)絡(luò)使用一個(gè)單應(yīng)性矩陣來對(duì)齊圖像,對(duì)視差的容忍能力有一定提高,但是在圖像變換的約束上僅有局部單應(yīng)性,會(huì)帶來較明顯的圖像扭曲失真[4];Chen 等人采用局部扭曲模型,用網(wǎng)格引導(dǎo)每個(gè)圖像的變形,獲得了良好的對(duì)齊和很小的局部失真,同時(shí)在變形函數(shù)中加入了全局相似性,一定程度上減少了圖像扭曲[5];Li J , Wang Z等人提出REW(Robust Elastic Warping)算法,先利用貝葉斯特征模型剔除匹配異常值,再通過正確的匹配點(diǎn)構(gòu)造變形函數(shù),接著對(duì)網(wǎng)格圖像進(jìn)行變形[6]。該方法能夠?qū)崿F(xiàn)更穩(wěn)健的對(duì)齊,在較大視差場(chǎng)景下,能夠獲取良好的拼接效果。
由于采集的巖心圖像存在非常明顯的視差,使用上述主流拼接方法仍然存在重影、扭曲失真等問題,無法達(dá)到理想效果。本文基于REW算法進(jìn)行圖像配準(zhǔn),提出一種改進(jìn)的最佳縫合線算法縫合圖像,有效地解決了重影和扭曲失真問題,從而使得巖心圖像拼接結(jié)果更接近真實(shí)場(chǎng)景。所做的改進(jìn)如下:
(1)通過調(diào)整圖像變形范圍,即只變形對(duì)齊重疊區(qū)域的中間部分,來減小圖像變形帶來的扭曲失真;
(2)結(jié)合最佳縫合線算法,通過引入視差信息到縫合線的能量函數(shù)當(dāng)中,在變形區(qū)域?qū)ふ乙粭l最佳縫合線來拼接圖像,解決重影問題的同時(shí)進(jìn)一步減少視差。
在柱狀巖心圖像采集過程中,通過水平移動(dòng)相機(jī)采集巖心圖像。由于柱狀巖心表面位于不同的平面,即距離鏡頭的遠(yuǎn)近程度不同,因此存在較大的景深差異,這會(huì)導(dǎo)致采集的巖心圖像有很明顯的視差[7]。
REW(Robust Elastic Warping)算法可以對(duì)視差圖像實(shí)現(xiàn)更加精確地對(duì)齊,在一定程度上消除了視差。首先,計(jì)算出兩張圖片的匹配特征點(diǎn),利用貝葉斯特征改進(jìn)模型自適應(yīng),去除匹配數(shù)據(jù)的異常值,再根據(jù)TPS(Thin Plate Spline)理論,用正確的匹配點(diǎn)構(gòu)造變形函數(shù),完成對(duì)重疊區(qū)域可靠且精準(zhǔn)的變形對(duì)齊;其次,通過線性減小非重疊區(qū)域上的變形函數(shù)逐漸將局部扭曲變?yōu)槿肿儞Q,從而保持全局投影性,減小非重疊區(qū)域的扭曲失真;最后直接投影融合圖像。
由于REW算法通過對(duì)整個(gè)重疊區(qū)域進(jìn)行圖像變形來實(shí)現(xiàn)圖像對(duì)齊,因此會(huì)帶來嚴(yán)重的圖像扭曲失真,視覺上與真實(shí)巖心圖像相差較大。本文通過調(diào)整變形函數(shù)的作用范圍來消除扭曲失真。
為了減小圖像變形帶來的扭曲失真,本文動(dòng)態(tài)調(diào)整REW算法中變形函數(shù)作用區(qū)域以及變形函數(shù)過渡到全局變換的區(qū)域。改進(jìn)算法流程如圖1所示,由于本文采用最佳縫合線算法拼接圖像,所以不需要嚴(yán)格對(duì)齊整個(gè)重疊區(qū)域,只需要對(duì)齊縫合線附近的區(qū)域即可。因此通過REW算法構(gòu)造變形函數(shù)之后,只在重疊區(qū)域中間部分變形對(duì)齊,并在重疊區(qū)域的兩端部分,線性減小變形函數(shù)到0,逐漸過渡到到全局變換,最后以改進(jìn)的最佳縫合線算法為向?qū)нM(jìn)行圖像拼接。

圖1 改進(jìn)REW算法流程
變形函數(shù)的系數(shù)的曲線圖如圖2所示。變形系數(shù)為1時(shí),表示對(duì)圖像進(jìn)行變形操作;變形系數(shù)為0時(shí),表示對(duì)圖像進(jìn)行全局變換。從圖2可以看出,改進(jìn)后的REW算法在不影響拼接結(jié)果的前提下,縮小了巖心圖像變形的范圍,因而減小了重疊區(qū)域的扭曲失真,使得拼接圖像更接近真實(shí)場(chǎng)景。
本文基于改進(jìn)的REW算法,利用最佳縫合線算法融合圖像。最佳縫合線算法在圖像的重疊區(qū)域搜索一條縫合線,通過縫合線將重疊區(qū)域分成左右兩部分,重疊區(qū)域的左右兩邊分別取左圖和右圖的像素,以此達(dá)到消除重影的目的[8]。搜索最佳縫合線主要有二個(gè)步驟:
(1)構(gòu)造能量函數(shù)。根據(jù)重疊區(qū)域的顏色信息和結(jié)構(gòu)信息構(gòu)建能量函數(shù),用于最佳縫合線的搜索;
(2)確定搜索準(zhǔn)則。根據(jù)一定的搜索準(zhǔn)則在重疊區(qū)域找到一系列使能量函數(shù)的值最小的坐標(biāo)點(diǎn),這些坐標(biāo)點(diǎn)連起來就是最佳縫合線。
傳統(tǒng)的最佳縫合線算法只考慮了重疊區(qū)域的顏色差異和結(jié)構(gòu)差異,雖然解決了重影問題,但不能自然地拼接大視差巖心圖像。本文將圖像的視差信息加入到能量函數(shù)當(dāng)中,使得最佳縫合線兩側(cè)的顏色、結(jié)構(gòu)和視差差異都達(dá)到理想范圍,進(jìn)而使圖像拼接過渡自然。
最佳縫合線的求解準(zhǔn)則,即能量函數(shù)如公式(1):
(1)
其中,(x,y)表示重疊區(qū)域的像素點(diǎn);Ecolor(x,y)表示兩幅圖像在重疊區(qū)域的顏色差異;Egeometry(x,y)表示重疊區(qū)域的結(jié)構(gòu)差異;E(x,y)表示最佳縫合線的能量函數(shù)。能量函數(shù)越小,說明在該像素點(diǎn)處,左右圖像的顏色和結(jié)構(gòu)最接近。
設(shè)Cl(x,y)、Cr(x,y)分別為重疊區(qū)域左圖和右圖在像素點(diǎn)(x,y)處的灰度值,則Ecolor(x,y)的計(jì)算公式可由式(2)表示:
Ecolor(x,y)=abs(Cl(x,y)-Cr(s,y)).
(2)
設(shè)SLx(x,y)、SLy(x,y)分別為左圖的重疊區(qū)域在點(diǎn)(x,y)處x方向的梯度和y方向的梯度;SRx(x,y)、SRy(x,y)分別為右圖的重疊區(qū)域在點(diǎn)(x,y)處x方向的梯度和y方向的梯度。則Egeometry(x,y)可由式(3)表示:
Egeometry(x,y)=
(3)
本文在構(gòu)造能量函數(shù)時(shí),將巖心上某點(diǎn)到巖心中心點(diǎn)的距離,作為視差信息,引入到能量函數(shù)中。由于巖心圖像屬于二維圖像,所有像素點(diǎn)都在一個(gè)平面上,若使用兩點(diǎn)之間的歐氏距離來表示視差,則忽略了實(shí)際像素點(diǎn)景深上的差異,會(huì)出現(xiàn)不同景深上的點(diǎn)擁有相同視差的情況,因此本文在真實(shí)場(chǎng)景下計(jì)算兩點(diǎn)之間的距離。
柱狀巖心圖像如圖3所示,設(shè)巖心上的任意兩點(diǎn)A(x0,y0)、B(x1,y1)。弧AC垂直于直線BC。柱狀巖心圖像橫截面如圖4所示,設(shè)OA與OC之間的夾角為θ,柱狀巖心半徑為R,C點(diǎn)坐標(biāo)為C(x0,y-y0),則CD長度為|y1-y0|,弧長AC可由公式(4)給出。
(4)
因此,可用公式(5)計(jì)算弧長AB。
(5)
設(shè)Eparallax(xl,yl)、Eparallax(xr,yr)分別為左右圖重疊區(qū)域圖像的視差信息,設(shè)圖3中A點(diǎn)為相機(jī)拍攝圖像的中心點(diǎn),A點(diǎn)處視差為零,則B點(diǎn)處視差可用弧長AB表示,因此Eparallax(xi,yi)(i=l,r)可由公式(5)表示。則重疊區(qū)域的視差Eparallax(x,y)可由左右重疊區(qū)域視差之和即公式(6)求得。
Eparallax(x,y)=Eparallax(xl,yl)+Eparallax(xr,yr).
(6)

圖3 柱狀巖心圖

圖4 柱狀巖心橫截面
本文能量函數(shù)如公式(7),首先將顏色、結(jié)構(gòu)和視差差異值歸一化到0~255,再通過w1、w2、w3調(diào)節(jié)每個(gè)差異值在能量函數(shù)中的占比,以達(dá)到最好的縫合效果,其中w1+w2+w3=1。

(7)
本文實(shí)驗(yàn)環(huán)境如:Intel Core i5-7500 @ 3.4GHz,8.00GB,64位操作系統(tǒng),程序采用c++編程語言編寫,在Visual Studio 2013中運(yùn)行。巖心圖像均由佳能5DSR相機(jī)采集得到。
為了驗(yàn)證本文算法對(duì)大視差巖心圖像拼接的有效性和可靠性,設(shè)置消融實(shí)驗(yàn),將REW算法、改進(jìn)REW算法、改進(jìn)REW算法+縫合算法以及改進(jìn)REW算法+改進(jìn)縫合算法(本文算法)進(jìn)行對(duì)比。圖5展示了上述4種算法對(duì)兩張大視差巖心圖像拼接的一組實(shí)驗(yàn)結(jié)果。在圖5中,紅色方框和綠色方框?yàn)槠唇訄D像的局部放大圖像,紅色方框表示錯(cuò)誤拼接區(qū)域,綠色方框表示正確拼接區(qū)域。

(a) REW算法

(b) 改進(jìn)REW算法

(c) 改進(jìn)REW算法+縫合算法

(d) 本文算法
REW算法在拼接大視差巖心圖像時(shí),存在明現(xiàn)重影和扭曲失真的問題,如圖5(a)所示。
調(diào)整REW算法變形函數(shù)和全局變換作用的范圍后,有效地減輕了第一塊放大區(qū)域的扭曲失真,但是并沒有解決第二、三塊區(qū)域的重影問題,如圖5(b)所示。
加入最佳縫合線算法拼接圖像,有效地消除了重影,但是由于視差太大,兩幅圖像沒有完全對(duì)齊,存在圖像縫合處過渡不自然的問題,如圖5(c)所示。
圖5(d)即本文算法,在圖5(c)算法的基礎(chǔ)上,將視差信息引入到最佳縫合線的能量函數(shù)中,縫合處過渡自然,基本與真實(shí)巖心一致,達(dá)到了實(shí)驗(yàn)預(yù)期的效果。
表1展示了各方法在兩組對(duì)比實(shí)驗(yàn)中的SSIM,本文算法通過改進(jìn)REW算法,減輕了扭曲失真,并結(jié)合改進(jìn)的最佳縫合線算法消除重影,有效且自然地拼接圖像,測(cè)得的SSIM更高。

表1 各方法SSIM及正確拼接區(qū)域?qū)Ρ缺?/p>
對(duì)于大視差圖像的拼接,傳統(tǒng)的圖像融合算法和最佳縫合線算法都不能達(dá)到很好的效果。本文對(duì)REW算法進(jìn)行改進(jìn),并提出了一種改進(jìn)的最佳縫合線算法。REW算法能夠有效的對(duì)齊視差圖像,但拼接圖像存在重影和扭曲失真問題。本文使用最佳縫合線算法進(jìn)行圖像拼接,并在能量函數(shù)中引入視差信息,消除了重影并減少了視差,使得圖像縫合自然。再通過調(diào)整REW算法變形函數(shù)的作用范圍,減弱了扭曲失真。實(shí)驗(yàn)結(jié)果表明,在拼接巖心圖像時(shí),本文算法對(duì)視差的忍耐程度更高,能夠獲得更加真實(shí)的拼接效果。但是當(dāng)視差進(jìn)一步擴(kuò)大時(shí),如何做到圖像的精準(zhǔn)對(duì)齊,是本文未來工作的重點(diǎn)。