王思怡,何小海,卿粼波,羅彬彬
(1.四川大學(xué) 電子信息學(xué)院,四川 成都 610065;2.成都西圖科技有限公司,四川 成都 610065)
近年來,隨著油氣勘探技術(shù)的不斷演進(jìn),地質(zhì)學(xué)家推出了新的測(cè)井技術(shù)——地層微電阻成像(Formation MicroScanner Image,FMI),此技術(shù)不但可以提供直觀可靠的地層定性解釋信息,還能夠從中提取定量參數(shù)來完成儲(chǔ)層評(píng)價(jià)[1]。為了后續(xù)處理和展示地質(zhì)信息,就需要利用圖像分割技術(shù)將FMI井道以及核磁共振井道圖像內(nèi)的有效信息從背景中分離出來進(jìn)行提取。目前井道圖像信息提取通常采取的算法有輪廓提取算法,該方法提取出的區(qū)域塊較零散,并且通過膨脹腐蝕的預(yù)處理操作之后,數(shù)據(jù)區(qū)域顏色驟變面積偏大,得到區(qū)塊數(shù)量較多,無法區(qū)分出需要的區(qū)塊,同時(shí)多次進(jìn)行膨脹腐蝕得到的邊界相對(duì)粗糙,會(huì)出現(xiàn)部分區(qū)域多余或者丟失[2]。除此之外,還可使用閾值分割算法完成井道圖像的分割,李雪英等首先選取這一方法對(duì)成像測(cè)井圖像進(jìn)行了分割,在選取閾值之前還進(jìn)行了濾波去噪的預(yù)處理工作[3];趙軍等也在大量研究奇異點(diǎn)多閾值分割算法、圖像間模糊散度的閾值化等算法的基礎(chǔ)上,將地層中的目標(biāo)項(xiàng)從復(fù)雜的背景中分離[1];何風(fēng)等對(duì)蟻群優(yōu)化的最大類間方差法的圖像分割算法進(jìn)行了大量研究,提升了算法性能[4];柯式鎮(zhèn)等也選擇采用雙閾值分割法進(jìn)行圖像分割處理[5]。但是閾值分割算法仍存在不可避免的問題:需要通過大量實(shí)驗(yàn)選取合適的閾值,人工耗費(fèi)量大,且分離出的區(qū)域零散;當(dāng)與背景存在粘連現(xiàn)象時(shí),分割效果差,分割出的井道不完整會(huì)影響后續(xù)處理和展示地質(zhì)信息以及參數(shù)的計(jì)算[3]。
綜上分析,目前井道抽析通常采取的分割方法仍存在用戶交互復(fù)雜以及處理精確度方面的不足,因此本文詳細(xì)闡述了基于Grabcut算法的圖像抽析系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),介紹了其三個(gè)子模塊實(shí)現(xiàn)過程中的技術(shù)問題,提出了采用結(jié)合Grabcut算法精確分割的井道圖像抽析方法。該系統(tǒng)已經(jīng)被相關(guān)油田部門采用,并得到了專家的認(rèn)可。
為了方便油田部門系統(tǒng)的信息展示以及數(shù)據(jù)管理,井道圖像抽析系統(tǒng)要實(shí)現(xiàn)的功能有:定位并識(shí)別井道文字信息,如井名、井段、井深以及圖片比例等,如圖1(a)箭頭所指;分割井道中的圖像道以及頭部條形色道,如圖1(b)箭頭所指;將所有圖片存儲(chǔ)在本地并將數(shù)據(jù)信息入庫。
圖1 待處理井道圖片
基于對(duì)抽析系統(tǒng)的需求分析,本系統(tǒng)主要分為以下三個(gè)模塊:光學(xué)字符識(shí)別(Optical Character Recognition,OCR)文字解析模塊、井道圖像分割模塊以及數(shù)據(jù)庫存儲(chǔ)模塊,實(shí)現(xiàn)了從井道圖中解析所需文字信息,將識(shí)別的圖像道和圖像道表頭中的色帶信息提取后分別存儲(chǔ)于本地,而后對(duì)提取的圖片進(jìn)行規(guī)定比例尺的抽析,再將所有信息存入本地?cái)?shù)據(jù)庫的流程。系統(tǒng)流程如圖2所示。
圖2 系統(tǒng)流程圖
1.2.1 文字解析模塊
文字解析模塊實(shí)現(xiàn)了所需文字提取,由于井道圖片文字信息除包含的井名、井號(hào)、井道比例以及起止深度、終止深度等有效信息外,還包含了其他繁瑣的干擾信息,因此整個(gè)文字提取過程較為復(fù)雜,故本系統(tǒng)采取OCR算法進(jìn)行井道文字提取。本系統(tǒng)基于HP公司開發(fā)的Tesseact-ocr庫從圖像中提取文本,文字解析流程可以概括為:首先記錄包含文字信息的感興趣區(qū)域(Region Of Interest,ROI)區(qū)域坐標(biāo),截取特定區(qū)域ROI后使用OpenCV顏色空間轉(zhuǎn)換函數(shù)cvtColor將該區(qū)域轉(zhuǎn)化為灰度圖像,繼而使用threshold函數(shù)設(shè)定閾值后實(shí)現(xiàn)圖片二值化,至此,預(yù)處理部分完成。經(jīng)過預(yù)處理的圖像大大減少了無效復(fù)雜信息的干擾,可更好地反映圖像局部特征。預(yù)處理后使用tesseract方法將處理后的圖片轉(zhuǎn)化為txt文件再通過OCR庫進(jìn)行識(shí)別。在OCR庫提取完所有文字信息之后,通過GetInfoByRegex()進(jìn)行特殊格式文字的正則匹配。至此便可以精準(zhǔn)快速地提取所需文字信息。
1.2.2 井道圖像分割模塊
井道圖像分割模塊將所需提取的圖像道分割處理,如何有效地從井道圖像的干擾信息中精準(zhǔn)提取出目標(biāo)圖像是本文重點(diǎn)討論的問題,在分析現(xiàn)有方法的不足后,選擇采用改進(jìn)的Grabcut算法實(shí)現(xiàn)?;贕rabcut算法的改進(jìn)方法以及操作步驟將在下一節(jié)詳細(xì)闡述。
1.2.3 數(shù)據(jù)庫存儲(chǔ)模塊
數(shù)據(jù)庫作為主要的數(shù)據(jù)存儲(chǔ)單元,對(duì)系統(tǒng)的并發(fā)量、穩(wěn)定性、數(shù)據(jù)的安全性、操作的流暢性都起著重要的作用。數(shù)據(jù)庫存儲(chǔ)模塊負(fù)責(zé)保存圖像抽析的關(guān)鍵信息,考慮到數(shù)據(jù)量規(guī)模大需要批量導(dǎo)入的特性以及日常維護(hù)的便利,本系統(tǒng)選擇使用輕量、可以兼容主流操作系統(tǒng)、使用方便的MySQL數(shù)據(jù)庫存儲(chǔ)相關(guān)數(shù)據(jù)以便后續(xù)網(wǎng)頁端的調(diào)用。根據(jù)需要存取的信息設(shè)計(jì)數(shù)據(jù)表,表中主要包含圖像類型、井名、井號(hào)、深度、圖片存儲(chǔ)地址等字段,并將井名設(shè)為主鍵以加快數(shù)據(jù)庫操作速度。存儲(chǔ)模塊對(duì)上述兩個(gè)模塊處理后得到的結(jié)果,如井名、井號(hào)、井道起止深度以及各個(gè)縮放規(guī)格的井道圖的存儲(chǔ)路徑可進(jìn)行增、刪、查、改等操作,用戶在連接服務(wù)器后即可使用Navicat在本地對(duì)數(shù)據(jù)庫進(jìn)行管理。
井道圖像分割包含頭道色帶的提取和圖像道的提取。井道圖像可分為曲線道、深度道以及圖像道。如圖1(b)所示,需要分割的圖像道較其他部分顏色以及紋理特征突出,不像其他區(qū)域像素多為黑白,圖像道區(qū)域像素值分布廣泛且顏色驟變明顯,因此使用現(xiàn)有的輪廓提取和閾值分割算法會(huì)出現(xiàn)分割區(qū)域零散、邊界模糊而導(dǎo)致誤分割等情況。本系統(tǒng)針對(duì)這一問題,提出采取Grabcut算法來首先確定需要分割的數(shù)據(jù)部分,并在Grabcut分割后結(jié)合灰度化、最大類間方差算法[6](Otsu)進(jìn)行圖像二值化、遍歷像素點(diǎn)尋找邊界等處理來精確分割井道圖像。
Grabcut算法在交互式圖像分割領(lǐng)域影響極其深刻,該算法通過矩形框標(biāo)出目標(biāo)區(qū)域,對(duì)前景以及背景顏色空間建立了高斯混合模型GMM,用GMM參數(shù)進(jìn)行學(xué)習(xí)并且估計(jì)過程中可進(jìn)化的迭代算法,而后用其取代一次最小估計(jì)來完成能量最小化[7]。Grabcut算法將圖像映射為網(wǎng)絡(luò)圖s-t圖[8],如圖3所示,其中s表示前景終點(diǎn),t表示背景終點(diǎn)。邊集中包含s、t與其他節(jié)點(diǎn)的相連邊以及相鄰節(jié)點(diǎn)之間邊,邊的權(quán)值則是像素與前景背景的相似度和相鄰像素點(diǎn)之間差異的反映,它是由k-means算法初始化GMM模型后計(jì)算得出的[7]。在構(gòu)造s-t圖后,用最大流-最小割算法進(jìn)行切分,而后用切分結(jié)果作為下次迭代的初始標(biāo)簽,通過迭代不斷更新,優(yōu)化GMM參數(shù),使能量函數(shù)收斂于最小值,因此就可以將圖像的分割問題轉(zhuǎn)化為能量函數(shù)的最小問題。
圖3 s-t圖
能量函數(shù)表示如式(1):
(1)
圖像切割模塊的程序流程圖如圖4所示。
圖4 圖像切割模塊的程序流程圖
2.2.1 基于Grabcut算法確定數(shù)據(jù)
將需要提取的井道數(shù)據(jù)部分用矩形框圈定,矩形框外像素被標(biāo)定為背景,框內(nèi)像素標(biāo)定為所需前景。使用Grabcut函數(shù)根據(jù)傳入的所需參數(shù),進(jìn)行前景背景分離操作。而后將生成的結(jié)果保存在掩膜mask中,使得背景被置為0,前景被置為1。接著經(jīng)過不斷地迭代篩選,將mask作為掩碼,把篩選出來的前景復(fù)制到目標(biāo)圖像中并將目標(biāo)圖像顯示出來。以上操作可以最大化地保留目標(biāo)井道的圖像而消除井道噪聲以及井道干擾。原始圖和Grabcut算法分割結(jié)果圖分別如圖5(a)、(b)所示。
2.2.2 結(jié)合Otsu算法準(zhǔn)確提取目標(biāo)
將分割后提取的數(shù)據(jù)部分進(jìn)行下一步確定輪廓的預(yù)處理,通過bitwise_not方法進(jìn)行顏色反轉(zhuǎn)以改變背景色,轉(zhuǎn)化為灰度圖后采取Otsu二值化算法[6]進(jìn)一步處理。Otsu二值化算法可以免去人工實(shí)驗(yàn)測(cè)試合適閾值的繁瑣步驟,處理后的圖片信息量減少,圖片被穩(wěn)定地分為前景和背景兩大類,可以更容易提取出井道輪廓??蚨ó?dāng)前數(shù)據(jù)區(qū)域,對(duì)整個(gè)數(shù)據(jù)區(qū)域像素點(diǎn)逐個(gè)遍歷,并對(duì)灰度值小于10的點(diǎn)進(jìn)行計(jì)數(shù),若計(jì)數(shù)點(diǎn)占列總數(shù)大于65%即認(rèn)為該列為黑邊,記錄x軸坐標(biāo),通過判斷像素點(diǎn)的范圍,找出數(shù)據(jù)區(qū)上下邊界坐標(biāo)并進(jìn)行切割。
2.2.3 表頭提取
據(jù)圖像特征的觀察,表頭輪廓為粗黑邊的矩形區(qū)域。由于每張圖片的表頭區(qū)域并不固定,通過現(xiàn)有實(shí)驗(yàn)方法無法準(zhǔn)確標(biāo)記大概的有效區(qū)域,因此采用人工交互的方法以提高普適性。在需要切割的黑邊上方畫線標(biāo)記,對(duì)標(biāo)記下的區(qū)域逐像素點(diǎn)遍歷,確定邊緣的步驟與2.2.2節(jié)中尋找黑邊框確定數(shù)據(jù)區(qū)域的步驟相同,結(jié)合已查找的左右邊界為表頭的左右邊界,即可進(jìn)行分割。
圖5 Grabcut算法分割結(jié)果
批量處理圖片后證明,本系統(tǒng)所采取算法可以有效處理核磁共振以及成像測(cè)井兩種井道圖像,處理結(jié)果分別如圖6(a)、(b)所示。
圖6 分割井道結(jié)果圖
對(duì)比本系統(tǒng)結(jié)合Grabcut算法及后續(xù)圖像處理的方法與普通輪廓提取和閾值分割算法的處理結(jié)果,前者分割的井道圖像可以大大減少如圖7所示的后者因識(shí)別錯(cuò)誤邊界以及丟失數(shù)據(jù)部分而導(dǎo)致的誤分割現(xiàn)象,系統(tǒng)處理大量圖片后統(tǒng)計(jì)誤分割情況如表1所示。
圖7 誤分割結(jié)果圖
方法處理總圖數(shù)誤分割圖數(shù)傳統(tǒng)井道分割42523Grabcut井道分割4254
由于經(jīng)過系統(tǒng)處理后提取出的圖片原始比例一般在1∶10至1∶50間,而后續(xù)在網(wǎng)頁繪制特殊井筒曲線圖像道的所需比例不定,故需要對(duì)所提取的數(shù)據(jù)部分圖像道進(jìn)行比例尺的縮放。系統(tǒng)使用Resizer類來實(shí)現(xiàn)比例尺為 1∶50,1∶200,1∶500 和 1∶1 000的縮放。最終提取結(jié)果如圖8所示。
完成圖像抽析和數(shù)據(jù)庫存儲(chǔ)后,結(jié)合OCR文字識(shí)別內(nèi)容以及MySQL數(shù)據(jù)庫中記錄的該井的相關(guān)信息,可調(diào)用createjs插件的Bitmap函數(shù)將抽析測(cè)井圖像繪制于canvas畫布上,直觀地展示了井道圖像信息,提供了一體化查詢平臺(tái)。特殊井筒曲線效果如圖9所示。
圖8 系統(tǒng)處理結(jié)果
圖9 特殊井筒曲線效果圖
本文從圖像分割關(guān)鍵技術(shù)以及系統(tǒng)功能實(shí)現(xiàn)兩個(gè)方面闡述了基于Grabcut算法的井道圖像抽析系統(tǒng),對(duì)比傳統(tǒng)井道分割方法,該系統(tǒng)從文字解析模塊到井道圖像的分割以及最后數(shù)據(jù)庫的信息錄入,操作精準(zhǔn)流暢,提高了用戶開發(fā)的效率,為后續(xù)Web端繪制井筒曲線提供精確數(shù)據(jù)基礎(chǔ),且為油田勘探人員的邊界操作提供了幫助。