黃 亮,左小清,馮 沖,聶俊堂
基于Canny算法的面向?qū)ο笥跋穹指?/p>
黃 亮,左小清,馮 沖,聶俊堂
(昆明理工大學(xué)國土資源工程學(xué)院,昆明 650093)
面向?qū)ο蟮挠跋穹治龇椒ㄊ钱?dāng)前信息提取的研究熱點(diǎn),而影像分割是面向?qū)ο蠓椒ǖ暮诵募夹g(shù),分割效果的好壞直接影響影像對象的提取。將Canny算法在邊緣檢測上的優(yōu)勢同面向?qū)ο笮畔⑻崛≤浖Cognition 8.0提供的二次開發(fā)平臺結(jié)合在一起,提出一種基于Canny算法的面向?qū)ο蟮挠跋穹指钚路椒?。試?yàn)結(jié)果表明,該方法不僅準(zhǔn)確可靠,且分割結(jié)果連續(xù),很好地解決了“淹沒”和“破碎”現(xiàn)象;而且結(jié)合了面向?qū)ο蠓椒ǖ膬?yōu)勢,很好地解決了“椒鹽”問題,最大限度地減小噪聲對分類的影響,從而達(dá)到準(zhǔn)確提取感興趣地物對象的目的。
影像分割;Canny算法;面向?qū)ο?易康(eCognition);邊緣檢測
隨著高分辨率圖像的出現(xiàn)和發(fā)展,利用遙感圖像提取影像目標(biāo)(道路、建筑物及水系等)成為構(gòu)建及更新地理空間數(shù)據(jù)的重要手段之一。面向?qū)ο蟮挠跋穹治龇椒芨玫孬@得分類結(jié)果且結(jié)果更易于解釋,因而成為信息提取的研究熱點(diǎn)。影像分割作為面向?qū)ο蟮挠跋穹治龇椒ǖ暮诵募夹g(shù),其效果的好壞直接影響影像中目標(biāo)的提取。現(xiàn)今有很多不同的影像分割方法,但在實(shí)際應(yīng)用中大多不能達(dá)到令人滿意的效果,其主要原因有兩個(gè):①將一景影像分割為一定數(shù)量的區(qū)域是一個(gè)不定解問題;②人們感興趣的區(qū)域是非均質(zhì)的,必要的識別信息無法直接獲得,因此產(chǎn)生了模棱兩可[1]。
針對影像分割中存在的上述問題,很多遙感工作者進(jìn)行了大量的研究。蔣圣等[2]提出一種基于模糊形態(tài)學(xué)梯度的高分辨率遙感影像分割方法,該方法可有效去除影像噪聲、量化影像顏色從而達(dá)到有效地分割影像的目的,但在一定程度上仍有錯(cuò)分和計(jì)算沒有普適性等缺點(diǎn);高麗等[3]提出一種基于標(biāo)記的分水嶺影像分割新算法,該方法解決了分水嶺的過分割問題,但對紋理細(xì)節(jié)豐富的影像處理結(jié)果不理想;Baatz 等[4]和譚衢霖等[5]提出一種面向?qū)ο蟮倪b感影像多尺度分割方法,該方法是目前較為常用的一種分割算法,但分割速度慢,且會(huì)出現(xiàn)一定程度的分割“破碎”和過分割現(xiàn)象;莫登奎等[6]提出一種基于均值漂移的高分辨率影像多尺度分割方法,該方法在一定程度上優(yōu)化了分割速度,但分割的準(zhǔn)確度卻沒有明顯提高,而影像分割不理想將導(dǎo)致提取結(jié)果的后期處理工作量較大。
Canny算法在邊緣檢測中具有錯(cuò)誤率低、檢測位置精度高以及每個(gè)邊緣點(diǎn)的響應(yīng)唯一等優(yōu)勢,而面向?qū)ο筌浖Cognition 8.0提供的二次開發(fā)功能恰好為其實(shí)現(xiàn)提供了平臺。因此,本文以eCognition 8.0提供的Engine API開發(fā)組件為平臺,將Canny算法和面向?qū)ο蟮挠跋穹治龇椒ǖ膬?yōu)勢結(jié)合起來,提出一種基于Canny算法的面向?qū)ο蟮挠跋穹指钚路椒ā?/p>
Canny[7]分析了經(jīng)典的邊緣檢測算子及邊緣檢測的應(yīng)用效果,提出好的邊緣檢測算法應(yīng)該具有的3個(gè)準(zhǔn)則:①好的檢測。好的邊緣檢測算子應(yīng)該具有低的將邊緣點(diǎn)誤判為非邊緣點(diǎn)或?qū)⒎沁吘夵c(diǎn)誤判為邊緣點(diǎn)的概率;②好的定位。判斷的邊緣點(diǎn)的位置盡可能地靠近真實(shí)邊緣的中心位置;③單一邊緣響應(yīng)。每個(gè)邊緣點(diǎn)有且只有一個(gè)響應(yīng),以最大限度抑制偽邊緣的出現(xiàn)。
為了更直觀地反映上述3個(gè)準(zhǔn)則,有必要建立可求解的數(shù)學(xué)模型。首先處理信噪比和定位問題。假設(shè)濾波器的脈沖響應(yīng)函數(shù)為f(x),邊緣函數(shù)為G(x),邊緣中心在x=0處,經(jīng)過f(x)濾波后,邊緣點(diǎn)處的響應(yīng)為
假設(shè)濾波器的有限脈沖響應(yīng)的區(qū)域?yàn)椋郏璚,W],噪聲響應(yīng)的平方根為
式中,n0為噪聲的均方根。
從而得到第一個(gè)準(zhǔn)則的數(shù)學(xué)模型,即“好的信噪比”為
檢測到的邊緣應(yīng)當(dāng)盡可能地接近實(shí)際邊緣的中心,因而Canny給出了第二個(gè)準(zhǔn)則的數(shù)學(xué)模型——定位性能公式,即“好的定位”為
第三個(gè)準(zhǔn)則——單邊響應(yīng)準(zhǔn)則,即單個(gè)邊緣產(chǎn)生的多個(gè)響應(yīng)的概率要低,并且虛假邊緣的響應(yīng)應(yīng)得到最大抑制。這要求在f(x)對噪聲的響應(yīng)中,兩個(gè)相鄰最大值間的距離為xmax(f);f'(x)的零交叉點(diǎn)平均距離為xzc(f)。兩者間的關(guān)系為
Engine API(應(yīng)用程序接口)是eCognition 8.0軟件二次開發(fā)包中的一個(gè)組件,它通過插件來擴(kuò)大Definiens Analysis Engine Software的容量。一個(gè)Engine API組件是由一個(gè)或多個(gè)插件組成的,一個(gè)插件或組件可以實(shí)現(xiàn)一個(gè)算法或功能。
eCognition 8.0的應(yīng)用程序通過使用幾個(gè)服務(wù)器同時(shí)讀寫文件和數(shù)據(jù)庫,并對這些數(shù)據(jù)進(jìn)行運(yùn)算。這些程序在啟動(dòng)時(shí)自動(dòng)加載并以DLL’S的形式運(yùn)行,可大致分為兩類:驅(qū)動(dòng)器和插件。程序運(yùn)行時(shí)首先加載驅(qū)動(dòng)器,然后加載插件。加載插件是按照規(guī)則集配置的順序來進(jìn)行的,它通過更改規(guī)則集進(jìn)行載入,整個(gè)載入過程都是在eCognition 8.0平臺上進(jìn)行的。將DLL文件放在eCognition 8.0安裝目錄的binplugins下,eCognition 8.0將直接加載,通過Process Tree直接調(diào)用算法或功能。
Canny算子是邊緣檢測的算法,其目標(biāo)是找到一個(gè)最優(yōu)的邊緣檢測算法。它具有好的檢測,好的定位以及最小響應(yīng)等優(yōu)勢,但受噪聲影響較大,直接用于提取建筑物難度較大。
面向?qū)ο蟮姆椒ㄊ腔谕|(zhì)性區(qū)域的,此分類方法能夠獲得較好的分類結(jié)果(不產(chǎn)生椒鹽效應(yīng)且不需任何濾波運(yùn)算),且分類結(jié)果更易于解釋[8]。但作為面向?qū)ο蠓椒ǖ年P(guān)鍵技術(shù)之一的影像分割尚無理想的分割算法,由于分割不理想將導(dǎo)致提取結(jié)果的后期處理工作量較大。本文針對二者的優(yōu)勢提出基于Canny算法的面向?qū)ο笥跋穹指罘椒ā?/p>
2.2.1 Canny 算法實(shí)現(xiàn)
Canny算法的實(shí)現(xiàn)主要包括影像濾波、影像梯度計(jì)算、梯度非最大點(diǎn)抑制、邊界起點(diǎn)搜索和邊界跟蹤等5個(gè)部分[9]。Canny算法主要嵌套在 Engine API的第4步執(zhí)行算法部分中執(zhí)行,其具體實(shí)現(xiàn)步驟如下:
(1)為了抑制噪聲,對原始影像進(jìn)行高斯(低通)平滑濾波。二維高斯分布函數(shù)為
(2)計(jì)算方向?qū)?shù)及梯度。影像G(x,y)在像素點(diǎn)(x,y)處的梯度定義為
空間域的高斯低通濾波器為
其對應(yīng)的梯度矢量為
(3)抑制局部像元非最大梯度點(diǎn)。Canny算子認(rèn)為梯度圖中只有某些點(diǎn)才能成為邊界點(diǎn)或者是邊界的起點(diǎn)。對于像元點(diǎn)(x,y),其非最大值抑制(NMS)過程的數(shù)字表示為
式中,N(x,y)為進(jìn)行非極大值抑制后的影像;M(x,y)為梯度值影像陣列;ξ(x,y)=Sector(θ(x,y)),ξ(x,y)=0,1,2,3;θ(x,y)為梯度方向角。
(4)根據(jù)梯度計(jì)算結(jié)果對經(jīng)過非最大值抑制后的結(jié)果設(shè)定閾值。由于閾值的設(shè)定直接涉及哪些像元點(diǎn)可能為邊界點(diǎn),所以它是Canny算子的重要部分。統(tǒng)計(jì)經(jīng)非最大值抑制處理后的數(shù)據(jù)中可能為邊界點(diǎn)的那些像元,然后利用直方圖、根據(jù)高閾值占影像像元總數(shù)的比例設(shè)置高閾值,最后利用低閾值與高閾值之間的比例和高閾值來設(shè)置低閾值。
(5)尋找邊界起點(diǎn)及跟蹤邊界。
2.2.2 算法實(shí)現(xiàn)過程
基于Canny的面向?qū)ο笥跋穹指羁赏ㄟ^eCognition 8.0軟件提供的二次開發(fā)組件Engine API結(jié)合Canny算法實(shí)現(xiàn)。本文算法的實(shí)現(xiàn)過程包括:
(1)對影像數(shù)據(jù)進(jìn)行高斯平滑處理;
(2)進(jìn)行Canny算法的設(shè)計(jì)并搭建算法與面向?qū)ο筌浖Cognition 8.0的組件接口;
(3)用Canny算法提取影像的邊緣;
(4)將提取的邊緣進(jìn)行區(qū)域閉合處理。
為了實(shí)現(xiàn)一個(gè)基本算法組件的功能,本文劃分出以下4個(gè)步驟:①組件建立和資源管理;②組建用戶接口安裝;③業(yè)務(wù)配置;④執(zhí)行算法。該算法的步驟如圖1所示。
圖1 技術(shù)流程Fig.1 Technical flow chart
具體的算法步驟包括:①建立結(jié)構(gòu)體、析構(gòu)函數(shù)以及移除功能;②告訴用戶安裝什么樣的參數(shù)可以用于該算法,它們?nèi)绾物@示給用戶,向用戶解釋,以及其他的一些界面設(shè)置(主要函數(shù)功能包括參數(shù)設(shè)置,界面設(shè)置及功能說明等);③設(shè)置和得到參數(shù)、進(jìn)程數(shù)(規(guī)則集視圖)所用的進(jìn)程名并讓軟件了解該算法支持的場景;④算法的初始化和執(zhí)行。
本試驗(yàn)采用某地的具有RGB 3個(gè)波段、分辨率為0.32 m的航攝影像,選取2 001像元×2 001像元的區(qū)域?yàn)檠芯繀^(qū)(圖2)。
圖2 原始航空攝影影像Fig.2 Original aerial photographic image
目前eCognition 8.0主要有3種面向?qū)ο蟮姆指钏惴?棋盤分割(chessbord segmentation)、四叉樹分割(quadtree-basd segmentation)和多尺度分割(multi-threshold segmentation)。其中,棋盤分割常用于細(xì)分影像;四叉樹分割用于優(yōu)化小的影像對象,提取具有同質(zhì)性且規(guī)則的對象;多尺度分割則用于提取描述相關(guān)特征(具有光譜信息特征和同質(zhì)性的形狀特征)[10]。由于棋盤分割和四叉樹分割用于細(xì)化影像對象,故本文采用多尺度的面向?qū)ο蟮姆指钏惴▽υ加跋襁M(jìn)行分割。多尺度分割是目前主流使用的面向?qū)ο蠓指?,但它將建筑物、道路及水系等信息分割得過于“破碎”,并存在“淹沒”現(xiàn)象。將圖2用多尺度分割法進(jìn)行分割處理,結(jié)果如圖3所示。從圖3中可以看出,分割效果不夠理想。
圖3 多尺度分割Fig.3 Multi- threshold segmentation
針對上述問題,本文將邊緣檢測與面向?qū)ο蟮姆椒ㄏ嘟Y(jié)合,對影像進(jìn)行分割。首先進(jìn)行邊緣檢測算法設(shè)計(jì),然后利用函數(shù)進(jìn)行組件用戶接口的設(shè)置,最后將算法嵌套在Engine API接口下。在Process Tree下加載基于Canny算法的面向?qū)ο蠓指钏惴?,設(shè)置參數(shù)后運(yùn)行算法對影像進(jìn)行分割,分割效果較好(圖4)。
圖4 基于Canny算法的面向?qū)ο蠓指頕ig.4 Object- oriented segmentation based on Canny algorithm
對比多尺度分割(圖3)和基于Canny算法的面向?qū)ο蠓指?圖4)的結(jié)果可以看出,在水系方面,多尺度分割將一個(gè)湖區(qū)分割成若干大小不等的影像對象,而基于Canny算法的面向?qū)ο蟮姆指顚⒁粋€(gè)湖區(qū)分割成完整的一個(gè)影像對象;在道路方面,多尺度分割將道路分割成若干段,而基于Canny算法的面向?qū)ο蟮姆指顒t將一條道路完整地分割出來;在建筑物方面,基于Canny算法的面向?qū)ο蟮姆指顚⒔ㄖ锿暾胤指畛鰜?,但同時(shí)也將屋脊線識別出來,而多尺度分割在識別出屋脊線的情況下還將建筑物分割成若干對象。通過比較可以看出,基于Canny算法的面向?qū)ο蠓指钣行У亟鉀Q了“破碎”和“淹沒”現(xiàn)象。
傳統(tǒng)的基于Canny算法的分割方法雖然可以有效地對影像進(jìn)行分割,但不能有效地提取出遙感影像中感興趣的地物。而基于Canny算法的面向?qū)ο蟮姆指罘椒ㄒ蚺c面向?qū)ο蟮姆诸惙椒ńY(jié)合在一起,綜合了面向?qū)ο蠓诸惙椒ǖ膬?yōu)勢,很好地解決了“椒鹽”問題,最大限度地減小了噪聲對分類的影響,從而達(dá)到提取出感興趣地物對象的目的。
以提取建筑物為例,本文在實(shí)驗(yàn)中對遙感影像進(jìn)行分割后,接著構(gòu)建了提取建筑物的知識庫,然后采用eCognition提供的assign class算法進(jìn)行了建筑物提取,提取結(jié)果如圖5所示。
圖5 建筑物提取圖Fig.5 The image of buildings extracted
從圖5可以看出,基于Canny算法的面向?qū)ο蟮姆指罘椒芎芎玫貞?yīng)用于遙感影像的地物信息提取。
(1)通過eCognition 8.0軟件提供的二次開發(fā)組件Engine API與Canny算法的結(jié)合,實(shí)現(xiàn)了基于Canny算法的面向?qū)ο蟮挠跋穹指?。試?yàn)結(jié)果表明,采用該方法能很好地將影像分割,且能很好地提取出影像中的感興趣地物對象。
(2)對本文方法分割的對象目標(biāo)的分析表明,分割效果整體較好(特別是建筑物及道路),但在植被分割方面尚有待改進(jìn)。下一步的研究重點(diǎn)是對基于Canny算法的面向?qū)ο蟮姆指钏惴ㄟM(jìn)行改進(jìn),使其能更好地解決邊緣點(diǎn)多而雜的感興趣地物對象的提取問題。
[1] 關(guān)元秀,程曉陽.高分辨率衛(wèi)星影像處理指南[M].北京:科學(xué)出版社,2008:141-221.
[2] 蔣 圣,汪 閩,張星月.基于模糊形態(tài)學(xué)梯度的高分辨率遙感影像分割方法[J].計(jì)算機(jī)應(yīng)用研究,2009,26(8):3140-3142.
[3] 高 麗,楊樹元,李海強(qiáng).一種基于標(biāo)記的分水嶺圖像分割新算法[J].中國圖象圖形學(xué)報(bào),2007,12(6):1025 -1032.
[4] Baatz M,Sehape A.Multiresolution Segmentation:An Optimization Approach for High Quality Multi-scale Image Segmentation[C]//Strobl J,Blaschke T,Griesebener G,eds.Angewandte Geographische Informations Verarbeitung XII Beitr?ge zum AGIT -Symposium Salzburg 1999.Karlsruhe Herbert:Wichmann Verlag,2000.
[5] 譚衢霖,劉正軍,沈 偉.一種面向?qū)ο蟮倪b感影像多尺度分割方法[J].北京交通大學(xué)學(xué)報(bào):自然科學(xué)版,2007,31(4):111 -119.
[6] Mo D K,Lin H,Li J P,et al.VHR Imagery Multi- Resolution Segmentation Based on Mean Shift[J].Journal of Guangxi Normal University:Natural Science Edition,2006,24(4):247 -250.
[7] Canny J.A Computational Approach to Edge Detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,8(6):679-698.
[8] Baatz M,Schape A.Object- oriented and Multi- scale Image Analysis in Semantic Networks[C]//Proc of the 2nd International Symposium on Operationalization of Remote Sensing.Enschede:ITC,August 16th~20th,1999.
[9] 張宏林.精通Visual C++數(shù)字圖像處理典型算法及實(shí)現(xiàn)[M].2 版.北京:人民郵電出版社,2008:414-429.
[10]黃 亮,左小清,張曉曉,等.面向?qū)ο蟮牡缆沸畔⒆R別提取分析[J].昆明理工大學(xué)學(xué)報(bào):理工版,2010,35(6):6 -10.
Object-oriented Image Segmentation Based on Canny Algorithm
HUANG Liang,ZUO Xiao-qing,F(xiàn)ENG Chong,NIE Jun-tang
(Faculty of Land Resource Engineering,Kunming University of Science and Technology,Kunming 650093,China)
Object- oriented image analysis is the current research focus in information extraction,and the image segmentation method is the core technology of the object-oriented method.The effect of the segmentation directly affects the extraction of image objects.In this paper,the authors propose an object- oriented method for image segmentation which combines the advantages of edge detection using Canny operator with the secondary developing functions provided by eCognition Developer 8.0.Tests show that the segmentation method is accurate and reliable,the segmentation result is continuous and can well solve the“flood”and“broken”phenomenon.At the same time,this method that combines the advantages of the object-oriented method can satisfactorily solve the problem of“salt and pepper”and minimizes the impact of noise on the classification so as to extract the interesting object surface features.
Image segmentation;Canny algorithm;Object-oriented;eCognition;Edge detection
TP 751.1;P 237
A
1001-070X(2011)04-0026-05
2011-03-11;
2011-04-07
國家自然科學(xué)基金項(xiàng)目(編號:41061043)和云南省教育廳科學(xué)研究基金項(xiàng)目(編號:2011J075)共同資助。
黃 亮(1985-),男,碩士研究生,主要研究方向?yàn)檫b感信息處理與應(yīng)用技術(shù)。
(責(zé)任編輯:劉心季)