周磊,滕奇志,何海波
(1.四川大學(xué)電子信息學(xué)院圖像信息研究所,成都 610065;2.成都西圖科技有限公司,成都 610024)
在石油地質(zhì)領(lǐng)域中,研究人員通過偏光顯微鏡觀察巖石的光學(xué)特性和表面紋理特征,從而對不同巖石進行鑒別和成分分析,但在實際應(yīng)用中巖石樣本目標(biāo)顆粒眾多,人工鑒定工作量大,因此利用計算機實現(xiàn)巖石礦物成分分類識別具有重要研究價值。針對斜長石類礦物易呈現(xiàn)出相互平行的特殊紋理直線的特征,通過提取這些具有一定規(guī)律的直線特征達到對斜長石族礦物及其他巖石顆粒進行區(qū)分的目的。
直線特征的檢測與提取一直以來都是圖像處理和分析的一個重要問題,其中經(jīng)典的算法包括Hough變換和LSD(Line Segment Detector)局部直線檢測算法。Hough[1]變換是傳統(tǒng)的直線檢測方法之一,具有較強的抗噪聲能力并能夠準(zhǔn)確給出所提取直線段特征參數(shù)。然而,將Hough變換應(yīng)用于巖石薄片圖像時,在密集點處出現(xiàn)大量共線點,反映在Hough的參數(shù)空間中具有許多偽峰點,而在實際的應(yīng)用中偽峰點在圖像上無法找到其對應(yīng)的直線,從而造成誤提取。
LSD局部直線檢測算法是由VGR Grompone等[3]提出,算法首先計算每個像素點的梯度信息,并根據(jù)區(qū)域增長生成直線段候選區(qū)域,再通過外接矩形計算出區(qū)域所代表的直線段,并選擇其長軸作為候選直線段區(qū)域。該算法的特點是提取速度快,無需調(diào)整任何參數(shù)。不少學(xué)者在經(jīng)典LSD算法基礎(chǔ)上進行了研究,參考文獻[4]提出了一種基于區(qū)域生長,通過圖像梯度信息的局部直線段檢測方法,參考文獻[7]對參考文獻[4]做了改進,減少了計算量,提高了檢測率,但是該算法采用了固定閾值大小,針對不同應(yīng)用需要相應(yīng)的調(diào)整其大小。文獻[6]基于LSD局部直線檢測算法,提出直線區(qū)域有效性檢測策略的直線段檢測算法,文獻[11]參考文獻[6]使用相同的直線區(qū)域有效性檢測策略的直線段檢測算法,提出了一種基于動態(tài)閾值的區(qū)域生長的LSD算法,可以降低方向準(zhǔn)確度使得候選區(qū)域更加連續(xù),從而獲得更準(zhǔn)確的直線。
圖3 梯度模板
我們將LSD直線檢測算法應(yīng)用在顆粒目標(biāo)上時發(fā)現(xiàn),由于局部檢測算法自增長的特點,顆粒中長線段局部模糊或被遮擋的原因,經(jīng)常被割裂為多條直線,造成大量噪聲和斷裂現(xiàn)象,該現(xiàn)象的出現(xiàn)往往會造成斜長石顆粒中的直線特征的誤識別。針對此問題,本文提出了一種基于LSD候選直線段分段擬合的方法。該算法既能夠?qū)崿F(xiàn)精準(zhǔn)、快速的直線段特征提取,又能提高復(fù)雜紋理目標(biāo)下檢測直線的有效性和直線段的完整性。
圖像特征的提取是圖像識別和分類的前提,根據(jù)圖像的特點通過某種算法有效地區(qū)分出圖像中不同類型的物體的特征向量或者特征參數(shù)。一般來說,特征提取分為基于形狀特征提取、空間特征提取、顏色特征提取和紋理特征提取4種類型。每種類型都有不同的方法,針對不同的圖像,每種方法呈現(xiàn)出較大差異,故應(yīng)結(jié)合實際圖像來選取正確的特征提取方法。本文主要針對巖石礦物薄片在偏光鏡下易呈現(xiàn)的雙晶、解理、裂理等紋理的直線特征,通過提取這些具有一定規(guī)律的紋理特征可以有效的完成對斜長石與其他巖石礦物的區(qū)分。
下圖1分別介紹了三種巖石礦物在偏光顯微鏡下的紋理特征,(a)石英礦物圖像,其內(nèi)部特征只有少量的,離散的噪聲,紋理細節(jié)較少,顆粒表面整潔光滑;(b)斜長石礦物圖像,其特征表現(xiàn)為由于雙晶、糙面等現(xiàn)象使得顆粒的紋理細節(jié)比較清楚,紋理比較豐富,且存在若干條一定間距的平行紋理直線;(c)堿性長石礦物圖像,同樣存在大量的紋理信息,但該紋理信息不具有規(guī)律性,既不滿足斜長石的紋理特征,同時跟石英相比具有大量的無規(guī)則信息。
圖1 石英、斜長石以及堿性長石礦物紋理特征的區(qū)別
復(fù)雜巖石顆粒圖像中的斜長石識別算法主要分為圖像預(yù)處理、基于LSD直線段的候選區(qū)域提取,之后根據(jù)提供的候選直選段對其進行二維特征的相似度進行聚類,最后根據(jù)圖像直線密度進行有效性的檢測并進行斜長石識別。對巖石顆粒圖像整體識別過程流程圖如圖2所示。
(1)圖像的梯度
圖像的梯度反映了圖像中相鄰像素間的灰度值的變化關(guān)系,計算圖像的梯度對于檢測圖像的邊緣結(jié)構(gòu)有著十分重要的意義和作用。對于數(shù)字圖像I中像素點(x,y),i(x,y)為該像素的灰度值,gx、gy是圖像坐標(biāo)系的兩個梯度方向,對于不同的梯度算子,模板的大小也會直接影響圖像的細節(jié)信息,模板過大容易導(dǎo)致圖像細節(jié)丟失,模板過小雖然節(jié)省了計算量,但對噪聲敏感度增加,增加不必要的冗余信息。本文參照文獻[4]采用最簡單的 2×2模板,通過式(1)-(4)可計算出圖像的梯度大小和方向。
梯度的模值:
梯度方向的計算:
梯度的模板:
(2)圖像區(qū)域生長策略
針對得到的梯度圖像信息,采用區(qū)域生長策略來獲得具有相似性的連通區(qū)域。區(qū)域生長是一個不斷迭代的過程,通過種子點的選擇,根據(jù)一定的生長準(zhǔn)則,把相鄰像素點的相似屬性作為分類的標(biāo)準(zhǔn),逐步迭代分類,直至所有點都迭代完畢或者滿足終止條件。因此可以通過該方法將具有相近梯度信息的像素點連通起來構(gòu)成候選區(qū)域,該算法思想簡單并且能夠提供較好的邊界信息。
本文參考文獻[6]的貪心算法的區(qū)域生長策略,該策略既減少算法的時間代價,又提高線特征提取速度,同時經(jīng)過生長區(qū)域得到的像素點只能屬于一個區(qū)域,所以在生長的過程中需要對其標(biāo)注不同區(qū)域的標(biāo)簽,直至所有的點遍歷完畢。在數(shù)字圖像中,梯度值較大的像素點對應(yīng)著更加明顯的邊界,直線段存在邊緣信息上的可能性也增加了。因此需對像素梯度的大小進行排序,本文采用文獻[7]的偽序法,該方法是以線性時間為代價的桶排序思想的方法,使排序速度得到大幅提升。排序后將像素梯度值最大的點作為種子點進行基于梯度信息的區(qū)域生長,根據(jù)生長準(zhǔn)則(鄰域點的梯度方向與區(qū)域主體的梯度方向的差值在一定的閾值θ范圍之內(nèi))標(biāo)記出屬于該區(qū)域的所有點,再將剩余的梯度的模值較大的點作為種子點,依次進行迭代,直至某像素點不符合生長準(zhǔn)則或者遍歷完所有像素點。如果閾值θ太小,會導(dǎo)致檢測到的線段斷裂,甚至部分直線段無法檢測,如果閾值θ設(shè)置太大,區(qū)域生長的過程中會出現(xiàn)許多誤連接,導(dǎo)致生長出的區(qū)域內(nèi)包含太多噪聲點,容易將噪聲點誤檢測為直線段的一部分。
(3)基于候選區(qū)域的相似直線擬合
通過以上步驟得到直線段的候選區(qū)域后需要將該區(qū)域擬合成一條完整連續(xù)的直線段,本文采取了通過外接最小矩形來描述候選區(qū)域,計算得到的每個像素作為加權(quán)值,并參與外接矩形中心位置的計算,具體公式如式(5)、(6)所示:
其中R代表某個區(qū)域,G(j)代表R內(nèi)第j點的梯度大小,x(j)是 R 內(nèi)第 j點的 x坐標(biāo)值,y(j)是 R 內(nèi)第 j點的y坐標(biāo)值。在計算矩形中心后,將矩形的主方向設(shè)置為直線主方向,將矩陣M中最小特征值的特征向量的方向作為矩形的方向,矩陣M如式(7)所示。
最后,在矩形能夠包含區(qū)域內(nèi)所有點的基礎(chǔ)上,將矩形的長軸作為候選目標(biāo)直線段。
由于LSD算法本身的局限性,目標(biāo)顆粒中同一條解理線的直線段之間存在嚴(yán)重的斷裂現(xiàn)象,導(dǎo)致在識別判斷的過程對同一條解理線進行多次重復(fù)計算,從而造成整體目標(biāo)的誤識別。為了獲得較完整直線段數(shù)據(jù),本文利用直線段的距離特征對具有相似傾斜角的線簇進行相似擬合,將傾斜角相近且距離相近的直線簇擬合為一條直線,這樣做的主要目的是確保復(fù)雜紋理圖像中直線段的完整性,為后期的統(tǒng)計分類提供可靠的數(shù)據(jù)信息,提高斜長石的分類的準(zhǔn)確率。其主要步驟如下。
步驟1:首先對直線段進行一定的預(yù)處理操作,刪除冗余直線段。在復(fù)雜紋理薄片直線檢測的過程中,針對線段長度過短或者總體數(shù)量較少的情況,將這些直線段視為噪聲線段進行過濾,其主要目的是為了獲得薄片圖片中更加明顯的長直線特征。
步驟2:笛卡爾坐標(biāo)轉(zhuǎn)極坐標(biāo)。將直線傾斜角θ和直線到原點的距離d,用極坐標(biāo)表示。
根據(jù)公式:
斜截式:截距為b,斜率為k,傾斜角為θ
點到直線的距離公式:
根據(jù)公式(8)-(10)求得描述直線的二維特征:傾斜角θ和直線到原點(圖片的左下角作為原點)的距離d。
如圖4所示,圖a為堿性長石的樣本顆粒,圖b是基于LSD算法下檢測出來的直線紋理特征,圖c表示統(tǒng)計出的每條直線的傾斜角度信息,從該直方圖可以發(fā)現(xiàn)直線紋理的傾斜角度主要集中在125°左右,圖d表示的是每條直線到原點的不同距離,根據(jù)紋理直線的傾斜角度和直線到原點之間的距離的直線二維特征,尋找傾斜角度接近和直線到原點距離相近的直線并歸類。
圖4 統(tǒng)計去噪后的直線二維特征直方圖
步驟3:直線段的描述。在極坐標(biāo)下,傾斜角θ和原點距離d可以描述不同的直線段,每條直線段對應(yīng)唯一的傾斜角θ和原點距離d,對該二維特征分別進行直方圖統(tǒng)計。已知斜長石的特征主要是存在一定間距的平行直線:對于平行直線,傾斜角相近,為了保證平行直線在的傾斜角誤差范圍內(nèi),在數(shù)字圖像處理技術(shù)中,若有兩像素點的梯度方向之差direction(g(x1,y1)。g(x2,y1))<2π/n,則可認(rèn)為在方向準(zhǔn)確度為 n 時兩像素的梯度方向一致。根據(jù)神經(jīng)感知學(xué)理論[8]以及數(shù)值實驗,通常n取8~16,此處根據(jù)實驗效果設(shè)置n為72,其步長角度為5°,因為步長角度過大,會造成角度過大的分為一簇,若步長角度太小,直線簇類過多,都會影響實驗精度。
步驟4:分類擬合。在已知相互平行的直線簇中,根據(jù)距離閾值D,依次選取其中一條并與其他直線距離比較獲得對應(yīng)的差值距離Δd,若Δd=(d1-d2)
圖5 多條相似直線段的擬合過程
步驟5:直線密度有效性判別。k為圖像中主方向直線的條數(shù)。若k>D,則圖像張檢測的直線密度判定有效,可作為斜長石判定的候選圖像,否則,該巖石顆粒判定為非斜長石。本文設(shè)置D=2,直線密度有效性判別將會解決因為存在較少的平行直線單元情況而誤判別為斜長石的狀況。
(4)斜長石的識別
經(jīng)過擬合后的直線,斜長石顆粒直線的紋理特征更加明顯。針對上述過程中獲得的直線傾斜角θ和原點距離d,考慮其中多條直線平行度,便可判定該巖石顆粒是否屬于斜長石顆粒。
根據(jù)公式:
標(biāo)準(zhǔn)特征近似參數(shù)γ:num為主方向直線的條數(shù),N為所檢測直線的總數(shù):
根據(jù)公式(8)-(11),若存在γ>C1(0 本文算法在檢測復(fù)雜巖石紋理顆粒直線特征時,其主要目的是從各類巖石顆粒中識別出斜長石的紋理特征,因此本文算法針對該問題,提出了兩項要求:1)對直線的檢測過程必須要保證直線特征的直觀性和有效性,即得到高質(zhì)量的斜長石的紋理特征;2)濾除冗余噪聲直線,在復(fù)雜的巖石薄片圖像中,夾雜中許多的噪聲信息,為了保證紋理特征的有效提取,盡可能減少因為噪聲直線,對提升斜長石的識別率有很大的幫助。 從圖7可以觀察到兩種基于LSD直線算法,圖a和e是斜長石樣本顆粒,圖b和f是傳統(tǒng)LSD直線檢測算法,存在大量噪聲直線段以及直線斷裂現(xiàn)象,因為圖中存在非平行直線段和噪聲直線的干擾,在此基礎(chǔ)上用相同的斜長石判別方法進行判斷,其結(jié)果屬于非斜長石類,圖c和g是文獻[11]算法,該算法基于LSD算法,采用了動態(tài)閾值的區(qū)域生長,能夠更好地抑制紋理邊緣所造成的偽直線,減少了直線段中的斷裂現(xiàn)象,圖d和h是本文算法,從圖中可以觀察到相比圖b、f、c和g,本文算法濾除了大量冗余直線段,同時成功擬合了部分?jǐn)嗔阎本€段,呈現(xiàn)出具有一定規(guī)律的平行直線段并且線條完整與實際紋理特征相符合,達到提供更加完整連續(xù)平滑直線段的目的,并且克服了LSD局部直線檢測中出現(xiàn)的斷裂直線段缺點的問題,為斜長石直線特征的識別提供了有力的依據(jù)。 為了驗證該算法的識別率,本文采用了三組不同的巖石樣本實驗數(shù)據(jù),第一組為斜長石顆粒樣本,第二組為石英顆粒樣本,第三組是堿性長石和石英的混合顆粒樣本,對三組不同的測試樣本檢測出斜長石顆粒的正確識別率以及誤識別率,測試結(jié)果如下表所示。表1可以明顯觀察到采用本文算法可以對巖石顆粒中的斜長石具有較好的識別能力,提升了正確識別率的結(jié)果,同時從表2可以觀察到本文算法對堿性長石和石英有很好的區(qū)分能力,降低了誤識別率的結(jié)果。 表1 本文算法針對斜長石樣本顆粒識別結(jié)果 圖7 文獻[11]直線檢測算法以及本文算法對比效果圖 表2 本文算法針對石英和堿性長石樣本顆粒的檢測結(jié)果 本文提出了一種基于LSD直線候選區(qū)域根據(jù)相似性擬合的算法。該算法主要通過圖像的梯度信息進行區(qū)域生長,獲得具有相似梯度區(qū)域的連通區(qū)間,然后用外接最小矩形的長軸描述候選直線段,再對候選直線段進行相似擬合,獲得能夠表征多段分裂直線段的直線段結(jié)構(gòu)。通過實驗和理論分析表明,本算法具有以下主要特點:1)算法具有很強的魯棒性,能夠在復(fù)雜的紋理圖片中檢測到直線;2)算法檢測的直線段更加精確。相比Hough變換中存在的大量誤檢和LSD直線檢測過多斷裂直線段,該算法保證了獲得復(fù)雜紋理圖片中連續(xù)直線的完整性,有效地抵抗了細小的邊緣結(jié)構(gòu)區(qū)域;3)該算法計算量小,繼承了文獻[7]采取的偽排序算法濾除了復(fù)雜紋理中的大量噪聲,節(jié)省了計算量。 [1]村上,伸一.Use of the Hough Transform to Detect Lines and Curves in Pictures[C].Commun.ACM 1972.1972:11-15. [2]Galamhos C,Matas J,Kittler J.Progressive Probablistic Hough Transform for Line Detection.Proceedings of Computer Vision and Pattern Recognition,1999:23-25. [3]Kultanen P,Xu L,Oja E.Randomized Hough Transform[C].Proc.Of IEEE Pattern Recognition,1990,631-635 [4]Rafael Grompone von Gioi,Jérémie Jakubowicz,Jean-Michel Morel,and Gregory Randall,LSD:a Line Segment Detector,Image Processing on Line,2(2012):35-55. [5]夏軍營,徐小泉,熊九龍.利用梯度信息快速提取直線邊緣特征[J].中國圖象圖形學(xué)報,2012,17(8):987-994. [6]董銀文,苑秉成,石釗銘,等.基于直線特征的航拍圖像機場跑道自動識別算法[J].系統(tǒng)工程與電子技術(shù),2013,35(4):876-879. [7]覃勛輝,馬戎,付維平,等.一種基于梯度的直線段檢測算法[J].光子學(xué)報,2012,41(2). [8]Desolneux A,Moisan L,Morel J M.Computational Gestalts and Perception Thresholds[J].Journal of Physiology-Paris,2003,97(2-3):311-324. [9]Xu Lei,Oja E.Randomized Hough Transform(RHT):Basic Mechanism,Algorithms,and Computational Complexities[J].CVGIP:Image Understanding,1993,57(2):131-154. [10]Lee D,Park Y.Discrete Hough Transform Using Line Segment Representation for Line Detection[J].Opt Eng,2011,50(8):087004. [11]閔濤,蔣宜勤,滕奇志,等.礦物顯微圖像中的直線段特征提取算法[J].微型機與應(yīng)用,2016,35(6):35-38.2 實驗結(jié)果及分析
3 結(jié)語