肖應慧,張著洪
(1貴州大學 大數據與信息工程學院;2貴州大學 貴州省系統優化與科學計算特色重點實驗室,貴陽 550025)
大氣能見度被定義為視力正常的人在白天以靠近地平線的天空為背景,觀測黑色物體時易識別和辨認的最長距離。能見度的變化取決于大氣的透明度,不良天氣現象會導致大氣渾濁,使大氣透明度降低,特別在諸如霧、雨或空氣污染等惡劣天氣條件下,能見度較低。近年來,由霧造成低能見度而導致交通事故頻繁發生,因此準確、高效地對霧天能見度進行實時預測尤為重要。目前,能見度預測的研究方法主要有應用統計分析法和深度學習法。統計分析法通常有物理建模法和非參數建模法,其經由圖像構建物理或數據驅動的概率模型,估計不同霧范圍下的大氣能見度。物理模型法是基于視覺分析的光反射、折射等物理現象,以及基于Koschmieder定理,建立光傳播物理模型,進而利用消光系數實時估計能見度,能見度估計的準確率高低很大程度上依賴于原始圖像和無霧參考圖像的相似程度;非參數建模法考慮了低能見度情況下圖像退化對圖像分類的影響。研究表明,能見度可由霧的空間特征進行表征。例如,Nnolim將全局對比度算子與基于分階的多尺度濾波器結合,將熵和標準偏差融合,對圖像進行去霧和圖像增強,獲得多尺度融合去霧算法,但該算法雖能提升對霧天能見度估計的精度,但不能實時預測能見度。深度學習因能對霧天能見度時序數據在線處理,能捕獲數據的中長期依賴關系,已受到廣泛關注,并在諸如氣象預報等能見度預測中已得到初步應用。例如,Selvaraj等以最高溫度、最低溫度、最高相對濕度、最小相對濕度和風速增強長為輸入量,利用長短時記憶神經網絡預測降雨量;Akmaljon等借助快速傅里葉變換(FFT)濾波器去除輸入圖像的低層次特征,并對每個輸入應用頻譜濾波器來提取低對比度區域,進而利用三流集成卷積神經網絡獲得能見度深度學習模型。
綜上,現有能見度預測方法主要集中于如何從輸入圖像中獲取有價值的能見度特征。相對而言,深度學習法比統計分析法在能見度預測中更有應用前景,但因網絡結構復雜、計算效率低、易于出現過飽和或欠擬合現象,使得其應用于能見度的研究有待深入開展。為此,本文在已獲針對碰撞檢測的果蠅前饋神經網絡基礎上,從果蠅視覺感知和學習的行為特性出發,嘗試性提出一種深度果蠅神經網絡(Deep Fly Neural Network,DFNN),并應用于實時能見度預測。
果蠅有兩只復眼,每只復眼由大約3500個小眼組成,且每個小眼包含8個光感受器。光信息通過復眼進入果蠅的視覺系統,實現光傳遞。果蠅視覺系統具有獨特和簡單的眼結構,對外界環境信息的感知能力強,其神經系統依次經由光感受器(Photorceptor)、視網膜(Retina)、薄膜層(Lamina)、髓質(Medulla)、小葉(Lobula)及大腦神經信息處理層,執行視覺信息的處理和傳遞,各層之間分工明確又聯系緊密,如圖1所示。

圖1 果蠅視覺信息處理的流程圖Fig.1 Flow chart of visual information processing in fly
光感受器層(Photorceptor)主要由感光細胞組成,負責接收外來的光強度信息;視網膜層(Retina)接收光感受器層輸出的信號,負責消除視覺噪聲信號;薄膜層又稱為視葉神經層(Lamina),包含墨盒cartridge(cart)和開關on-off(oo)這兩種類型節點,其中cart節點接收來自視網膜上對應節點的鄰域節點的輸入,并通過卷積濾波產生輸出信號,而oo節點負責接收對應cart節點鄰域內節點的輸出信號,并經由超極化和去極化處理,產生行為輸出量;髓質層包含柱狀神經元和切向細胞,由主通道子單元的兩類結點(、)組成,其中節點接收薄膜層中對應的oo節點的輸出,并輸出檢測節點處的局部方向;節點接收節點鄰域處的局部方向量,經由投影產生在水平、豎直方向的方向量;小葉層匯集髓質層中所有節點的水平、豎直方向量,并將信息整合后輸入果蠅大腦神經系統。最后,大腦神經通過接收小葉層的信息以及神經元相互作用機制,獲得視覺信息刺激后的反饋信號,并將誤差信號反饋入光感受器層。
基于果蠅視覺系統的信息處理機制,針對視覺場景下的碰撞檢測與預警問題,獲得一種人工果蠅視覺神經網絡(Artificial Fly Visual Neural Network,AFVNN),其由4個神經層構成。在此,對該神經網絡作適當改進,得到用于實時能見度預測的改進型深度果蠅神經網絡(Deep Fly Neural Network,DFNN)。DFNN由提取圖像特征的視覺神經網絡和多層感知器(Multiple Layer Preceptor,MLP)構成前向傳播神經網絡,經由梯度下降更新網絡中卷積參數、權值和閾值,實現誤差反向傳播。改進型果蠅深度神經網絡結構如圖2所示。

圖2 果蠅深度前饋神經網絡的示意圖Fig.2 Schematic diagram of the Fly deep feedforward neural network
給定由時間序列灰度圖與標簽構成的訓練集{(A,Y)},A為第時刻的灰度圖,Y為維的標簽或觀測值向量。經由圖2獲知,DFNN接收連續的視頻圖像幀,并依次經由視網膜、薄膜層、髓質層這3個視覺神經層提取輸入圖像的特征信息,進而經由MLP產生神經網絡的輸出信號。
2.1.1 Retina層
該層由個Retina節點形成的行和列矩陣表示,在第時刻接收灰度圖像A,在此3(2),3(2)。Retina節點(,)在第時刻接收輸入圖像中對應像素點處的灰度值L()(光亮強度),并經由式(1)輸出光亮強度偏差信號:

其中,()表示時滯函數。
2.1.2 Lamina層
此層由cartridge和on-off兩個子層構成。cartridge層由(2)(2)個cart節點構成,依據窗口大小為3×3、步長為1的滑動方式,每個節點接收對應的3×3個Retina節點的輸出,并經由高斯濾波器產生該節點的輸出膜電位,即式(2):

其中,1≤≤2;1≤≤2;w是待定的33權重矩陣中位置(,)處的元素;()是非線性激活函數。類似地,on-off層由(2)(2)個oo節點構成,其依據擴邊方式和窗口大小為3×3、步長為1的滑動方式,每個節點接收對應的3×3個cart節點的輸出,并經由如下側抑制機制,輸出其膜電位,式(3):

在此,E()是cartridge層中節點(,)輸出的膜電位的偏差量,即式(4):

2.1.3 Medulla層
此層由個m節點按矩陣排列表示,其中(2)3,(2)3。首先,將Lamina層中按矩陣排列的(2)(2)個oo節點劃分為個子塊。基于對稱EMD運動方向檢測器和3×3權值矩陣,m節點(,)經由式(5)輸出膜電位:

2.1.4 全連接層

其中,為Lamina層中權重矩陣;與分別是MLP中連接權值和閾值構成的矩陣;Y()為標簽值;為一個訓練周期的批量大小。
由式(8)可知,FVNN的反向傳播是將前饋傳播的誤差量反向傳遞給各神經層,并更新全連接層中的權值、閾值和Lamina層的權值。Lamina層的權值由式(9)更新:

其中,是給定的學習率。全連接層的權值與閾值經由式(10)~(11)更新:

其中,∈(0,1),學習率()依據前饋誤差作自適應調節,即式(12):

其中,k和k為增量和減量因子。
結合以上各層的設計,DFNN的算法描述如下:
(1)參數設置:灰度圖大小;學習率;參數k和k;
(2)置←,,,隨機初始化、及;
(3)輸入第時刻的樣例(A,Y);
(4)依據式(8)計算前饋誤差值;
(5)經由式(9)~式(11)更新網絡中的權值和閾值,并輸出第t+1時刻的能見度預測值;
(6)←1;若不滿足終止條件,則返回(3);否則,則結束。
DFNN的算法計算復雜度主要由步4~5確定。在一個迭代周期內,Retina和Lamina層分別進行2和20(224)次運算;Medulla層共進行(13262652)3次運算;全連接層共運算2(2222)9次。另一方面,在反向傳播中,全連接層共進行(36666)9次信息傳播操作;Medulla層共進行(10202040)9次乘除法運算;Lamina層共進行9(82164164409)9次運算。因此,DFNN在一個時間周期內,前向傳播的計算總次數為

由此可知,DFNN的計算復雜度主要由輸入圖像分辨率、和確定;因此,只要適當設置、和的取值,DFNN的運行效率能得到保障。
在Windows10(CPU/i34170 3.70 GHz,RAM/4 GB)/Python 3.6環境下展開數值實驗。為驗證神經網絡DFNN應用于能見度預測問題的有效性,選擇經典的卷積神經網絡CNN、多層感知器MLP以及改進型的VisNet參與比較。各算法的最大迭代次數均為1858。經參數調試,DFNN的參數設置為k=2,k=05,4,001,01;CNN的卷積層和池化層的層數均為5,隱含層數5;CNN與MLP網絡的激活函數為和一元線性函數(),學習率為0.01;VisNet的參數設置源于相應的文獻。
為評估模型的性能,各模型的輸出和預測值時間序列均利用已有的均方根誤差(Root Mean Square Error,)、平均絕對誤差(Mean Absolute Error,)、平均絕對百分比誤差(Mean Absolute Percentage Error,)、決定系數(Coefficient of Determination,)以及準確率(Accuracy,)進行模型評價。作為一種絕對誤差度量指標,刻畫模型的離散程度,該值越接近0,則模型的穩定性越好;度量模型的預測能力,其值越小,則模型的預測精度越高;是基于相對比誤差的精度度量,刻畫預測結果與觀測值的平均偏離程度;表征預測值與觀測值之間的相關性,其越接近1,則預測值與觀測值的時間序列的關聯度越高;的值越接近1,則模型的輸出值或預測值與觀測值的誤差越小。
基于2020年全國研究生數學建模競賽E題提供的視頻幀和能見度標簽數據,選取分辨率為320×320的1862幅灰度圖及對應的觀測能見度值構成樣本集Σ,每張圖像內包含目標物燈塔和天空信息,部分灰度圖如圖3所示。

圖3 不同能見度下樣板圖像示例Fig.3 Example of sample images at different visibility levels
由圖3的視覺效果可知,隨著時間的推移,霧的濃度越來越大,目標物體燈塔的可見性越來越差,且逐漸模糊,即圖像的能見度距離逐漸變低。該視頻在較長時間段內,目標物體的可見度都很低。
將樣本集Σ中的樣例作為DFNN及參與比較模型的輸入,獲得各模型輸出神經元輸出的能見度值和下一時刻的預測值,依據評價指標獲得各自的評價指標值,見表1。另外,各模型作用于Σ中時間序列樣例,獲得的能見度預測曲線與觀測值曲線比較如圖4所示。

表1 算法的誤差性能比較Tab.1 Comparison of error performance of algorithms

圖4 不同能見度下模型的能見度預測值與觀測值對比Fig.4 Modeled visibility predictions versus observed values at different visibility levels
由表1可知,DFNN獲得的均方根誤差值最小且與其它模型獲得的值偏差較大,說明DFNN獲得的能見度預測值時間序列與能見度觀測時間序列的離散程度較低,因而其預測霧天環境下能見度的穩定性較好;MLP獲得的值最大,說明將輸入灰度圖的灰度值直接用于訓練神經網絡模型會導致MLP的預測值與觀測值的離散程度高,模型預測的穩定性較差;CNN和VisNet獲得的相對于MLP的值偏小,說明將輸入灰度圖作特征提取有助于改善模型預測效果的穩定性。由各模型獲得的指標值可知,DFNN的能見度預測效果最好,VisNet次之,而MLP的預測效果最差。由指標值獲知,DFNN獲得的值接近0,表明其在各個時刻獲得的能見度預測值較為逼近觀測值,但其它模型卻相反,即在特定的時刻或時間段出現預測誤差偏大。另外,DFNN和VisNet得到的值已接近1,說明這兩種模型獲得各時刻的能見度預測值與觀測值高度相關,因此模型的擬合能力強;雖然MLP和CNN得到的能見度預測值與觀測值也具有一定的相關性,但模型的擬合能力相對較差。最后,指標的值表明,DFNN的模型預測精度高,VisNet次之,而MLP最差。概括起來,DFNN具有最好的實時能見度預測效果,其預測精度高且穩定,VisNet次之,且MLP對實時預測能見度的能力偏弱。
由圖4可知,因MLP未涉及圖像的特征提取,所以其解決能見度時間序列預測問題的能力較弱,且預測效果出現明顯不穩定的現象;CNN的能見度預測效果比MLP的要好,但預測效果的波動性較為明顯,且在預測后期,預測曲線與觀測值曲線存在一定的偏離;VisNet的預測效果比CNN要好,且預測值與觀測值的偏差較小,但預測曲線在后期出現波動現象;DFNN明顯優于參與比較的模型,能快速地在預測初期使預測值與觀測值的偏差變小,所得預測曲線逼近觀測值曲線的程度較高,且預測效果未出現波動現象,因此其較適合基于圖像的預測問題。
能見度估計一直是交通出行與管理關注的重要話題,也是計算機視覺領域的重要課題。本文在分析果蠅視覺信息處理與傳遞的生物學原理基礎上,基于果蠅的視覺信息處理機制和學習特性,以及梯度下降算法,獲得一種深度果蠅神經網絡模型。計算復雜度分析表明,該模型的計算代價主要由其輸入分辨率確定。實驗結果表明,此模型應用于時間序列能見度預測問題,具有較好的預測能力和抗干擾能力,預測效果穩定,實時能見度預測精度高。此外,該模型雖能滿足實時性要求,但環境的自適應能力有待進一步開展研究。