任 雁, 李 強, 張鵬軍
(中北大學 機電工程學院, 山西 太原 030051)
一幅圖像就是一個信息系統(tǒng), 它的信息量是由圖像邊緣包圍的像素點所組成的[1]. 在現(xiàn)實中, 采集到的圖像并不完美, 圖像當中存在大量不完整或模糊的數(shù)據(jù)信息, 尤其是在圖像邊緣更為典型. 邊緣檢測的目的就是要提取目標圖像中有用的邊緣信息, 從而為后續(xù)的圖像處理打下良好的基礎(chǔ). 因此, 能否獲得完整、 清晰、 精細的良好邊緣對順利開展后續(xù)的研究具有重要意義.
準確無誤的槍彈外形幾何參數(shù)是確保槍彈質(zhì)量的重要指標之一, 典型的槍彈外形幾何參數(shù)有彈丸全長、 彈殼直徑、 彈體同軸度等. 在基于圖像處理的槍彈外形幾何參數(shù)測量中, 邊緣信息作為最基本的圖像信息, 它的準確提取為整個測量的準確性奠定了堅實的基礎(chǔ). 在槍彈圖像測量過程中, 往往會出現(xiàn)大量不完整或模糊的圖像數(shù)據(jù), 尤其是圖像邊緣信息的缺失會造成測量結(jié)果出現(xiàn)較大偏差, 甚至是測量失敗. 作為最基本的圖像特征, 圖像邊緣檢測質(zhì)量顯得尤為重要.
群智能算法是人工智能生物仿生學的重要分支, 包括對螞蟻覓食行為進行模擬的基于遺傳機制的遺傳算法, 和從鳥類的捕食行為中提取出的粒子群優(yōu)化算法. 一方面, 蟻群優(yōu)化(ACO)算法可以應(yīng)用于多種領(lǐng)域, 且該算法具有正向反饋、 分布性和魯棒性優(yōu)等特點. 另一方面, 圖像在現(xiàn)實生活中具有重要意義, 而邊緣又是圖像的關(guān)鍵因素, 因此, 人們研究了基于蟻群算法的圖像邊緣檢測方法[2-3].
1965年, Robert以系統(tǒng)的方式來研究邊緣檢測. 從那以后, 關(guān)于邊緣檢測的研究日益增多, 其中基于圖像梯度的微分算子法最為經(jīng)典, 它需要計算每一個像素并且通常在實際應(yīng)用中對子區(qū)域掩模卷積進行近似計算. 然而, 這種方法存在的問題是, 直到整個圖像空間被遍歷后, 才能檢測到圖像邊緣, 經(jīng)常會出現(xiàn)邊緣遺漏或冗余現(xiàn)象. 當圖像空間過大或圖像背景過于復雜時, 檢測時間和結(jié)果都不理想. 因此, 傳統(tǒng)的圖像邊緣算法在實用性方面受到了嚴重的影響[4].
本文對蟻群優(yōu)化算法的基本原理和模型進行研究, 并列出蟻群優(yōu)化算法的主要操作步驟. 然后給出基于本文混合算法的邊緣檢測過程, 并對具體實現(xiàn)過程進行深入研究和分析, 給出具體的實現(xiàn)過程. 螞蟻在啟發(fā)函數(shù)的引導下向圖像邊緣移動, 將信息素留在邊緣像素點上構(gòu)建信息素矩陣, 最終實驗證明該算法獲得的邊緣信息完整.
在實際的測量中, 槍彈的邊緣不夠清晰, 并且采集到的圖像信號中都存在或多或少的噪聲. 由于噪聲與邊緣都屬于高頻信號, 很難用濾波器進行過濾, 故要想準確無誤地提取槍彈圖像的邊緣信息實屬不易. 圖像中的槍彈邊緣表現(xiàn)為灰度發(fā)生變化, 可以通過計算灰度的不連續(xù)性來提取邊緣. 常見的邊緣部分包括屋頂狀邊緣、 階梯狀邊緣和脈沖狀邊緣, 如圖 1 所示.
圖 1 常見邊緣部分分類Fig.1 Common edge classification
梯度是函數(shù)變化的度量, 它是與二維函數(shù)對應(yīng)的圖像的一階導數(shù), 圖像可以看作是一組采樣點, 有兩個與梯度有關(guān)的重要性質(zhì)[5]: 一個是矢量G(x,y)的方向是函數(shù)f(x,y)增加時的最大變化率的方向, 另一個是梯度的幅度, 即
a(x,y)=arctan(Gy/Gx).
(1)
對于數(shù)字圖像, 一階偏導數(shù)可以用差分逼近, 邊緣往往發(fā)生在差值的最大值處、 最小值處或零點處.
Gx=f(x+1,y)=f(x,y),
(2)
Gy=f(x,y+1)-f(x,y).
(3)
計算梯度時, 計算相同空間位置的真實偏導數(shù)具有重要意義, 但用上述公式計算的梯度近似值不在相同的位置.
因此, 2×2的一階差分掩模通常用于計算位于插值點的x和y方向的偏導數(shù). 此時,Gx和Gy可以表示為
(4)
由于圖像的灰度值變化很大, 對應(yīng)于函數(shù)梯度變化很大的地方, 如何找到更好的梯度算子成為研究重點. 通過梯度算子可以對圖形的邊緣信息進行增強[6], 常用的梯度算子有Roberts算子、 Sobel算子、 Prewitt算子、 Laplace算子等.
Roberts算子又被稱作梯度交叉算子, 該算子是通過對局部差分進行計算從而尋找目標的邊緣. 其優(yōu)點是能夠準確發(fā)現(xiàn)邊緣, 計算方法簡便, 能夠直觀顯示結(jié)果; 缺點是容易受噪聲干擾, 圖像包含噪聲時檢測效果大大下降. 該算子適用于處理邊緣特征顯著同時噪聲不明顯的圖像.
常用的Robert算子有如下兩個模板
(5)
Robert算子是通過計算被檢測圖像的卷積得到水平方向和垂直方向的梯度值Mx(x,y)和My(x,y), 如式(6)和(7)所示, 然后根據(jù)式(8)計算出圖像M(x,y)的幅值.
Mx(x,y)=0×f(x,y)+1×f(x+1,y)+
(-1)×f(x,y+1)+0×f(x+1,y+1),
(6)
My(x,y)=1×f(x,y)+0×f(x+1,y)+0×
f(x,y+1)+(-1)×f(x+1,y+1),
(7)
M(x,y)=max(|f(x,y)-f(x+1,y+1)|,
|(f(x,y+1)-f(x+1,y)|).
(8)
Sobel算子是濾波算子, 也是邊緣檢測中最常用的算子之一. Sobel梯度算子先進行加權(quán)平均, 然后計算所得到結(jié)果的微分, 最后求其圖像梯度值. Sobel算子的優(yōu)勢是計算復雜度低, 而且所提取出的圖像目標邊緣較為光滑. Sobel算子的缺點是所提取到的邊緣特征比較粗, 容易丟失部分細節(jié)信息. 該算子要求鄰域內(nèi)的其他像素點對中心像素點產(chǎn)生的作用不能等同, 因而以距離差值代表不同的權(quán)值, 距離中心像素點越近的像素點產(chǎn)生的影響越明顯, 反之亦然.
Sobel算子有兩個模版, 用于水平邊緣檢測的水平模版, 對于水平邊緣響應(yīng)較大, 如
(9)
用于垂直邊緣檢測的垂直模版, 對于垂直邊緣響應(yīng)較大, 如
(10)
Sobel算子是通過利用所檢測到的邊緣點計算其極值, 該方法認為在極值位置找到的就是邊緣點, 通過改變其加權(quán)系數(shù), 使得檢測到的邊緣特征更準確, 同時也可以檢測到不同方向的邊緣梯度, 其幅度值不變.
某些點的一階導數(shù)大于閾值, 若將這些點作為邊界點, 可能會出現(xiàn)過多的邊緣點被檢測到, 同時存儲過多的信息. 正是因為一階導數(shù)局部最大值與二階導數(shù)的過零點相對應(yīng), 在這種情況下, 通過尋找圖像灰度二階導數(shù)的過零點, 可以更好地識別出精確的邊緣點.
Laplace算子是二階微分算子, 其特點是梯度不隨坐標軸旋轉(zhuǎn)而變化, 定義為
(11)
該算子要求其中心像素值大于0, 其鄰域內(nèi)像素系數(shù)為負數(shù), 同時模板內(nèi)所有的像素系數(shù)之和為0. Laplace算子的典型模板為
(12)
Laplace算子對噪聲非常敏感, 其幅值容易產(chǎn)生偽邊緣, 會影響圖像分割的結(jié)果. Laplace算子適用于有陡峭邊緣且不包含噪聲的圖像.
Prewitt算子通過計算像素的平均值從而達到對圖像降噪的效果, 常用的兩個典型模板分別為
(13)
將所檢測到圖像中邊緣像素值與上述公式進行卷積計算, 先求x方向和y方向的梯度值Mx(x,y) 和My(x,y), 然后利用式(13)求出圖像的幅度值M(x,y). Prewitt算子對于圖像中含有較大噪聲、 圖像灰度值發(fā)生較大變化的圖像具有出眾的檢測效果.
圖 2 為4種邊緣檢測算子的實際檢測效果圖, 表 1 為4種邊緣檢測算子的檢測性能比較.
圖 2 4種邊緣檢測算子效果圖Fig.2 Edge detection results of four different operators
根據(jù)實驗結(jié)果可以看出, 4種檢測算子在輪廓清晰度、 細節(jié)完整度、 計算速度等方面均表現(xiàn)出不同的特點, 但是也存在一些缺陷和不足. Robert算子輪廓清晰度高但細節(jié)完整度差, Laplace算子細節(jié)完整度好但輪廓較粗, 所以為了能夠盡可能彌補這些算法的不足之處, 必須找到一種更好的邊緣檢測算法.
表 1 4種邊緣檢測算子檢測效果比較Tab.1 Comparison of edge detection results offour different operators
結(jié)合槍彈的外形特點, 針對上文提到的傳統(tǒng)圖像邊緣檢測存在的缺陷, 本文對ACO的圖像邊緣檢測方法進行了改進, 提出了一種基于粒子群和蟻群算法的圖像邊緣檢測方法: 群體優(yōu)化算法.
由于蟻群算法具有離散性和并行性、 啟發(fā)式因子和正反饋機制等特點, 基于蟻群算法的圖像邊緣檢測技術(shù), 已經(jīng)成為當今研究的主要方向. Marco和Dorigo于1992年首次提出了一個蟻群算法的模型, 它是通過模擬自然界中螞蟻尋找食物時的行為而發(fā)現(xiàn)的一種仿生算法. 當螞蟻移動時, 它們會在移動的過程中留下一種傳遞信息的物質(zhì), 這種物質(zhì)就是信息素, 螞蟻通過感知這些信息素來改變它們的運動軌跡. 因此, 大量螞蟻的集體行為表現(xiàn)為信息的正反饋: 螞蟻沿著路線走得越多, 選擇路線的概率就越大; 反之, 螞蟻沿著路線走得越小, 選擇路線的概率就越小. 蟻群算法中的參數(shù)很少, 同時在搜索過程中很容易修改手動設(shè)置, 從而解決圖像邊緣檢測方法中出現(xiàn)的細節(jié)模糊、 偽邊緣和不間斷邊緣等問題, 因而蟻群算法常用于圖像邊緣檢測以獲得完整的邊緣信息[7-8].
傳統(tǒng)的檢測算法對圖像邊緣檢測的效果不好, 容易陷入局部最優(yōu)[9], 從而會失去兩種算法之間的平衡, 導致收斂速度過慢, 故本文研究的關(guān)鍵是將上述兩種算法結(jié)合起來進行圖像邊緣檢測. 首先, 該方法對圖像進行粒子群優(yōu)化(PSO), 并將其次優(yōu)解轉(zhuǎn)換為蟻群優(yōu)化(ACO)的初始信息素分布[10]. 然后, 執(zhí)行ACO, 并顯示圖像的邊緣信息. 其中一些螞蟻被用來在二維圖像中構(gòu)造信息素的矩陣, 每一個元素代表對應(yīng)像素點的邊緣信息[11]. 此外, 通過改變圖像強度的大小調(diào)整螞蟻移動方向的變化. 這些螞蟻在尋找食物的時候會采取不同的路線, 它們以一種隨機的方式沿著特定的方向運動[12]. 在這種情況下, 他們可以打破常規(guī), 進行創(chuàng)新. 優(yōu)化的路線不斷被保留, 其選擇的概率被提高, 以確保相對優(yōu)秀的信息能夠被保存. 這種隨機性保證了創(chuàng)新的能力, 而積極的反饋則確保了優(yōu)秀的特性可以得到增強. 為了將此算法應(yīng)用于圖像邊緣檢測, 將圖像視為無向圖[13]. 圖像由具有灰度信息的像素點組成, 每個像素點為螞蟻的一個節(jié)點, 以下是該算法的具體實施步驟.
在圖像中隨機分配K個螞蟻,大小為N1*N2,將圖像當中的每一個像素點看作是一個節(jié)點.將信息素矩陣λ(0)中每個元素的初始值設(shè)為常數(shù)λinit.
在第t步的實現(xiàn)過程中, 從上述K個螞蟻中隨機選擇一個螞蟻, 并在圖像中連續(xù)移動這個螞蟻M步. 該螞蟻由下面的式(14)定義的變換概率從節(jié)點(m,n)移動到相鄰節(jié)點(x,y).
(14)
實施過程中存在兩個關(guān)鍵問題: 首先是如何確定式(15)中的啟發(fā)式信息. 這里的啟發(fā)式信息由像素點(x,y)的局部統(tǒng)計量決定. 啟發(fā)式信息函數(shù)表示像素與聚類中心之間的相似度, 其在以下式(15)中定義為d.
(15)
式中:ρk是權(quán)重因子, 根據(jù)像素的每個分量來設(shè)置對聚類的影響程度;r是聚類半徑;c是聚類中心, 并且聚類半徑r的值越大, 啟發(fā)式信息函數(shù)的值也越大, 選擇聚類中心的概率將會增加.
更新信息素矩陣時, 執(zhí)行兩次更新操作.
1) 第一次更新是在每個實施步驟中每只螞蟻移動之后進行的, 信息素矩陣當中的每個元素根據(jù)式(16)進行更新.
(16)
2) 第二次更新是在所有螞蟻按照式(17)完成每步動作之后執(zhí)行的.
λ(t+1)=ελ0+(1-ε)λt.
(17)
在這個過程中, 通過使用最終的信息素矩陣λ的閾值νthre來確定這個像素點是否是圖像的邊緣點. 通過以下方法來計算矩陣λ的閾值νthre, 設(shè)閾值的初始值為v0, 用信息素矩陣的平均值來表示. 然后, 將信息素矩陣的元素分成兩組: 大于v0和小于v0, 新的閾值就是這兩組平均值的平均值. 不斷重復這個過程, 直到閾值不再發(fā)生變化時停止.
該算法將ACO和PSO兩種算法的規(guī)則結(jié)合起來,使算法同時具有多樣性和正反饋. 當螞蟻尋找食物時, 多樣性使得螞蟻不會走進死胡同和無限循環(huán), 這是一種創(chuàng)新能力. 當PSO達到預定收斂條件后,保持良好的正反饋信息,這是一種學習增強能力. 將兩種算法的組合使用,能夠使此算法更加智能. 如果多樣性過度,系統(tǒng)過于活躍,將導致出現(xiàn)過多的隨機動作和混亂.如果多樣性不夠,正反饋會導致僵化,當環(huán)境發(fā)生變化時,蟻群不能相應(yīng)調(diào)整.
為了驗證本文算法的可行性, 用Matlab進行了模擬實驗, 系統(tǒng)采用win 7系統(tǒng), 內(nèi)存為4G. 本文的所有實驗結(jié)果均在此配置和平臺上完成. 每種算法進行多次試驗, 并將該算法的實驗結(jié)果與經(jīng)典圖像邊緣檢測算法進行比較, 如圖 3 和圖 4 所示, 其中, 圖 3 針對12.7 mm槍彈, 圖 4 針對 5.8 mm槍彈.
圖 3 12.7 mm槍彈不同算法的圖像邊緣檢測結(jié)果Fig.3 Edge detection results of 12.7 mm bullet image with different algorithms
圖 4 5.8 mm槍彈不同算法的圖像邊緣檢測結(jié)果Fig.4 Edge detection results of 5.8 mm bullet image with different algorithms
通過Sobel算子、 Prewitt算子、 Roberts算子、 Laplace算子和本文提出的群體優(yōu)化算法進行主客觀對比, 主觀評價可以得到如下結(jié)論:
1) 本文的算法能夠提取輪廓清晰, 邊緣連續(xù)的優(yōu)秀圖像邊緣. 而在傳統(tǒng)算法的邊緣檢測中, 容易出現(xiàn)噪聲和假邊緣, 并對邊緣進行細分.
2) 本文的算法能夠在保留目標信息的同時, 有效地過濾圖像的背景信息. 而且保證提取出的邊緣是單邊而不是雙邊. 因此, 該方法是一種非常有效的邊緣檢測方法.
3) 本文的算法可以更好地解決螞蟻搜索步長不靈活的問題. 在螞蟻采用大步策略之后, 一次搜索的結(jié)果不再是單個像素點組成的, 而是由多個邊組成的一段連續(xù)邊. 因此, 螞蟻可以在相同的動作下找到更多的邊緣點, 進而縮短搜索時間. 通過協(xié)作策略, 螞蟻可以實現(xiàn)以一定邊緣為中心的雙向搜索, 在每次迭代之后, 可以獲得更多的邊緣點, 從而提高了搜索效率.
本文利用邊緣強度和邊緣保持度對圖像進行客觀評價.
邊緣強度是沿邊緣的法線方向圖像局部變化強度的量度, 它是描述圖像邊緣好壞的客觀評價指標, 值越大表明邊緣效果越好. 邊緣強度的計算公式定義為
(18)
式中:Edge(x,y)表示邊緣強度;f(x+m,y+n)為鄰域像素的灰度, 窗口大小為M×N, 一般取3×3 或5×5,mean(x-m∶x+m,y-n∶y+n)為區(qū)域均值.
邊緣保持度(邊緣互信息)用以表示實驗圖像從源圖像保留了多少邊緣特征信息. 首先對實驗圖像和源圖像進行邊緣特征提取, 分別計算實驗圖像從源圖像獲得的邊緣信息, 將邊緣信息保持量作為邊緣保持度來評價實驗圖像, 值越大, 說明實驗圖像獲得的源圖像邊緣信息就越多, 邊緣檢測效果就越好. 邊緣保持度的計算公式為
(19)
式中:gI(i,j)為實驗圖像在(i,j)處的邊緣特征幅度;QFI(i,j)為實驗圖像和源圖像之間在(i,j)處的邊緣信息保留值.
利用兩種客觀評價指標可以定量對邊緣檢測結(jié)果進行評價, 具體結(jié)果如表 2 和表 3 所示.
表 2 邊緣強度計算結(jié)果Tab.2 Edge strength results of bullet image with different algorithms
表 3 邊緣保持度計算結(jié)果Tab.3 Edge retention results of bullet image with different algorithms
根據(jù)表 2 和表 3 中邊緣強度和邊緣保持度計算結(jié)果可以看出, 本文方法所得到的客觀評價指標值均為最高, 因此, 本文算法在主客觀評價都具有很好的效果, 從而驗證本文算法的有效性.
槍彈圖像邊緣檢測直接影響整個槍彈圖像的后續(xù)處理, 因此對圖像邊緣檢測的研究具有重要意義. 蟻群優(yōu)化和粒子群算法都是群體智能算法, 具有正反饋, 分布性和魯棒性優(yōu)等特點, 這兩種算法已經(jīng)在很多領(lǐng)域得到了廣泛應(yīng)用. 因此本文將粒子群算法和蟻群算法兩種方法結(jié)合起來, 提出了一種改進的邊緣檢測算法——群體優(yōu)化算法, 對槍彈圖像進行邊緣檢測. 粒子群算法的全局搜索能力與蟻群算法的快速收斂性相結(jié)合, 可以提高混合算法收斂時間, 防止局部收斂. 實驗證明, 該算法具有許多優(yōu)良的特征和較好的邊緣檢測精度.
參考文獻:
[1] 龔聲榮, 劉純平, 王強, 等. 數(shù)字圖像處理與分析[M]. 北京: 清華大學出版社, 2006.
[2] Rizk-Allah R M, Zaki E M, El-Sawy A A. Hybridizing ant colony optimization with firefly algorithm for unconstrained optimization problems[J]. Applied Mathematics and Computation, 2013, 224(11): 473-483.
[3] Jorge F B, Ricardo C G, Angel R V. Ultralow-power processing array for image enhancement and edge detection[J]. IEEE Transactions on Circuits and Systems II-Express Briefs, 2012, 59(11): 751-755.
[4] El-Sayed M A, Bahgat S F, Abdel-Khalek S. Novel approach of edges detection for digital images based on hybrid types of entropy[J]. Applied Mathematics & Information Sciences, 2013, 7(5): 1809-1817.
[5] 董鴻燕. 邊緣檢測的若干技術(shù)研究[D]. 長沙: 國防科學技術(shù)大學, 2008.
[6] 馬苗, 樊養(yǎng)余, 謝松云, 等. 基于灰色系統(tǒng)理論的圖像邊緣檢測新算法[J]. 中國圖像圖形學報, 2003, 8(10): 1136-1139.
Ma Miao, Fan Yangyu, Xie Songyun, et al. A novel algorithm of image edge detection based on gray system theory[J]. Journal of Image and Graphics, 2003, 8(10): 1136-1139. (in Chinese)
[7] Liu Mingyang, Liu Shufen, Wang Xiaoyan, et al. Knowledge-domain semantic searching and recommendation based on improved ant colony algorithmz[J]. Journal of Bionic Engineering, 2013, 10(10): 532-540.
[8] Hoseini P, Shayesteh M G. Efficient contrast enhancement of images using hybrid ant colony optimisation, genetic algorithm, and simulated annealing[J]. Digital Signal Processing, 2013, 23(5): 879-893.
[9] 葉秋冬. 槍彈外觀檢測中的圖像處理及識別算法應(yīng)用研究[D]. 重慶: 重慶理工大學, 2012.
[10] 夏小云, 周育人. 蟻群優(yōu)化算法的理論研究進展[J]. 智能系統(tǒng)學報, 2016, 11(1): 27-36.
Xia Xiaoyun, Zhou Yuren. Advances in theoretical research of ant colony optimization[J]. CAAI Transactions on Intelligent Systems, 2016, 11(1): 27-36. (in Chinese)
[11] 孫京浩, 李秋艷, 楊欣斌, 等. 基于蟻群算法的故障識別[J]. 華東理工大學學報(自然科學版), 2004, 30(2): 194-198.
Sun Jinghao, Li Qiuyan, Yang Xinbin, et al. Research on fault identification based on ant colony algorithm[J]. Journal of East China University of Science and Technology(Natural Science Edition), 2004, 30(2): 194-198. (in Chinese)
[12] Ducatelle F, Levine J. Ant colony optimisation and local search for bin packing and cutting stock problems[J]. Journal of Operational Research Society, 2004, 55(7): 705-716.
[13] 高尚, 鐘娟, 莫述軍. 連續(xù)優(yōu)化問題的蟻群算法研究[J]. 微機發(fā)展, 2003, 13(1): 21-22.
Gao Shang, Zhong Juan, Mo Shujun. Research on ant colony algorithm for continuous optimization problem[J]. Microcomputer Development, 2003, 13(1): 21-22. (in Chinese)