基于CNN的海空目標檢測
1 引 言
本文引用地址:http://www.104case.com/article/87491.htm艦船航行在大海上,主要面臨來自空中,海面和水下的威脅,其中空中的威脅最大。這些目標的主要特點是運動速度高,機動頻繁,其背景也比較復雜,受云層、煙霧、波浪、飛鳥、山峰等影響較大。傳感器如熱像儀、電視攝像機、激光測距機等自身帶有噪聲,另外還會有各種形式的干擾,這些都給目標的識別與跟蹤帶來很大困難。因此尋找一種能實時對圖像信號處理的、抗干擾的,并且適合大規模硬件開發與實現的算法是軍事界至今沒有完美解決的難題之一。
元(細)胞神經網絡(Cellular Neural Networks,CNN),是由加州伯克利大學的華裔學者蔡紹棠教授在1988年提出來的一種局域連接、權可設計的人工神經網絡。而后關于CNN的各種理論,算法,改進與應用以及硬件實現等如同雨后春筍般出現。現在CNN在圖像、通信、混沌控制、交通、醫學等領域都有著廣泛的應用。CNN用于圖像的處理,例如降噪、分割、特征提取、空洞填充、細化、陰影檢測、模式識別、目標跟蹤,機器人視覺,水印加密等,比傳統的方法更具潛力。CNN結構的局部耦合性對于處理具有混沌性質的背景下的海空光電目標圖像具有較大的匹配性。本文主要描述了CNN的理論基礎和他應用于圖像處理的思想,并給出了算法實現的步驟,然后用Matlab語言編程進行仿真實驗,以對海空目標的檢測為例,將他與經典的方法進行比較,分析各自的優缺點,最后提出了本算法需要改進的地方。
2 圖像目標檢測的CNN模型
CNN的基本組成單元是元胞(Cell),每個元胞只同他周圍r鄰域的元胞相接,連接的個數Nr=((2r+1)2-1)。如圖1所示為一個3×3規模的CNN網絡結構。用C(i,j)表示第i行、第j列的元胞。C(i,j)只與C(i+1,j),C(i-1,j),C(i,j+1),C(i,j-1),C(i+1,j+1),C(i+1,j-1),C(i-1,j+1),C(i-1,j-1)等8個元胞相連。如圖2所示,每個元胞都有一個狀態vxij,一個恒定的輸入vuij,一個輸出vyij,門限I。標準CNN的狀態方程可用下述一階非線性微分方程描述:
其中,1≤i≤M,1≤j≤N。α,β,I,Eij為大于0的常數。vukl表示C(i,j)鄰近元胞的輸入,vykl表示C(i,j)鄰近元胞的輸出,A(i,j;k,l)表示C(k,l)的輸出與C(i,j)的聯接權,B(i,j;k,l)表示C(k,l)的輸入與C(i,j)的聯接權。式(3)表示輸出與狀態的關系。
CNN網絡動態系統只要滿足下面能量函數有界,就能達到穩定,即:
那么每個元胞經過暫態衰減后,一定能落在穩定狀態,并且所有穩定點幅值都大于1,即:
其中,1≤i≤M,1≤j≤N。根據式(10),CNN就可用在二值圖像或有二值輸出的圖像中去。
不難看出,元胞神經網絡中元胞的排列與圖像的像素相同,這一點很適合用作圖像的處理。選擇與圖像規模相等的網絡,將圖像的每個像素映射到元胞神經網絡的每個元胞。以灰度分辨率為L=2k(k為整數),空間分辨率為M×N的圖像為例,用CNN進行處理。把像素的灰度值作為元胞的輸入。根據式(4)的約束條件,首先要解決像素從0~L-1到-1~1之間的映射。其次,為了便于計算機處理,要將微分方程(1)的計算用差分方程來代替,將連續的時間離散化,然后對邊界條件和模版參數初始化。一般選擇邊界為0,各個元胞的初始狀態一般也確定為0。在保持網絡穩定的條件下,不同的模板參數可以完成不同的圖像處理功能。以邊緣檢測為例,取參數α=β=1,根據結構的對稱性以及只考慮元胞自身輸出反饋回來的情況,一般取為a=2,b=8,d=1,I=-0.5。網絡穩定后的輸出為1或-1。再將{-1,1}映射到{0,255}上,-1對應于白色255,1對應著黑色0。這就完成了對圖像的處理。
用Matlab程序實現CNN處理圖像的基本步驟為:
(1)讀入待處理圖像,將圖像轉化成256×256大小,灰度級為256的圖像;
(2)把像素的灰度值映射到[-1,1]之間;
(3)對像素的初始狀態、模板參數及初始輸出進行初始化;
(4)將(2)的灰度值作為輸入,利用式(1)和式(2)分別計算各元胞的狀態與輸出;
(5)判斷各元胞的穩定性,若滿足穩定條件則停止循環,否則轉到步驟(4)繼續循環迭代;
(6)網絡所有元胞均收斂穩定,停止循環;
(7)將輸出結果映射到{0,255)上,輸出或顯示圖像。
3 仿真實驗與分析
海空背景下的目標的特征提取與檢測,一直都是研究熱點,難度較高。因為背景比較復雜,受影響的因素較多,包括能見度、光照、云層、煙霧、海浪、海鳥、山峰和建筑物等。空中目標一般速度比較快,運動參數不易捕捉,如果加上云霧、能見度和光照的影響,超低空目標還受海鳥、海浪等的影響,檢測的難度就加大了;海上目標速度稍慢,但連綿起伏的海浪、光的反射、云霧等的影響不容忽視,成像的信噪比會隨著浪高、距離、能見度的變化而變化。加上傳感器的性能等的因素使得獲取的目標光電圖像的信噪比難以達到所需檢測概率和虛警概率的要求。這就要求圖像處理方法能夠有較好的抗噪性,能保持目標的完整性和細膩性,便于后續的精確計算,方便濾波、制導和跟蹤等。
邊緣檢測是目標特征提取中重要的一步。目前邊緣檢測的方法有很多種,如Robert算子、Sobel算子、Laplacian算子、Kirsh算子、Prewitt等各種檢測算子,形態學以及后來出現的分形法,神經網絡法,小波理論及遺傳算法等。CNN是邊緣檢測的一種新方法,以上這些方法都有各自的方法特點和應用范圍。由于CNN處理圖像的模式是將元胞與像素一一對應,利用元胞之間非線性的耦合性,通過設置不同功能的模板參數,網絡經過一段動態的訓練后收斂到穩定的狀態。這樣能較好地保證圖像的完整性,保持細節部分不被丟失,很適合對海空背景的圖像處理。
以邊緣檢測為例,為了清晰地看清CNN對海空目標檢測的效果,可以從三個仿真實驗來進行:其一用CNN對帶有噪聲的圖像進行去噪和目標檢測;其二是橫向比較,即將CNN與傳統的一些方法對同一幅圖像進行目標邊緣檢測來比較;其三是縱向比較,即用CNN對不同種情況下的目標進行邊緣檢測。
實驗1 對輸入圖像加入均值為0,方差為0.05的椒鹽噪聲。先用CNN實現中值濾波(具體方法在此不作敘述),然后再用CNN進行檢測。如圖3所示,可以看出,帶有噪聲的圖像,目標已經很模糊了,經過CNN的處理后,目標邊緣部分依然被較完整地檢測出來。
實驗2 分別用CNN、Sobel算子、Canny算子、形態學來對一幅云層中的飛機進行邊緣提取,效果如圖4所示。
實驗3 用CNN分別對云層中的飛機和海上的船只圖像進行邊緣提取,效果如圖5所示。
從這幾幅圖處理的效果可以看出:用Sobel算子只把圖中的主要邊緣提取出了,損失了一些細節邊緣,因為他是通過兩個方向上的模板來對圖像進行處理,對水平和垂直方向的邊緣響應要大,且他受噪聲的影響較大;Canny算子幾乎把圖中的強弱邊緣都提取出來了,是最優的階梯型邊緣檢測算子,但只對受到白噪聲影響的階躍型邊緣是最優的;形態學作邊緣檢測對細節和邊緣都有很好的保留作用,但是與結構元素的選取有關;前三者共同的特點就是檢測速度快,但在硬件實現方面意義不大;而元胞神經網絡提取的邊緣與前面的方法相比,差別不大,但強弱邊緣提取得更加細膩,清晰,邊緣連續性和完整性好,還可以通過調節模板參數,使提取的效果更佳。
通過上面的仿真實驗,可以看出CNN在對海空目標的邊緣檢測的完整性和細膩方面具有一定的優勢。他的更大的優點是適合硬件實現,能夠高速并行計算,耗時短(在硬件方面才能體現,軟件不能),在圖像實時處理方面有很好的應用,因此用于對海空目標實時檢測、識別和跟蹤,尤其是對速度快、機動頻繁的目標,具有顯著優勢。本算法的不足之處,在于網絡的模板參數的選取不一定是最佳的,這可以通過很多方法來改進。例如遺傳算法,自適應算法,還有粒子群優化等方法都可以針對具體的應用來找到最佳的控制模板參數。
4 結 語
本文主要描述了元胞神經網絡的結構、工作原理和他用于圖像處理的基本思想,并給出了用Matlab編程實現仿真的步驟,然后將CNN處理不同海空背景下的目標的效果進行實驗仿真,分析各個方法處理效果的優缺點,得出了:元胞神經網絡在處理低信噪比圖像,例如復雜海空背景下的光電目標圖像方面具有較大優勢,適用于軍事上的目標檢測、特征提取等應用。本文不足之處是沒有對CNN進行圖像處理的原因實質做出分析,這是文章后續要開展的工作。
評論