摘要: 針對(duì)基于鄰域塊匹配的超維算法在重建過程中每次只能對(duì)1 個(gè)待重建塊進(jìn)行重建,并且字典搜索過程十分耗時(shí)導(dǎo)致重建效率低的問題,本文提出了2 種方法來對(duì)基于鄰域塊匹配的超維算法進(jìn)行計(jì)算速度的優(yōu)化. 首先,將分區(qū)域重建應(yīng)用到基于鄰域塊匹配的超維算法中,提出了分區(qū)域并行重建算法,實(shí)現(xiàn)了對(duì)多個(gè)待重建塊同時(shí)進(jìn)行重建;其次,在對(duì)每次字典元素搜索的過程中,使用了字典并行搜索,實(shí)現(xiàn)了這一過程的加速;最后將這2 種方法進(jìn)行結(jié)合,并且通過高中低3 種不同孔隙度的訓(xùn)練圖像生成的字典來對(duì)二維參考圖像進(jìn)行多次重建.通過將本文提出的算法、基于鄰域塊匹配的超維算法以及一些傳統(tǒng)重建算法的重建結(jié)果和真實(shí)巖心三維結(jié)構(gòu)的統(tǒng)計(jì)特征參數(shù)進(jìn)行對(duì)比并且將不同重建算法的重建時(shí)間進(jìn)行對(duì)比,來驗(yàn)證本文改進(jìn)的超維算法的有效性.
關(guān)鍵詞: 三維重建; 超維重建; 多孔介質(zhì); 并行算法; 多線程
中圖分類號(hào): TP391 文獻(xiàn)標(biāo)志碼: A DOI: 10. 19907/j. 0490-6756. 2024. 043002
1 引言
在數(shù)字巖心重建領(lǐng)域中,利用二維圖像進(jìn)行三維巖心重建是熱點(diǎn)研究方向. 重建算法主要分為傳統(tǒng)算法和基于學(xué)習(xí)的算法. 傳統(tǒng)算法有模擬退火[1]( Simulated Annealing,SA)和多點(diǎn)地質(zhì)統(tǒng)計(jì)[2](Multiple-point Geostatistics,MPS)以及相對(duì)應(yīng)的改進(jìn)算法[3]. 在基于學(xué)習(xí)的算法的領(lǐng)域中,Mosser 等[6]使用了對(duì)抗網(wǎng)絡(luò)模型[7]對(duì)砂巖進(jìn)行了重建,F(xiàn)eng 等[8]首次提出了BicycleGan[9]這一網(wǎng)絡(luò)模型的二維到三維的重建. He 等基于學(xué)習(xí)和模式匹配的概念,提出了超維[10](Super-Dimension,SD)的重建算法. 該算法成功地將相似的三維結(jié)構(gòu)作為先驗(yàn)信息來引導(dǎo)三維重建. SD 算法包括選擇訓(xùn)練圖像建立字典以及根據(jù)二維參考圖像進(jìn)行三維重建. 之后Li 等將馬爾可夫過程塊匹配[11,12]應(yīng)用到字典建立過程中,使重建過程學(xué)習(xí)到了先驗(yàn)信息,從而提高了匹配的精確度. Xia 等[13]提出了基于鄰域塊匹配的超維重建算法,優(yōu)化了字典的匹配方式,提高了重建精度.
本文基于分區(qū)域重建和多線程提出了分區(qū)域并行重建算法和字典并行搜索,進(jìn)一步提高了超維重建算法的效率. 首先,將待重建區(qū)域分為多個(gè)區(qū)域,不同區(qū)域進(jìn)行并行重建;其次,在字典搜索匹配的過程中,使用多線程來對(duì)字典元素進(jìn)行并行搜索匹配. 實(shí)驗(yàn)結(jié)果表明,基于不同的參考圖像,本文提出的算法可以在保證重建出較好的三維結(jié)構(gòu)的基礎(chǔ)上減少重建時(shí)間,提高超維算法的重建效率.
2 算法理論介紹
2. 1 基于鄰域塊匹配的超維算法介紹
2. 1. 1 字典建立過程
在訓(xùn)練過程中,將對(duì)樣本空間的一些三維特征進(jìn)行學(xué)習(xí),比如模式信息等,并將這些三維特征信息建立二維塊到三維塊的映射關(guān)系,通過此映射關(guān)系建立超維字典. 在真實(shí)的巖心樣本中依次截取三維塊,基于塊和字典的概念,將這些三維塊保存為字典,用“Value”表示中心塊,“Key”表示鄰域塊,圖1 為匹配對(duì)模塊的結(jié)構(gòu)和其結(jié)構(gòu)所對(duì)應(yīng)的位置.
鄰域塊分為左鄰域塊、前鄰域塊和下鄰域塊.考慮到巖心樣本的尺度和匹配過程的復(fù)雜度,若三維塊尺寸越小,字典建立過程越難以學(xué)習(xí)到真實(shí)巖心樣本的空間結(jié)構(gòu)關(guān)系,若三維塊尺寸過大,則需要很大的空間來儲(chǔ)存字典,并且匹配時(shí)間也會(huì)很長. 基于此,我們將三維塊表示為5×5×5 的正方體. 字典完整的建立過程如圖2 所示. 圖2中,使用鄰域塊匹配對(duì)模板并采用光柵路徑的方式對(duì)真實(shí)巖心進(jìn)行掃描,將每次掃描到的匹配對(duì)保存到字典集中作為1 個(gè)字典元素.
2. 1. 2 三維重建過程
在重建初期,先建立全空的三維結(jié)構(gòu),將二維參考圖像作為待重建三維結(jié)構(gòu)的第1 層,然后利用光柵路徑掃描的方式對(duì)待重建的三維結(jié)構(gòu)進(jìn)行掃描,對(duì)于每個(gè)待重建塊,基于其所有的鄰域塊在字典中進(jìn)行搜索匹配,將匹配字典元素的中心塊的數(shù)值賦予給待重建塊. 在全空的三維結(jié)構(gòu)中,底部第1 層和邊界區(qū)域沒有完整的鄰域塊對(duì)字典進(jìn)行匹配,那么對(duì)于這些待重建塊只利用那些有限的鄰域條件進(jìn)行匹配. 待重建塊和字典元素之間的匹配標(biāo)準(zhǔn)主要參考了鄰域塊匹配機(jī)制和孔隙度控制機(jī)制,定義如下.
字典匹配時(shí),會(huì)對(duì)待重建塊的鄰域塊和字典元素計(jì)算匹配因數(shù),如式(1)所示. 同時(shí)利用高斯權(quán)重分布對(duì)不同體素進(jìn)行加權(quán),高斯權(quán)重公式如式(2)所示.
其中M 為匹配因數(shù),DicBlock 為字典元素的鄰域塊,RecBlock 為重建鄰域塊,i 為字典元素鄰域塊和重建鄰域塊的體素,| DicBlock ( i )- RecBlock ( i ) |為匹配差的絕對(duì)值,Z 為每次匹配時(shí)體素的總數(shù).ω ( d ) 為高斯權(quán)重分布,d 為不同體素相對(duì)于中心塊的距離,通常將參數(shù)σ 設(shè)為1. 5,體素距離中心塊越近時(shí),權(quán)重越大,體素距離中心塊越小時(shí),權(quán)重越小.
孔隙度是巖心三維結(jié)構(gòu)的特征參數(shù)之一,可以在一定程度上反映巖心三維結(jié)構(gòu)的相似性[13].因此超維重建要使用孔隙度控制機(jī)制來對(duì)重建過程進(jìn)行控制.
在開始重建之前,首先使用式(3)計(jì)算參考圖像的孔隙度,其中Φref 為參考圖像的面孔率,Srefpore為參考圖像孔隙相的總面積,Sref 為參考圖像的面積. 之后利用式(4)對(duì)于每次的重建都計(jì)算當(dāng)前已經(jīng)重建好的結(jié)構(gòu)的孔隙度,其中Φrec 為當(dāng)前完成重建的三維結(jié)構(gòu)的孔隙度,Vrecpore 為完成重建的三維結(jié)構(gòu)中孔隙相的體積,Vrec 為完成重建的三維結(jié)構(gòu)的體積.
之后我們使用式(5)對(duì)當(dāng)前的孔隙度進(jìn)行分類,并且標(biāo)記孔隙度的狀態(tài),我們提出了閾值參數(shù)β,β 的定義如式(6)所示. 在重建的過程中,β 的值也隨之發(fā)生改變,這個(gè)改變會(huì)使孔隙度的控制機(jī)制隨重建的進(jìn)行而逐漸嚴(yán)格. 根據(jù)重建經(jīng)驗(yàn),將λ的值設(shè)為0. 05,ρ 為已完成重建的體積比.
在對(duì)每個(gè)待重建塊進(jìn)行重建時(shí),我們從字典中對(duì)當(dāng)前的待重建塊選擇3 個(gè)匹配因數(shù)最高的候選塊,然后從這3 個(gè)候選塊中計(jì)算出孔隙度最大的候選塊ElementMax 和孔隙度最小的候選塊ElementMin,若當(dāng)前孔隙度的狀態(tài)為Low 時(shí),則選擇候選塊ElementMax,若當(dāng)前孔隙度的狀態(tài)為High 時(shí),則選擇候選塊ElementMin. 若孔隙度的狀態(tài)處于Normal,則隨機(jī)從3 個(gè)候選塊中選擇一個(gè).
3 引入多線程的超維重建算法
3. 1 算法設(shè)計(jì)以及加速方法
基于鄰域塊匹配的超維算法的重建方向?yàn)楣潭ǖ墓鈻怕窂椒较?,因此在重建過程中,必須待前1 個(gè)重建塊重建完成后,才可以進(jìn)行下1 個(gè)重建塊的重建. 這導(dǎo)致每個(gè)時(shí)間點(diǎn)都只對(duì)1 個(gè)待重建塊進(jìn)行重建,從而使整個(gè)重建過程效率低. 因此可以將分區(qū)域重建引入到超維算法中,在重建過程中,將整個(gè)巖心的待重建區(qū)域分成多個(gè)區(qū)域,每個(gè)區(qū)域使用不同線程進(jìn)行并行重建,從而實(shí)現(xiàn)對(duì)多個(gè)待重建塊同時(shí)進(jìn)行重建. 同時(shí)超維算法所建立的字典集含有數(shù)萬個(gè)字典元素,在對(duì)三維結(jié)構(gòu)進(jìn)行重建時(shí),待重建塊的鄰域塊需要和字典的每個(gè)元素進(jìn)行匹配,這導(dǎo)致每個(gè)待重建塊都要進(jìn)行上萬次的匹配,這也是超維算法十分耗時(shí)的原因. 因此可以使用多線程來對(duì)字典進(jìn)行并行搜索匹配,從而實(shí)現(xiàn)對(duì)該過程的加速. 基于上述的2 個(gè)問題,本文設(shè)計(jì)了分區(qū)域并行重建算法和字典并行搜索,并將2 種方法進(jìn)行結(jié)合,具體實(shí)現(xiàn)方法如下.
3. 2 分區(qū)域并行重建算法
基于本文3. 1 節(jié)所述,若要同時(shí)對(duì)M 個(gè)塊進(jìn)行重建,則需要將整個(gè)待重建區(qū)域分成M 個(gè)區(qū)域,同時(shí)為了保證分區(qū)域后超維算法重建出的三維結(jié)構(gòu)和文獻(xiàn)[13]中的超維算法重建出的三維結(jié)構(gòu)相似以及考慮到計(jì)算機(jī)本身的線程數(shù)量,本文中取M為2,即將整個(gè)待重建區(qū)域分為2 個(gè)區(qū)域,但如果區(qū)域劃分過多,最終重建出的三維結(jié)構(gòu)會(huì)出現(xiàn)一定的不連續(xù)性,為了保證分區(qū)域后超維算法重建出的三維結(jié)構(gòu)和文獻(xiàn)[13]中的超維算法重建出的三維結(jié)構(gòu)相似,本文中取M 為2,即將整個(gè)待重建區(qū)域分為2 個(gè)區(qū)域,具體方法流程如圖3 所示. 在圖3中,將整個(gè)待重建區(qū)域分為2 個(gè)區(qū)域進(jìn)行重建,對(duì)于每個(gè)掃描到的待重建塊,其數(shù)值為最終通過匹配的字典元素中心塊的值. 當(dāng)待重建結(jié)構(gòu)中的所有待重建塊都完成重建時(shí),整個(gè)重建過程就結(jié)束.
重建過程中具體的線程選擇如式(7). Thread為所選線程,sl = 5 為重建步長,YRefImage 為參考圖像的長,XRefImage 為參考圖像的寬. 重建剛開始時(shí),先對(duì)0~4 層進(jìn)重建,. 此時(shí)重建路徑基于輸入的參考圖像,從左上角x = 0,y = 0 開啟線程Thread1,開始對(duì)第1 行進(jìn)行重建,每次重建完1 個(gè)三維塊時(shí),x + sl.
當(dāng)?shù)? 行的待重建塊重建完成一半時(shí),既當(dāng)完成對(duì)x = (XRefImage /2) + (sl - (XRefImage /2)% sl )- sl處重建時(shí),開啟線程Thread2,線程Thread2 從x =(XRefImage / 2) + (sl - (XRefImage / 2) % sl ) 處進(jìn)行重建,并重建至所需寬度.
當(dāng)開啟線程Thread2 時(shí),當(dāng)前層的右半部分由線程Thread2 負(fù)責(zé),不再由線程Thread1 負(fù)責(zé). 線程Thread1 負(fù)責(zé)整個(gè)重建區(qū)域的左半部分,并按照光柵路徑進(jìn)行重建. 線程Thread2 負(fù)責(zé)整個(gè)重建區(qū)域的右半部分,并按照光柵路徑進(jìn)行重建,直至完成對(duì)整個(gè)三維結(jié)構(gòu)的重建.
由于整個(gè)重建過程基于鄰域塊匹配機(jī)制,因此對(duì)于每行的重建,只有當(dāng)線程Thread1 重建完左半部分時(shí),線程Thread2 才可以開啟. 而對(duì)于整個(gè)三維結(jié)構(gòu)的重建,每層的重建要基于之前層進(jìn)行,即當(dāng)?shù)趌 層至l + 4 層全部重建完成時(shí),才可以對(duì)第l + sl 層至l + 4 + sl 層進(jìn)行重建.
由于整個(gè)重建過程基于孔隙度控制機(jī)制,為了保證分區(qū)域重建的三維結(jié)構(gòu)整體的孔隙度和基于鄰域塊匹配的超維算法接近,在進(jìn)行分區(qū)域重建時(shí),仍計(jì)算整體的孔隙度來對(duì)重建進(jìn)行約束,仍然使用式(4)中的Φrec 代表當(dāng)前完成重建的三維結(jié)構(gòu)的孔隙度,Vrecpore 此時(shí)為圖3 中所有已重建塊和鄰域塊中孔隙相的體積,Vrec 此時(shí)代表圖3 中所有已重建塊和鄰域塊的體積.
3. 3 字典并行搜索
在本文中,對(duì)字典進(jìn)行多線程并行搜索匹配的策略使用了OpenMP[14,15]. 在字典搜索匹配過程中,將字典集分成K 個(gè)區(qū)域,每個(gè)區(qū)域都開啟1 個(gè)獨(dú)立的線程來進(jìn)行搜索匹配,并且每個(gè)線程都選擇1 個(gè)匹配因數(shù)最高的字典做為候選塊,之后利用孔隙度控制機(jī)制在K 個(gè)候選塊中選出最佳候選塊.
考慮到2. 1 節(jié)中整個(gè)字典搜索匹配過程中所選擇的候選塊的個(gè)數(shù)以及計(jì)算機(jī)本身的線程數(shù)量,同時(shí)OpenMP 中線程的開啟和關(guān)閉也需要一定的時(shí)間,因此本文中將取K 為3. 即開啟3 個(gè)線程對(duì)字典進(jìn)行并行搜索. 假設(shè)字典集的元素個(gè)數(shù)為N,此時(shí)我們令Q = N/K,R = N%K. 字典并行搜索的示意圖如圖4 所示.
如圖4 所示,若N 個(gè)字典可以平均分為3 個(gè)區(qū)域,即R = 0,則每個(gè)線程對(duì)Q 個(gè)字典元素進(jìn)行搜索匹配,若N 個(gè)字典不可以均分,則將最后剩余的R 個(gè)字典使用最后1 個(gè)線程進(jìn)行搜索匹配.
4 實(shí)驗(yàn)及結(jié)果分析
利用計(jì)算機(jī)的斷層掃描(Computed Tomography)可以獲得巖心真實(shí)的三維微觀結(jié)構(gòu),在真實(shí)的巖心三維結(jié)構(gòu)序列圖中抽取1 張作為二維參考圖像,并通過本文提出的方法進(jìn)行重建. 本章實(shí)驗(yàn)采用 128 GB RAM、Inte(l R) Core(TM) I912900K3. 19 GHz 的64 位處理器的計(jì)算機(jī). 將重建結(jié)果和文獻(xiàn)[13]提出的基于鄰域塊匹配的超維重建算法、模擬退火算法[1]、MPS 算法[2]重建出的結(jié)果進(jìn)行對(duì)比,來驗(yàn)證本文提出的算法的有效性.
4. 1 算法有效性分析實(shí)驗(yàn)
分別對(duì)高孔隙度、中孔隙度、低孔隙度3 種不同孔隙度的巖心進(jìn)行重建實(shí)驗(yàn),實(shí)驗(yàn)中的每組字典分別是該組巖心的CT 序列圖. 我們從3 種CT序列圖中抽取的二維參考圖像如圖5 所示. 它們的面孔率分別為18. 75%、11. 27%、6. 77%,點(diǎn)尺寸長度為15. 0 μm,圖片尺寸大小為128×128. 圖片中的白色區(qū)域?yàn)榭紫断?,黑色區(qū)域?yàn)閹r石相.
在實(shí)驗(yàn)中,將3. 2 節(jié)和3. 3 節(jié)中的2 種方法進(jìn)行結(jié)合來對(duì)3 張參考圖像進(jìn)行10 次重復(fù)實(shí)驗(yàn),同時(shí)分別使用文獻(xiàn)[13]的超維算法、SA 算法、MPS算法進(jìn)行5 次重復(fù)實(shí)驗(yàn)來和本文方法進(jìn)行對(duì)比.
4. 1. 1 三維結(jié)構(gòu)對(duì)比
從不同算法的重復(fù)實(shí)驗(yàn)中隨機(jī)抽取1 組,生成三維結(jié)構(gòu)進(jìn)行對(duì)比,如圖6所示. 在圖6 中,(a)三維結(jié)構(gòu)A、(f)三維結(jié)構(gòu)B、(k)三維結(jié)構(gòu)C,分別代表了a、b、c 3 張參考圖像所對(duì)應(yīng)的真實(shí)巖心三維結(jié)構(gòu),(b)~(e)分別代表了參考圖像a 基于不同算法所重建出的三維結(jié)構(gòu),(g)~(j)分別代表了參考圖像b 基于不同算法所重建出的三維結(jié)構(gòu),(l)~(o)分別代表了參考圖像c基于不同算法所重建出的三維結(jié)構(gòu). 從重建出的三維結(jié)構(gòu)看,本文所改進(jìn)的超維算法和文獻(xiàn)[13]所提出的超維算法在視覺上基本一致,并且和真實(shí)巖心的三維結(jié)構(gòu)相似,但SA 算法和MPS 算法所重建的結(jié)果和真實(shí)的巖心三維結(jié)構(gòu)有一定的差異,從整體結(jié)果來看,本文改進(jìn)的超維算法和文獻(xiàn)[13]所提出的超維算法在重建出的三維結(jié)構(gòu)上基本保持一致,并且和真實(shí)巖心的三維結(jié)構(gòu)基本保持一致.
4. 1. 2 統(tǒng)計(jì)特征參數(shù)對(duì)比
對(duì)于數(shù)字巖心,統(tǒng)計(jì)特征參數(shù)可以反映重建結(jié)構(gòu)的微觀信息,常用的統(tǒng)計(jì)特征參數(shù)有兩點(diǎn)相關(guān)函數(shù)[16]、線性路徑函數(shù)[17]、兩點(diǎn)簇函數(shù)等[18]. 而對(duì)于三維巖心孔隙相的空間分布,局部孔隙度[19]這一參數(shù)可以很好地對(duì)其進(jìn)行反映. 在本節(jié)中使用兩點(diǎn)相關(guān)函數(shù)、線性路徑函數(shù)、兩點(diǎn)簇函數(shù)、局部孔隙度來對(duì)不同算法重建出的三維結(jié)構(gòu)和真實(shí)巖心進(jìn)行分析對(duì)比. 對(duì)比結(jié)果如圖7~圖9 所示. 圖7~圖9 分別表示了3 張參考圖像基于不同算法重建出的三維結(jié)構(gòu)和真實(shí)巖心統(tǒng)計(jì)特征參數(shù)的對(duì)比.
從統(tǒng)計(jì)特征參數(shù)來看,本文所改進(jìn)的算法的統(tǒng)計(jì)特征參數(shù)和文獻(xiàn)[13]中的超維算法的統(tǒng)計(jì)特征參數(shù)十分接近,并且和真實(shí)巖心的統(tǒng)計(jì)特征參數(shù)較吻合,SA 算法和MPS 算法的統(tǒng)計(jì)特征參數(shù)和真實(shí)巖心的統(tǒng)計(jì)特征參數(shù)的差異要大于本文所改進(jìn)的算法的統(tǒng)計(jì)特征參數(shù). 從曲線走勢和達(dá)到平穩(wěn)時(shí)的參數(shù)來看,本文所改進(jìn)的算法的重建結(jié)果也十分接近于真實(shí)巖心.
從局部孔隙度來看,本文所改進(jìn)的算法和文獻(xiàn)[13]中的超維算法相對(duì)于真實(shí)巖心,局部孔隙度峰值具有一定的差異,但是局部孔隙度分布的展寬基本保持一致. 這表明2 種算法重建出的三維結(jié)構(gòu)和真實(shí)巖心孔隙分布情況基本保持一致,但均質(zhì)性方面有一定的差異. 從整體結(jié)果來看,本文所改進(jìn)的算法重建出的三維結(jié)構(gòu)參數(shù)和文獻(xiàn)[13]中的超維算法基本保持一致,并且接近于真實(shí)的巖心.
4. 1. 3 孔隙度對(duì)比
對(duì)重建的三維結(jié)構(gòu)進(jìn)行孔隙度計(jì)算,其中對(duì)本算法重建10 次的結(jié)果計(jì)算平均值,對(duì)文獻(xiàn)[13]中的超維算法、SA 算法、MPS 算法重建5 次的結(jié)果計(jì)算平均值,計(jì)算結(jié)果如表1 所示. 從表中可以看出,本文改進(jìn)的算法和文獻(xiàn)[13]中的超維算法的計(jì)算結(jié)果基本一致.
4. 1. 4 時(shí)間對(duì)比
為說明引入多線程后超維算法的效率,我們對(duì)3 張參考圖像的重建時(shí)間進(jìn)行平均對(duì)比,其中本文算法進(jìn)行10 次重建求平均,文獻(xiàn)[13]中的超維算法、SA 算法、MPS 算法進(jìn)行5 次重建求平均,時(shí)間對(duì)比如表2 所示. 從實(shí)驗(yàn)結(jié)果可以看出,本文改進(jìn)的算法相比于文獻(xiàn)[13]中的超維算法在速度上有明顯提升,提升效率約為75%.同時(shí),本文改進(jìn)的算法相比于MPS 算法、SA 算法也有時(shí)間上的優(yōu)勢. 在保證重建結(jié)果的同時(shí),本文改進(jìn)的算法在重建效率上有明顯提升.
表3 為分別單獨(dú)使用分區(qū)域并行重建算法和字典并行搜索對(duì)參考圖像a 進(jìn)行5 次重建的平均時(shí)間對(duì)比. 從表 3 可以看出,分區(qū)域并行重建算法相比于文獻(xiàn)[13]中的超維算法在時(shí)間上的提升約為49%,而字典并行搜索的提升約為60%.
4. 2 泛化性實(shí)驗(yàn)
為了證明本文提出的方法具有泛化性,選用不同于3 組參考圖像孔隙度的巖心CT 序列圖生成字典,再對(duì)3 張參考圖像分別進(jìn)行5 次重建. 本組實(shí)驗(yàn)采用孔隙度為20. 47% 的巖心建立字典. 圖5中的3 張參考圖像基于本文算法、文獻(xiàn)[13]中的超維算法、SA 算法、MPS 算法所重建出的三維結(jié)構(gòu)如圖10 所示,(c)(h)(m)分別代表了3 張參考圖像按照新字典所建出的三維結(jié)構(gòu). 從結(jié)果來看,使用不同于參考圖像孔隙度的巖心生成的字典來進(jìn)行重建出的三維結(jié)構(gòu)和文獻(xiàn)[13]中的超維算法在視覺上基本一致,并且和真實(shí)巖心的三維結(jié)構(gòu)相似.
圖11~圖13 為重建結(jié)構(gòu)的統(tǒng)計(jì)特征參數(shù)和局部孔隙度對(duì)比結(jié)果,從對(duì)比結(jié)果可以看出本文所改進(jìn)的算法在使用新的字典所生成的三維結(jié)構(gòu)和真實(shí)巖心三維結(jié)構(gòu)相似,參數(shù)曲線都較為吻合. 從視覺以及參數(shù)分析來看,本文所改進(jìn)的超維算法具有泛化性.
5 結(jié)論
本文在基于鄰域塊匹配的超維算法的基礎(chǔ)上提出了分區(qū)域并行重建算法和字典并行搜索. 在重建階段,將待重建區(qū)域分成為個(gè)區(qū)域,每個(gè)區(qū)域使用不同線程進(jìn)行并行重建,實(shí)現(xiàn)了多個(gè)待重建塊同時(shí)重建. 在字典匹配階段,使用OpenMP 開啟多個(gè)線程來對(duì)字典元素進(jìn)行并行搜索匹配. 在后續(xù)的實(shí)驗(yàn)中,使用了不同字典來對(duì)參考圖像進(jìn)行重建. 從重建結(jié)果來看,本文所改進(jìn)的超維算法可以在保證重建效果的前提下,有效地減少重建所需時(shí)間,并且本文所改進(jìn)的超維算法具有泛化性.
參考文獻(xiàn):
[1] Yeong C L Y,Torquato S. Reconstructing randommedia[ J]. Phys Rev E, 1998, 57: 495
[2] Guardiano F B, Srivastava R M. Multivariate geostatistics:Beyond bivariate moments[M]//GeostatisticsTróia’92.[S. l.]: Springer Dordrecht, 1993,1: 133.
[3] Song S. An improved simulated annealing algorithmfor reconstructing 3D large-scale porous media[J]. JPetrol Sci Eng, 2019, 182: 106343.
[4] Xu S H, Teng Q Z, Feng J X, et al. Adaptive directsampling core 3D reconstruction algorithm [J]. J SichuanUniv(Nat Sci Ed), 2019, 56: 260.[許詩涵,滕奇志, 馮俊羲, 等. 自適應(yīng)直接取樣巖心三維重建算法[J]. 四川大學(xué)學(xué)報(bào)( 自然科學(xué)版), 2019,56: 260.]
[5] Bai H, Mariethoz G. A fast edge-based two-stage directsampling method[J]. Computers amp; Geosciences,2021, 150: 104742.
[6] Mosser L, Dubrule O, Blunt M J. Reconstruction ofthree-dimensional porous media using generative adversarialneural networks [J]. Phys Rev E, 2017,96: 043309.
[7] Goodfellow I, Pouget-Abadie J, Mirza M, et al.Generative adversarial networks [J]. CommunACM, 2020, 63: 139.
[8] Feng J, Teng Q, Li B, et al. An end-to-end threedimensionalreconstruction framework of porous mediafrom a single two-dimensional image based ondeep learning[J]. Comput Method Appl M, 2020,368: 113043.
[9] Jia P, Huang Y, Cai B, et al. Solar image restorationwith the CycleGAN based on multi-fractal propertiesof texture features [J]. Astrophys J Lett,2019, 881: L30.
[10] He X H, Li Y, Teng Q Z, et al. Learning-basedsuper-dimension (SD) reconstruction of porous mediafrom a single two-dimensional image[C]//2016IEEE International Conference on Signal Processing,Communications and Computing (ICSPCC).IEEE, 2016: 1.
[11] Li Y, He X, Teng Q, et al. Markov prior-basedblock-matching algorithm for superdimension reconstructionof porous media[J]. Phys Rev E, 2018,97: 043306.
[12] Li Y, Teng Q, He X, et al. Super-dimension-basedthree-dimensional nonstationary porous medium reconstructionfrom single two-dimensional image [J].J Petrol Sci Eng, 2019, 174: 968.
[13] Xia Z, Teng Q, Wu X, et al. Three-dimensional reconstructionof porous media using super-dimensionbasedadjacent block-matching algorithm[J]. PhysRev E, 2021, 104: 045308.
[14] Ayguade E, Chapman B, Mattson G T. How goodis OpenMP [J]. Sci Programming-NETH, 2003,11: 81.
[15] Hoffmann R B, L?ff J, Griebler D, et al. OpenMPas runtime for providing high-level stream parallelismon multi-cores[ J]. J Super Comput, 2022, 78: 1.
[16] Kerscher M, Szapudi I, Szalay A S. A comparisonof estimators for the two-point correlation function[J].Astrophysi J, 2000, 535: L13.
[17] Singh H, Gokhale A M, Lieberman S I, et al. Imagebased computations of lineal path probability distributionsfor microstructure representation[J]. MatSci Eng A-Struct, 2008, 474: 104.
[18] Torquato S, Beasley J D, Chiew Y C. Two-pointcluster function for continuum percolation [J]. JChem Phys, 1988, 88: 6540.
[19] Hilfer R. Local-porosity theory for flow in porous media[ J]. Phys Rev B, 1992, 45: 7115.
(責(zé)任編輯: 白林含)
基金項(xiàng)目: 國家自然科學(xué)基金(62071315)