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