蔡東成,張傳深,曹銀杰
(聊城大學物理與信息工程學院,聊城252059)
大氣系統中云的分布情況對于天氣預報的準確性和氣候檢測起著舉足輕重的作用。地基云圖的識別對于大氣監測和衛星遙感至關重要。針對傳統地基云圖識別準確率低、實時性差問題,提出一種基于Cortex-M的輕量級神經網絡地基云圖識別方法。首先,設計地基云圖識別的輕量級神經網絡模型,然后將訓練好的模型移植到前端Cortex-M開發板上,采用開發板內嵌的CMSIS-NN網絡函數庫搭建相同的模型,同時采用CMSIS-NN庫加快圖像處理速度,對地基云圖進行識別。實驗結果表明,該方法的平均識別率達到98.6%,實時性為24ms,達到預期效果。為地基云圖識別研究提供一種可選擇方案。
Cortex-M;地基云圖識別;輕量級;CMSIS-NN
云在地球的能量守恒中扮演著重要角色,是全球氣候變化的重要因素。因此,云的探測是氣象觀測的重要內容。準確地獲取云的信息,對于天氣預報、飛行保障、氣候研究以及國民經濟等諸多領域都有十分重要的意義。
傳統的地基云圖觀測運用數字圖像處理+模式識別技術。需要手動設計云的有效特征再進行人工目測識別,但云是千變萬化的,很難通過人眼提取出最有效的特征。同時人工觀測有很多缺陷,觀測員必須十分熟悉復雜的觀測規范并能熟練運用,其次觀測結果會受人的生理、心理、視力和責任心等方面的影響,另外測報人員的流動性以及觀測的連續性也會影響觀測的準確性,有些站點的位置偏遠,幾乎與世隔絕,對于工作人員的居住環境也是一種挑戰。十九大中提出,在2035年中國基本實現社會主義現代化,現代化國家的建設離不開人工智能。在此潮流下,依靠人工傳統的地基云圖觀測方式亟需一種智能的替換方式。
近年來,深度學習的興起帶來了人工智能的新一輪浪潮。其中以卷積神經網絡(Convolutional Neural Networks,CNN)的光芒最為耀眼。自2012年,AlexNet網絡在ImageNet挑戰賽以壓倒性的勝利獲得第一名后,CNN給計算機視覺帶來了一場革命。2014年,GoogLeNet網絡與人工目測進行比較,GoogLeNet更勝一籌,這意味著AI識別時代的來臨。隨著卷積神經網絡面向更深、更廣的發展,識別效果也是越來越接近0誤差。但這種方式需要先采集海量數據然后傳至服務器處理,造成服務器中心數據壓力大,對于服務器要求很高且實時性也無法得以保障。
嵌入式+人工智能應運而生。2018年ARM公司推出ARM-NN,針對Cortex-M系列芯片推出CMSISNN庫。為在微控制器上進行卷積神經網絡提供了可能。2020年ARM公司推出Cortex-M55,一款支持AI處理的Cortex處理器,使得微控制器的性能硬件能力得以保障。嵌入式+人工智能設備具有低功耗、安全可靠、易于攜帶安裝等優點,是未來IOT終端設備發展的必然趨勢。
針對以上情況,提出一種基于Cortex-M輕量級神經網絡的基云圖識別方法。采用深度學習算法實現地基云圖識別,使得準確率得以保證。同時將輕量級模型移植到微處理器,解決了服務器中心數據壓力大與實時性差的問題。
為了讓模型更好地運行在嵌入式平臺,需要設計一種輕量級模型,在保證精度的同時,盡可能減小資源的消耗。①對傳統的神經網絡進行優化,用深度可分離模塊替代標準卷積,使得模型參數量減小,減小參數量意味著減小模型的大小,模型越小,占用的內存會更小,模型也會變得更輕。②對設計的模型采用模型剪枝與模型量化的技術,使得模型計算量減小。嵌入式平臺的推理速度變快,在進行決策分析時,模型在處理地基云圖速度更快,實時性得以保證,網絡模型前向傳播耗時減少。
標準卷積結構(圖1a)是將每一個輸入數據的通道與特定卷積核實現卷積操作。并將各通道的卷積結果進行相加的過程。深度可分離卷積結構中(圖1b),由兩部分組成,深度卷積與點卷積。深度卷積是深度可分離卷積的濾波階段,對輸入數據的各通道進行深度卷積操作;點卷積是深度可分離卷積的組合階段,整合多個特征圖信息,串聯輸出。該網絡結構能夠極大程度降低模型參數量以及計算量,從而在檢測精度沒有明顯變化的情況下,提高檢測速率。
假設輸入數據為F×F×N,卷積核為K×K×P,并且步長為1。



圖1 標準卷積和深度可分離卷積
卷積神經網絡在最后應用了全連接層和卷積層相連接,跨連接網絡將低層次特征與高層次特征相結合,更加完整準確地表達了輸入數據信息特征。但是這種連接方式會導致全連接層產生過多的參數,產生參數爆炸和過擬合現象,而且連接到全連接層的低層特征中有一部分是冗余無用的特征,不僅會影響網絡的訓練速度,還會影響識別的準確率。
針對全連接層參數多的問題,提出GAP(Global Average Pooling)代替全連接層的解決方案。
全局平均池化可以生成一個分類任務中相應類別的特征圖,對每個特征圖矩陣像素點求平均值,得到的結果向量直接輸入到分類層。全局平均池化的一個優點是相比于全連接層在增強特征圖與最終分類之間的對應關系使卷積結構保留地更好,很好地解釋了特征圖分類是可信的;另一個優點是全局平均池化層中沒有參數設置,不像全連接層需要大量訓練調優的參數,降低了空間參數,使模型更加健壯,提高網絡模型的抗過擬合能力。全局平均池化可看做對模型的網絡結構整體進行正則化計算降低模型的復雜度,提高模型的抗過擬合能力。如圖2為全連接層和全局平均池化層的過程。
整體模塊由三個深度可分離卷積層和一個全局平均池化層組成。第一個深度可分離卷積層后使用了批量歸一化,可以防止過擬合現象的發生,之后使用了TanH激活函數,防止網絡下采樣時地基云圖信息損失過多,后面的深度可分離卷積層采用ReLU激活函數,模型抗擬合能力提升。最后一層采用全局平均池化替換全連接層,對整幅地基云圖圖片進行正則化,在讓模型穩定的同時大幅減少參數量,使得模型更小,結構如圖3所示。

圖2 全連接層與全局平均池化層
CMSIS-NN庫為嵌入式上實現深度學習提供了平臺。基于CMSIS-NN內核的神經網絡推理處理器運行時間、能耗都有顯著降低。其由NNFUNction和NNSupportFunctions兩部分組成,如圖4所示。NNSup?port函數包括不同的實用函數;NNFunction包含卷積神經網絡中常用的函數,其API操作簡單,可以簡單地重定構在PC上搭建的機器學習模型。因此為神經網絡在嵌入式的移植提供了有力平臺。

圖3 模型流程圖

圖4 CMSIS-NN庫的功能結構圖
第一步在PC上搭建設計的輕量型卷積網絡模型對采集的地基云圖數據集進行訓練,并將訓練好的權重矩陣進行8bit定點量化,使得模型的參數量進一步壓縮。然后將量化后的.h文件移植到前端Cortex-M開發板程序中。
第二部利用前端Cortex-M芯片內嵌的CMSIS-NN卷積神經網絡庫搭建出PC上的訓練模型。CMSIS-NN庫對于深度可分離卷積模塊支持程序較少,因此需要使用C語言對深度可分離模塊進行底層代碼優化。
第三部利用CMSIS-DSP庫加快圖像處理速度,進一步提升地基云圖的識別的實時性。圖5為系統整體功能結構圖。

圖5 整體功能結構圖
實驗基于Python語言TensorFlow、Keras深度學習框架。實驗的硬件設備為Win10,顯卡為Intel UHD Graphics 620,CPU為Intel Core i5-8256U,主頻為1.60Hz。
實驗所采用的地基云圖數據集來自《航空氣象云圖》、《中國云圖》、國家氣象局官網與相機拍攝,共計7264張圖片,分為12個地基云圖類別,分別為淡積云、碎積云、積雨云、層云、高積云、高層云、透光高積云、積云性高積云、毛卷云、偽卷云、卷機云、鉤卷云。如圖6為部分數據展示。
圖像預處理工作:
(1)擴充數據集。對原有樣本進行平移變換、旋轉、對比度變化、錯切變換等方法,將原有7264張樣本數據集增大為21000張。
(2)歸一標準化。將擴充后的樣本統一放縮為64×64像素大小,同時減去它的均值并除以方差,最后再進行歸一化處理。
(3)將獲取的圖像隨機分為3個數據集,分別為訓練數據集、測試數據集和驗證數據集,具體劃分見表1。

圖6 部分地基云圖樣本示例

表1 數據集劃分
本文選擇了AlexNet、VGG-16、MobileNet三種模型與設計的輕量型模型對比。AlexNet、VGG-16、Mo?bileNet都采用了開源的超參數設置。由表2看出VGG-16對于地基云圖識別精最高,但其模型參數量太大,難以在嵌入式平臺設備上進行部署。OUR為本文設計的輕量型卷積神經網絡模型,在準確率相差不到0.3%的基礎上,模型遠遠小于VGG-16。同時在精度上高過了MobileNet模型,綜合性能最優。對于嵌入式平臺算力沒有那么高的要求,進而可以部署在嵌入式設備上進行實時的地基云圖的識別。
圖7所示為在Cortex-M開發板測試的地基云圖識別效果,實時性達到了24ms,平均正確率為98.6%,與PC的準確率并無差別,但PC的FPS為64ms,基于Cortex-M的輕量級神經網絡地基云圖的識別明顯優于PC的卷積網絡識別。

表2 模型比較

圖7 基Cortex-M開發板地基云圖識別效果展示
針對傳統地基云圖識別準確率不高、實時性差問題,提出基于Cortex-M的輕量級神經網絡地基云圖的識別方法。實驗結果表明此識別方法準確率達到98.6%,實時性為24ms,達到預期效果。同時基于Cor?tex-M的識別方法不需要將地基云圖信息上傳至服務器從而可以緩解服務器中心的信息處理壓力,而且此種方法不依賴于操作系統,在安全、穩定、可靠、功耗方面占優,在惡劣的環境中也可以進行部署。為卷積神經網絡在嵌入式芯片研究提供了一種可選擇方案。