文/王浩炎
近年來,自動駕駛及輔助駕駛系統的熱度逐漸增長,諸如車道偏離警告、自動剎車及泊車輔助等系統廣泛應用,如何高效高質量的對道路的實況進行分析,對道路圖片的特征進行分割提取成為人們研究的焦點。作為并行處理器中的一種,細胞神經網絡(CNN)在各種圖像處理領域發展前景廣大。本文通過實現道路邊緣提取系統證實了細胞神經網絡在自動駕駛及輔助駕駛系統領域具有廣闊的前景。
CNN是一類非線性模擬動力系統,它具有規律的結構、可擴展的維數等特性,具有連續實時、能高速并行計算等特點。CNN因結構接近于生物細胞組織,所以得名,CNN屬于人工神經網絡。CNN是很多的簡單處理單元通過并聯形成,一個神經元只有簡單的功能,但是許許多多神經元組合起來就擁有強大的并行計算力。CNN和生物大腦組織結構差不多,也就是并行的結構,它在處理數據的順序上也是并行的。普通計算機僅有一個處理單元和串行的計算處理順序,但是對于CNN來說,擁有多個處理單元并在其上同時運算。因此CNN在對圖像處理上具有傳統計算機方法所無法具有的優勢。
1988年10月,CNN首次發表在CAS雜志上,然后引起全球范圍研究者的矚目,此后無數關于CNN的論文爭相在各種雜志、期刊以及會議上發表,促使CNN迅速發展。CNN也因為自身的所具有的廣闊的應用前景成為當下研究熱點問題。
CNN可實現性強,所以一發表就廣泛應用于圖像處理等許多研究領域。CNN主要是在以下幾個方面應用:圖像處理、聯想記憶、模式識別、信號處理和解偏微分方程等方面。尤其是最近幾年,CNN的發展突飛猛進,特別是在模式識別和圖像處理這些方面,爆炸式發展。
但是我們可以看到,盡管CNN理論已經應用成熟,但是其在自動駕駛及輔助駕駛系統等領域卻沒有得到很好的應用,目前,市面上的自動駕駛系統使用的算法多為決策矩陣算法、聚類算法、模式識別算法和回歸算法這四類,在圖像識別上使用聚類算法用于識別模糊圖片,使用模式識別算法用于提取圖片特征,但是其運算模式都不如并行計算的細胞神經網絡,因此對于傳統圖片識別算法,CNN在圖片識別和特征提取上具有高效率和高魯棒性。
CNN的結構是一種空間陣列,并且其細胞連接是局域性的。如圖1所示,CNN結構顯示為M×N的空間陣列,是M×N數量的細胞局域連接而成,可以看到細胞Cij連接Nij(r)陣列中的鄰域細胞,那些不能相連的細胞,就需要以傳播效應的方式互相影響。
以陣列是M×N的CNN為例,在陣列里每個細胞Cij(1≤ i ≤M,1≤ j ≤N)具有一下幾個參數:閾值Ιij、外界輸入uij、輸出yij、狀態變量xij,圖2所示,為CNN中細胞的等效電路,由電壓定律(KVL)和基爾霍夫電流定律(KCL),得出下列描述細胞Cij動態過程的一階非線性微分方程。
狀態方程:

輸出方程:

輸入方程:

約束條件:

電路參數條件:

其中,
x:是細胞Cij的起始態;1≤i,k≤M;1≤j,l≤N;
Eij:是電壓源,單獨獨立;Rx表示線性電阻;C表示線性電容;
Akl:稱為反饋模板,代表在鄰域細胞Ckl中,輸出ykl和細胞Cij兩者連接的權值;

圖1:M*N的CNN結構

圖2:CNN每個細胞的等效電路圖
Bkl:稱為控制模板,代表在鄰域細胞Ckl內,輸入ukl和細胞Cij兩者連接的權值。
模板A和B所代表的含義:Aij(或Bij)是細胞Cij的自反饋權重(或自控制權重),同時還是A(或B)的中心元素;Akl(或Bkl)是細胞鄰域Nij(r)內的細胞Ckl的反饋權重(或控制權重),同樣還是A(或B)中除中心元素以外的其它元素,鄰域Nij(r)的定義決定k和l的取值范圍。這里舉了具有3×3結構的A和B的例子,如下所示:

其 中(i-1,j-1),(i-1,j) ,(i-1,j+1),(i,j-1),(i+1,j-1),(i,j+1),(i+1,j),(i+1,j+1)為(i,j)的鄰域,通稱為(k,l)。
CNN的具有規則的陣列,每個細胞都有一樣的電路結構,都有相同數量的領域細胞,數量為(2r+1)2,前面提到了非線性微分方程式(1)~(6),可以表示一個CNN陣列,證明這種特點。
CNN單個細胞最多存在三個節點,并且每個細胞節點數目一樣,因此其具有局域性的互聯細胞這樣一個特點,適用于并行計算。
前面通過分析A和B可知CNN具有動力學的機制,分別是輸入控制和輸出反饋,控制模板B對輸入控制起決定影響,反饋模板A又反過來決定輸出反饋。非線性微分方程式(3)也表現細胞輸入輸出關系是單調遞增的,方便在硬件上實現。
同時CNN還具有參數的非唯一性等特點。
在本系統中,“A”模板是反饋矩陣,“B”模板是控制矩陣,另外,“i”是偏差值。在本系統中主要功能是提取給定圖中道路的主要邊緣特征,并去掉不重要的細節,從而產生一個相對干凈的邊緣映射。本系統可以在車道偏離警告、自動剎車及泊車輔助等系統廣泛應用。
從圖3原圖和圖4結果圖對比可以看到,去除不必要的數據,成功提取出道路邊緣,從而達到我們的要求。
如圖5所示,顯示為程序界面,我們將要處理的照片輸入,調整3×3的反饋矩陣和控制矩陣,調整偏差值為0.1。
如圖6所示,顯示為輸出結果,我們可以看到利用CNN完美的檢測出圖片的邊緣,邊緣檢測的完整并且噪聲小,產生了最清晰的映射。并且我們可以看到檢測時間只有0.9s,并行化的處理將對圖像處理的運算能力和效率大大提高。
通過實驗我們可以看到,CNN在對圖像進行處理上,提取的結果比較細膩,信息量大,且對邊緣提取連續性好,在各個朝向的邊緣提取上具有很好的效果,并且在處理時間上,我們也可以看出CNN相對于傳統算法,并行計算的模式大大加快了CNN在處理數據上的速度,并且通過實驗發現,處理速度的快慢與所需要處理圖像的大小沒有什么關系。從而驗證CNN在自動駕駛領域具有廣泛的應用前景。
本文對CNN進行了深入學習與探究,并實現了道路邊緣提取系統,對圖像進行了處理,并對圖像處理結果進行分析,證實CNN在圖像處理方面所具有的可行性和高效性等特點,以及在自動駕駛領域中的廣泛應用價值。

圖3:處理原圖

圖4:處理結果

圖5:輸入界面

圖6:圖像輸出結果