蔡?hào)|成,張傳深,曹銀杰
(聊城大學(xué)物理與信息工程學(xué)院,聊城252059)
大氣系統(tǒng)中云的分布情況對(duì)于天氣預(yù)報(bào)的準(zhǔn)確性和氣候檢測(cè)起著舉足輕重的作用。地基云圖的識(shí)別對(duì)于大氣監(jiān)測(cè)和衛(wèi)星遙感至關(guān)重要。針對(duì)傳統(tǒng)地基云圖識(shí)別準(zhǔn)確率低、實(shí)時(shí)性差問(wèn)題,提出一種基于Cortex-M的輕量級(jí)神經(jīng)網(wǎng)絡(luò)地基云圖識(shí)別方法。首先,設(shè)計(jì)地基云圖識(shí)別的輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型,然后將訓(xùn)練好的模型移植到前端Cortex-M開(kāi)發(fā)板上,采用開(kāi)發(fā)板內(nèi)嵌的CMSIS-NN網(wǎng)絡(luò)函數(shù)庫(kù)搭建相同的模型,同時(shí)采用CMSIS-NN庫(kù)加快圖像處理速度,對(duì)地基云圖進(jìn)行識(shí)別。實(shí)驗(yàn)結(jié)果表明,該方法的平均識(shí)別率達(dá)到98.6%,實(shí)時(shí)性為24ms,達(dá)到預(yù)期效果。為地基云圖識(shí)別研究提供一種可選擇方案。
Cortex-M;地基云圖識(shí)別;輕量級(jí);CMSIS-NN
云在地球的能量守恒中扮演著重要角色,是全球氣候變化的重要因素。因此,云的探測(cè)是氣象觀測(cè)的重要內(nèi)容。準(zhǔn)確地獲取云的信息,對(duì)于天氣預(yù)報(bào)、飛行保障、氣候研究以及國(guó)民經(jīng)濟(jì)等諸多領(lǐng)域都有十分重要的意義。
傳統(tǒng)的地基云圖觀測(cè)運(yùn)用數(shù)字圖像處理+模式識(shí)別技術(shù)。需要手動(dòng)設(shè)計(jì)云的有效特征再進(jìn)行人工目測(cè)識(shí)別,但云是千變?nèi)f化的,很難通過(guò)人眼提取出最有效的特征。同時(shí)人工觀測(cè)有很多缺陷,觀測(cè)員必須十分熟悉復(fù)雜的觀測(cè)規(guī)范并能熟練運(yùn)用,其次觀測(cè)結(jié)果會(huì)受人的生理、心理、視力和責(zé)任心等方面的影響,另外測(cè)報(bào)人員的流動(dòng)性以及觀測(cè)的連續(xù)性也會(huì)影響觀測(cè)的準(zhǔn)確性,有些站點(diǎn)的位置偏遠(yuǎn),幾乎與世隔絕,對(duì)于工作人員的居住環(huán)境也是一種挑戰(zhàn)。十九大中提出,在2035年中國(guó)基本實(shí)現(xiàn)社會(huì)主義現(xiàn)代化,現(xiàn)代化國(guó)家的建設(shè)離不開(kāi)人工智能。在此潮流下,依靠人工傳統(tǒng)的地基云圖觀測(cè)方式亟需一種智能的替換方式。
近年來(lái),深度學(xué)習(xí)的興起帶來(lái)了人工智能的新一輪浪潮。其中以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)的光芒最為耀眼。自2012年,AlexNet網(wǎng)絡(luò)在ImageNet挑戰(zhàn)賽以壓倒性的勝利獲得第一名后,CNN給計(jì)算機(jī)視覺(jué)帶來(lái)了一場(chǎng)革命。2014年,GoogLeNet網(wǎng)絡(luò)與人工目測(cè)進(jìn)行比較,GoogLeNet更勝一籌,這意味著AI識(shí)別時(shí)代的來(lái)臨。隨著卷積神經(jīng)網(wǎng)絡(luò)面向更深、更廣的發(fā)展,識(shí)別效果也是越來(lái)越接近0誤差。但這種方式需要先采集海量數(shù)據(jù)然后傳至服務(wù)器處理,造成服務(wù)器中心數(shù)據(jù)壓力大,對(duì)于服務(wù)器要求很高且實(shí)時(shí)性也無(wú)法得以保障。
嵌入式+人工智能應(yīng)運(yùn)而生。2018年ARM公司推出ARM-NN,針對(duì)Cortex-M系列芯片推出CMSISNN庫(kù)。為在微控制器上進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)提供了可能。2020年ARM公司推出Cortex-M55,一款支持AI處理的Cortex處理器,使得微控制器的性能硬件能力得以保障。嵌入式+人工智能設(shè)備具有低功耗、安全可靠、易于攜帶安裝等優(yōu)點(diǎn),是未來(lái)IOT終端設(shè)備發(fā)展的必然趨勢(shì)。
針對(duì)以上情況,提出一種基于Cortex-M輕量級(jí)神經(jīng)網(wǎng)絡(luò)的基云圖識(shí)別方法。采用深度學(xué)習(xí)算法實(shí)現(xiàn)地基云圖識(shí)別,使得準(zhǔn)確率得以保證。同時(shí)將輕量級(jí)模型移植到微處理器,解決了服務(wù)器中心數(shù)據(jù)壓力大與實(shí)時(shí)性差的問(wèn)題。
為了讓模型更好地運(yùn)行在嵌入式平臺(tái),需要設(shè)計(jì)一種輕量級(jí)模型,在保證精度的同時(shí),盡可能減小資源的消耗。①對(duì)傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,用深度可分離模塊替代標(biāo)準(zhǔn)卷積,使得模型參數(shù)量減小,減小參數(shù)量意味著減小模型的大小,模型越小,占用的內(nèi)存會(huì)更小,模型也會(huì)變得更輕。②對(duì)設(shè)計(jì)的模型采用模型剪枝與模型量化的技術(shù),使得模型計(jì)算量減小。嵌入式平臺(tái)的推理速度變快,在進(jìn)行決策分析時(shí),模型在處理地基云圖速度更快,實(shí)時(shí)性得以保證,網(wǎng)絡(luò)模型前向傳播耗時(shí)減少。
標(biāo)準(zhǔn)卷積結(jié)構(gòu)(圖1a)是將每一個(gè)輸入數(shù)據(jù)的通道與特定卷積核實(shí)現(xiàn)卷積操作。并將各通道的卷積結(jié)果進(jìn)行相加的過(guò)程。深度可分離卷積結(jié)構(gòu)中(圖1b),由兩部分組成,深度卷積與點(diǎn)卷積。深度卷積是深度可分離卷積的濾波階段,對(duì)輸入數(shù)據(jù)的各通道進(jìn)行深度卷積操作;點(diǎn)卷積是深度可分離卷積的組合階段,整合多個(gè)特征圖信息,串聯(lián)輸出。該網(wǎng)絡(luò)結(jié)構(gòu)能夠極大程度降低模型參數(shù)量以及計(jì)算量,從而在檢測(cè)精度沒(méi)有明顯變化的情況下,提高檢測(cè)速率。
假設(shè)輸入數(shù)據(jù)為F×F×N,卷積核為K×K×P,并且步長(zhǎng)為1。
圖1 標(biāo)準(zhǔn)卷積和深度可分離卷積
卷積神經(jīng)網(wǎng)絡(luò)在最后應(yīng)用了全連接層和卷積層相連接,跨連接網(wǎng)絡(luò)將低層次特征與高層次特征相結(jié)合,更加完整準(zhǔn)確地表達(dá)了輸入數(shù)據(jù)信息特征。但是這種連接方式會(huì)導(dǎo)致全連接層產(chǎn)生過(guò)多的參數(shù),產(chǎn)生參數(shù)爆炸和過(guò)擬合現(xiàn)象,而且連接到全連接層的低層特征中有一部分是冗余無(wú)用的特征,不僅會(huì)影響網(wǎng)絡(luò)的訓(xùn)練速度,還會(huì)影響識(shí)別的準(zhǔn)確率。
針對(duì)全連接層參數(shù)多的問(wèn)題,提出GAP(Global Average Pooling)代替全連接層的解決方案。
全局平均池化可以生成一個(gè)分類任務(wù)中相應(yīng)類別的特征圖,對(duì)每個(gè)特征圖矩陣像素點(diǎn)求平均值,得到的結(jié)果向量直接輸入到分類層。全局平均池化的一個(gè)優(yōu)點(diǎn)是相比于全連接層在增強(qiáng)特征圖與最終分類之間的對(duì)應(yīng)關(guān)系使卷積結(jié)構(gòu)保留地更好,很好地解釋了特征圖分類是可信的;另一個(gè)優(yōu)點(diǎn)是全局平均池化層中沒(méi)有參數(shù)設(shè)置,不像全連接層需要大量訓(xùn)練調(diào)優(yōu)的參數(shù),降低了空間參數(shù),使模型更加健壯,提高網(wǎng)絡(luò)模型的抗過(guò)擬合能力。全局平均池化可看做對(duì)模型的網(wǎng)絡(luò)結(jié)構(gòu)整體進(jìn)行正則化計(jì)算降低模型的復(fù)雜度,提高模型的抗過(guò)擬合能力。如圖2為全連接層和全局平均池化層的過(guò)程。
整體模塊由三個(gè)深度可分離卷積層和一個(gè)全局平均池化層組成。第一個(gè)深度可分離卷積層后使用了批量歸一化,可以防止過(guò)擬合現(xiàn)象的發(fā)生,之后使用了TanH激活函數(shù),防止網(wǎng)絡(luò)下采樣時(shí)地基云圖信息損失過(guò)多,后面的深度可分離卷積層采用ReLU激活函數(shù),模型抗擬合能力提升。最后一層采用全局平均池化替換全連接層,對(duì)整幅地基云圖圖片進(jìn)行正則化,在讓模型穩(wěn)定的同時(shí)大幅減少參數(shù)量,使得模型更小,結(jié)構(gòu)如圖3所示。
圖2 全連接層與全局平均池化層
CMSIS-NN庫(kù)為嵌入式上實(shí)現(xiàn)深度學(xué)習(xí)提供了平臺(tái)?;贑MSIS-NN內(nèi)核的神經(jīng)網(wǎng)絡(luò)推理處理器運(yùn)行時(shí)間、能耗都有顯著降低。其由NNFUNction和NNSupportFunctions兩部分組成,如圖4所示。NNSup?port函數(shù)包括不同的實(shí)用函數(shù);NNFunction包含卷積神經(jīng)網(wǎng)絡(luò)中常用的函數(shù),其API操作簡(jiǎn)單,可以簡(jiǎn)單地重定構(gòu)在PC上搭建的機(jī)器學(xué)習(xí)模型。因此為神經(jīng)網(wǎng)絡(luò)在嵌入式的移植提供了有力平臺(tái)。
圖3 模型流程圖
圖4 CMSIS-NN庫(kù)的功能結(jié)構(gòu)圖
第一步在PC上搭建設(shè)計(jì)的輕量型卷積網(wǎng)絡(luò)模型對(duì)采集的地基云圖數(shù)據(jù)集進(jìn)行訓(xùn)練,并將訓(xùn)練好的權(quán)重矩陣進(jìn)行8bit定點(diǎn)量化,使得模型的參數(shù)量進(jìn)一步壓縮。然后將量化后的.h文件移植到前端Cortex-M開(kāi)發(fā)板程序中。
第二部利用前端Cortex-M芯片內(nèi)嵌的CMSIS-NN卷積神經(jīng)網(wǎng)絡(luò)庫(kù)搭建出PC上的訓(xùn)練模型。CMSIS-NN庫(kù)對(duì)于深度可分離卷積模塊支持程序較少,因此需要使用C語(yǔ)言對(duì)深度可分離模塊進(jìn)行底層代碼優(yōu)化。
第三部利用CMSIS-DSP庫(kù)加快圖像處理速度,進(jìn)一步提升地基云圖的識(shí)別的實(shí)時(shí)性。圖5為系統(tǒng)整體功能結(jié)構(gòu)圖。
圖5 整體功能結(jié)構(gòu)圖
實(shí)驗(yàn)基于Python語(yǔ)言TensorFlow、Keras深度學(xué)習(xí)框架。實(shí)驗(yàn)的硬件設(shè)備為Win10,顯卡為Intel UHD Graphics 620,CPU為Intel Core i5-8256U,主頻為1.60Hz。
實(shí)驗(yàn)所采用的地基云圖數(shù)據(jù)集來(lái)自《航空氣象云圖》、《中國(guó)云圖》、國(guó)家氣象局官網(wǎng)與相機(jī)拍攝,共計(jì)7264張圖片,分為12個(gè)地基云圖類別,分別為淡積云、碎積云、積雨云、層云、高積云、高層云、透光高積云、積云性高積云、毛卷云、偽卷云、卷機(jī)云、鉤卷云。如圖6為部分?jǐn)?shù)據(jù)展示。
圖像預(yù)處理工作:
(1)擴(kuò)充數(shù)據(jù)集。對(duì)原有樣本進(jìn)行平移變換、旋轉(zhuǎn)、對(duì)比度變化、錯(cuò)切變換等方法,將原有7264張樣本數(shù)據(jù)集增大為21000張。
(2)歸一標(biāo)準(zhǔn)化。將擴(kuò)充后的樣本統(tǒng)一放縮為64×64像素大小,同時(shí)減去它的均值并除以方差,最后再進(jìn)行歸一化處理。
(3)將獲取的圖像隨機(jī)分為3個(gè)數(shù)據(jù)集,分別為訓(xùn)練數(shù)據(jù)集、測(cè)試數(shù)據(jù)集和驗(yàn)證數(shù)據(jù)集,具體劃分見(jiàn)表1。
圖6 部分地基云圖樣本示例
表1 數(shù)據(jù)集劃分
本文選擇了AlexNet、VGG-16、MobileNet三種模型與設(shè)計(jì)的輕量型模型對(duì)比。AlexNet、VGG-16、Mo?bileNet都采用了開(kāi)源的超參數(shù)設(shè)置。由表2看出VGG-16對(duì)于地基云圖識(shí)別精最高,但其模型參數(shù)量太大,難以在嵌入式平臺(tái)設(shè)備上進(jìn)行部署。OUR為本文設(shè)計(jì)的輕量型卷積神經(jīng)網(wǎng)絡(luò)模型,在準(zhǔn)確率相差不到0.3%的基礎(chǔ)上,模型遠(yuǎn)遠(yuǎn)小于VGG-16。同時(shí)在精度上高過(guò)了MobileNet模型,綜合性能最優(yōu)。對(duì)于嵌入式平臺(tái)算力沒(méi)有那么高的要求,進(jìn)而可以部署在嵌入式設(shè)備上進(jìn)行實(shí)時(shí)的地基云圖的識(shí)別。
圖7所示為在Cortex-M開(kāi)發(fā)板測(cè)試的地基云圖識(shí)別效果,實(shí)時(shí)性達(dá)到了24ms,平均正確率為98.6%,與PC的準(zhǔn)確率并無(wú)差別,但PC的FPS為64ms,基于Cortex-M的輕量級(jí)神經(jīng)網(wǎng)絡(luò)地基云圖的識(shí)別明顯優(yōu)于PC的卷積網(wǎng)絡(luò)識(shí)別。
表2 模型比較
圖7 基Cortex-M開(kāi)發(fā)板地基云圖識(shí)別效果展示
針對(duì)傳統(tǒng)地基云圖識(shí)別準(zhǔn)確率不高、實(shí)時(shí)性差問(wèn)題,提出基于Cortex-M的輕量級(jí)神經(jīng)網(wǎng)絡(luò)地基云圖的識(shí)別方法。實(shí)驗(yàn)結(jié)果表明此識(shí)別方法準(zhǔn)確率達(dá)到98.6%,實(shí)時(shí)性為24ms,達(dá)到預(yù)期效果。同時(shí)基于Cor?tex-M的識(shí)別方法不需要將地基云圖信息上傳至服務(wù)器從而可以緩解服務(wù)器中心的信息處理壓力,而且此種方法不依賴于操作系統(tǒng),在安全、穩(wěn)定、可靠、功耗方面占優(yōu),在惡劣的環(huán)境中也可以進(jìn)行部署。為卷積神經(jīng)網(wǎng)絡(luò)在嵌入式芯片研究提供了一種可選擇方案。