郭 旭
(交通運輸部天津水運工程科學研究所 水路交通環(huán)境保護技術交通行業(yè)重點實驗室,天津 300456)
在石油勘探及儲運過程中,發(fā)生的原油或油品從作業(yè)現(xiàn)場或儲器里外泄,流向地面或水面等,這一現(xiàn)象稱為溢油[1-2]。由于其發(fā)生的不確定性,對其進行長時間監(jiān)測會造成人力資源的極大浪費。由于出現(xiàn)溢油情況下的圖像與正常情況下的圖像多重分形維數(shù)存在差異,由此可利用求取多重分形維數(shù)的方式,實現(xiàn)自動檢測海面上溢油情況。
差分盒算法是一種較為簡單、迅速的多重分形維數(shù)求解方法,普遍應用于各類具有自相似性的圖像的自動檢測,但該算法對圖像灰度情況的差異不敏感,極易產生“空盒子”現(xiàn)象,導致計算中出現(xiàn)誤差。針對該問題,學者們也提出了一些改進方法和應用,賈娜[3]等針對木材表面粗糙度檢測過程中,輪廓算術平均偏差測量值依賴于木材紋理方向和采樣位置,導致波動較大等問題,提出采用分形維數(shù)描述木材切削表面三維特征的方法。借助獎勵窗口灰度值算法提高圖像窗口中的灰度值利用率,優(yōu)化差分盒維數(shù)算法的精度。楊洋等[4]在差分計盒方法計算圖像分維數(shù)的基礎上,提出了一種改進算法,并將其應用到路面裂縫圖像的閾值化。朱燁等[5]提出改進的差分盒維數(shù)閾值的自然圖像分割法,實驗表明:該方法比傳統(tǒng)方法和盒維數(shù)的方法效果好,不僅提高分割速度,而且分割精度也得到提高。目前已有的各類對于差分盒多重分形算法的改進,在減少算法誤差方面取得了一定的效果,本文擬通過對灰度變化的分析,引入圖像的一維熵和二維熵對盒子高度的判定方式進行修正,從而減少原算法誤差,同時基于海面圖像的自相似性,將本改進算法應用于無人化的海面溢油監(jiān)測[6-8]。
差分盒算法[9]的基本原理為:首先將M×M像素的二維灰度圖分割為若干s×s像素的網格,將M×M像素的二維灰度圖像想象成三維空間中的曲面,圖像的長、寬分別代表三維坐標系的x、y軸,圖像中每個像素的灰度值代表z軸,在s×s大小的網格上,堆放高度為h的盒子,盒子高度h的計算方法為
(1)
式中:s代表盒子的寬度,取值范圍為2≤s≤M/2,M代表圖像的寬度;G代表圖像總的灰度級。設第(x,y)個網格中的灰度最大值和最小值分別落在第k個和第l個盒子中,則有
ns(i,j)=k-l+1
(2)
式(2)是(i,j)網格中覆蓋的盒子數(shù),由此可得覆蓋整個圖像的盒子數(shù)為
Ns=∑ns(i,j)
(3)
取不同的s,應用最小二乘擬合,得到分形維數(shù)為
(4)
差分盒多重分型算法(Multiracial Differential Box Counting method,MDBC)是在原差分盒算法基礎上的引申,在前述三維空間中,設某一網格中的第i個盒子為Bi,則對應盒子的像素點個數(shù)為u(Bi),則某一特定尺度A下的灰度值總數(shù)為
u(A)=∑u(Bi)
(5)
設
(6)
則多重分形維數(shù)為
(7)
2.1.1 問題描述
圖1 差分盒多重分形算法模型示意圖Fig.1 Schematic diagram of multifractal differential box algorithm model圖2 “空盒子”現(xiàn)象示意圖Fig.2 Schematic diagram of "empty box" phenomenon
MDBC的核心是通過數(shù)量不一、形態(tài)相同的盒子來近似描述圖像中各個點中的灰度情況,進而為圖像確定相應的分型維數(shù),但由于實際圖像的差異性,當所選取的盒子不能準確描述灰度圖像情況時,所得多重分型維數(shù)就會產生較大誤差,如圖1所示。
在確定盒子形態(tài)的過程中,誤差大多是由于盒子高度h選取的不恰當造成的,原方法只考慮每行中的最大灰度值和最小灰度值。利用其差值,求得每行的盒子數(shù)。但當灰度值分布較為離散的情況下,則會出現(xiàn)“空盒子”現(xiàn)象,這是引發(fā)算法誤差的關鍵,如圖2所示。
2.1.2 算法改進
如前所述,引發(fā)“空盒子”現(xiàn)象的核心是灰度差異與盒子選取不匹配,如能結合圖像灰度的變化趨勢對盒子進行調整,即可有效提高算法精度,由此本文使用圖像的熵來對算法進行改進。
圖像的熵是一種統(tǒng)計學特征量。圖像的一維熵表示的是圖像中灰度分布的混亂程度及包含的平均信息量,可定義為
(8)
式中:i為圖像灰度值;Pi為灰度值i的像素占總像素數(shù)的比例。
圖像的二維熵可代表圖像空間分布特征。本文選取灰度圖像中每像素灰度值i及其鄰域灰度均值j組成二元組,作為紋理熵的求解基礎,則對M×M像素的灰度圖像有
(9)
式中:P(i,j)為每像素灰度值與其周圍像素灰度分布的聯(lián)合概率密度;n(i,j)為特征二元組(i,j)出現(xiàn)的次數(shù),由此定義圖像二維熵為
H2=-∑i∑jPi,jlnPi,j
(10)
由此本文結合圖像的一維熵、二維熵以及圖像的灰度均值,提出改進算法,新的盒子高度的計算方法為
(11)
式中:Gmax為圖像中灰度的最大值;Gmin為灰度最小值;μ代表圖像的灰度均值,則
(12)
表1 一、二、三重分形維數(shù)運算結果Tab.1 Result of multifractal dimension operation
將新的盒子高度應用于原算法,即可求更為精準的多重分形維數(shù)。
由于分形維數(shù)是一個相對量,所得維數(shù)的大小并不能說明算法的精確性,由此,通常采用線性擬合誤差作為判斷算法精度及分形維數(shù)是否合適的依據,即該算法所得結果與圖像實際灰度情況的吻合程度,擬合誤差越小,則說明算法精度越高。
為進一步體現(xiàn)算法的精確程度,引入原算法擬合誤差與改進算法所得擬合誤差對比的誤差改進率,即
(13)
在圖片選擇方面,選取適用度較為廣泛的Brodatz紋理庫,從其中隨機選擇圖像進行測試。所選圖片如圖3所示。
設擬合誤差為Fit-e,誤差率為E-rate,則所得結果如表1所示。
3-a 圖片13-b 圖片23-c 圖片33-d 圖片4圖3 Brodatz紋理庫紋理庫圖像Fig.3 Brodatz texture library image
下面對同一重分形維數(shù)中誤差進行對比,為使不同結果更為清晰,選擇不同類型圖表。
圖4 原算法與改進算法在一重分形維數(shù)的擬合誤差對比圖Fig.4 Comparison of the fitting error of the original algorithm and the improved algorithm in the single fractal dimension圖5 原算法與改進算法在二重分形維數(shù)的擬合誤差對比圖Fig.5 Comparison of fitting errors between the original algorithm and the improved algorithm in the double fractal dimension
由上可知,改進算法的誤差率明顯小于原算法,同時誤差改進率也較大,具體如圖7所示。
圖6 原算法與改進算法在三重分形維數(shù)的擬合誤差對比圖Fig.6 Comparison of fitting errors between the original algorithm and the improved algorithm in the double fractal dimension圖7 原算法與改進算法誤差率對比圖Fig.7 Comparison of error rate between the original algorithm and the improved algorithm
由圖4~圖7可知,一、二、三重分形計算中,最小的誤差改進率約為15%,由此可知算法的改進效果較好,可有效減少計算過程中“空盒子”現(xiàn)象的產生。
由于實際拍攝的圖像為彩色圖像,而求解多重分形維數(shù)需要使用灰度圖像,因此在實際應用中,需首先進行灰度化處理,本研究綜合考慮處理時間和效果,擬使用平均值法將彩色圖像轉化為灰度圖像求解。本文采用平均值法進行灰度處理,其主要思路是由彩色圖像中的R、G、B分量的均值得到一個灰度圖像。而后對灰度圖像進行形態(tài)學處理、邊緣檢測和圖像二值化處理,最終可以求得對應的分形維數(shù)。
3.1.1 形態(tài)學處理
形態(tài)學運算包括:膨脹和腐蝕、開閉運算、骨架抽取、顆粒分形等;其中最基本的是膨脹和腐蝕。開運算和閉運算是腐蝕和膨脹的復合運算。開運算是指先腐蝕后膨脹;反之閉運算是先膨脹后腐蝕。
開運算可以使圖像邊緣平滑,削弱邊緣上的離散點和毛刺,閉運算則可以填充物體內的斷層,連接物體邊緣。開運算和閉運算均不會顯著改變物體的面積。
3.1.2 邊緣檢測
尋找疵點邊緣,是圖像評分的關鍵一步。主要的邊緣檢測算子有Canny算子、Prewitt算子、Roberts算子、Sobel算子、LOG算子等。根據疵點檢測實際情況,本文選擇Canny算子。
3.1.3 圖像二值化處理
圖像的二值化處理中最重要的是分割閾值的選取,使用一個灰度值t(0≤t≤255),將目標圖像和背景分為黑白兩部分,這個特定的灰度值t,就是閾值。根據閾值確定方法的不同,出現(xiàn)了多種二值化方法,常用的二值化方法有:OTSU算法、灰度拉伸法和Bernsen算法。本文選擇OTSU算法,見圖8所示。
圖8 灰度化及最終處理后圖像示意圖Fig.8 Schematic diagram of grayscale and final processed image
實現(xiàn)自動檢測的關鍵在于存在溢油現(xiàn)象的圖像與正常海域圖像間存在分形維數(shù)上的差異,由此可首先通過拍攝多張所在海域照片的方式確定正常海域所得的分形維數(shù),確定正常海域的分形維數(shù)范圍,而后不斷進行循環(huán)拍攝,如出現(xiàn)差異則發(fā)出報警信號,并提供相應海面的具體位置,由專業(yè)人員進行查看,從而判斷所拍攝圖像范圍是否存在溢油情況。
在具體監(jiān)測中,由于該檢測方法是使用分形維數(shù)的差異進行分析,當產生非油膜異物時,也會出現(xiàn)誤報的情況,為減少誤報的概率,引入機器學習方式,具體原理為,當發(fā)生報警時,由操作人員首先確認是否為真實溢油,同時根據圖像情況確定準確性等級,具體判斷方式為:
(1)高精度圖像:異常區(qū)域與周邊環(huán)境差異明顯,周邊圖像灰度值平穩(wěn)連續(xù)。
(2)中精度圖像:異常區(qū)域與周圍背景存在融合,對比不是很強烈,異常區(qū)域邊緣不平滑。
(3)低精度圖像:與周邊背景融合較多,且異常區(qū)域圖像不規(guī)則性較高。
由此,可結合分形維數(shù)和圖像精度確定報警前監(jiān)測的次數(shù),對于高精度圖像且監(jiān)測分形維數(shù)在已確認的存在異常的分形維數(shù)范圍內,直接報警;對于低精度圖像,則適度增加檢測次數(shù),如每次檢測中,分形維數(shù)均存在異常后再報警,從而逐步提高檢測精度,減少誤報次數(shù)。
通過該算法對溢油情況進行監(jiān)測,其中溢油區(qū)域與周圍環(huán)境反差較大時,監(jiān)測效果較好,如溢油背景顏色較深,與溢油區(qū)域差異較小時,則不容易進行監(jiān)測,對于此類區(qū)域,可改變分形維數(shù)差異要求,實現(xiàn)對于微小的分形維數(shù)差異也可以正常進行檢測;但與此同時,錯報率也會相應提高,會相應增加人工符合概率。在此種情況下,需要進一步針對周邊實際情況進行調整。
本文首先對差分盒分形維數(shù)和多重分形算法的原理進行了介紹,而后針對其中盒子計算方式不合理的問題,提出了基于灰度圖像紋理特征的算法改進方法,通過計算圖像的一維熵及二維熵,調整算法中盒子高度的計算方法,并通過實例驗證證明了算法結果的優(yōu)越性和有效性。在此基礎上,基于海面圖像自相似性,提出了基于改進的多重分形算法的海面自動溢油檢測方法,說明了所需條件、步驟以及溢油的判定方式。