許志,李敬兆,張傳江,姚磊,王繼偉
(1.安徽理工大學(xué) 電氣與信息工程學(xué)院, 安徽 淮南 232001;2.淮北礦業(yè)股份有限公司 機(jī)電裝備部, 安徽 淮北 235000)
隨著人工智能(Artificial Intelligence,AI)、物聯(lián)網(wǎng)等技術(shù)的飛速發(fā)展,煤礦生產(chǎn)也逐步走向智能化,智慧礦山已成為煤礦企業(yè)新的發(fā)展目標(biāo)[1-3]。在智慧礦山建設(shè)中,視頻監(jiān)控的智能化不僅能夠節(jié)約人力資源,還能提高監(jiān)控效率?;谏疃壬窠?jīng)網(wǎng)絡(luò)搭建AI模型對(duì)視頻和圖像進(jìn)行處理是實(shí)現(xiàn)智能視頻監(jiān)控的重要手段,傳統(tǒng)深度神經(jīng)網(wǎng)絡(luò)由于大而深的網(wǎng)絡(luò)結(jié)構(gòu)[4],對(duì)計(jì)算資源和存儲(chǔ)資源的要求非常高,因此AI模型通常部署在運(yùn)算能力和存儲(chǔ)能力都十分強(qiáng)大的云計(jì)算中心。但當(dāng)前基于云計(jì)算的煤礦井下智能視頻監(jiān)控存在以下問題[5-7]:① 將煤礦井下海量的監(jiān)控視頻傳輸?shù)椒?wù)器需要占用大量網(wǎng)絡(luò)資源,容易造成網(wǎng)絡(luò)擁塞,并且會(huì)產(chǎn)生視頻傳輸延時(shí)。② 服務(wù)器對(duì)海量視頻數(shù)據(jù)進(jìn)行集中處理,將會(huì)對(duì)服務(wù)器的計(jì)算能力產(chǎn)生極大壓力,造成計(jì)算延遲。③ 煤礦井下網(wǎng)絡(luò)環(huán)境復(fù)雜,部分地區(qū)無法上傳監(jiān)控視頻,限制了云計(jì)算智能監(jiān)控的租用,無法保障井下生產(chǎn)的安全性。④ 高性能云服務(wù)器價(jià)格昂貴,增加企業(yè)生產(chǎn)成本。⑤ 將大量數(shù)據(jù)存儲(chǔ)在云服務(wù)器中,數(shù)據(jù)的安全性差。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)在圖像特征提取方面的優(yōu)勢(shì)使其廣泛應(yīng)用于各種圖像分類、圖像識(shí)別等場(chǎng)合。傳統(tǒng)CNN的龐大網(wǎng)絡(luò)結(jié)構(gòu)、海量的參數(shù)規(guī)模及對(duì)計(jì)算量的高需求,使其無法部署在資源有限的嵌入式平臺(tái)上,嚴(yán)重限制了CNN的應(yīng)用范圍。隨著嵌入式微處理器設(shè)計(jì)和制造工藝的不斷提高,嵌入式微處理器的運(yùn)算能力、存儲(chǔ)能力得到了很大提升,且近年來輕量級(jí)神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展[8],尤其是TensorFlow Lite,STM32Cube AI等嵌入式AI開發(fā)平臺(tái)的相繼推出,以及邊緣計(jì)算的提出和發(fā)展[9-10],使得在嵌入式平臺(tái)上部署輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型并進(jìn)行智能運(yùn)算成為可能。為了對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行輕量化設(shè)計(jì),使AI模型可以部署在嵌入式平臺(tái)上,國(guó)內(nèi)外學(xué)者進(jìn)行了大量研究。紀(jì)榮嶸等[11]介紹了參數(shù)剪枝、參數(shù)共享、低秩分解、知識(shí)蒸餾等深度神經(jīng)網(wǎng)絡(luò)壓縮與加速方法,概括了這些方法對(duì)神經(jīng)網(wǎng)絡(luò)的壓縮效果及其優(yōu)缺點(diǎn)。劉洋等[12]通過遷移學(xué)習(xí)的方式對(duì)MobileNet和Inception V3 2種輕量級(jí)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并將其部署在嵌入式平臺(tái)上,對(duì)植物病害進(jìn)行識(shí)別,2種神經(jīng)網(wǎng)絡(luò)在移動(dòng)端均達(dá)到了85%以上的準(zhǔn)確率,但對(duì)于廣泛部署的工業(yè)化專用嵌入式平臺(tái)來說,網(wǎng)絡(luò)模型過于龐大。K. K. Namala等[13]將神經(jīng)網(wǎng)絡(luò)部署在Raspberry Pi 3B+中,實(shí)現(xiàn)了圖像識(shí)別,但該神經(jīng)網(wǎng)絡(luò)難以部署在專用嵌入式平臺(tái)上。崔家華等[14]提出了適用于嵌入式平臺(tái)的小型目標(biāo)檢測(cè)網(wǎng)絡(luò)MTYOLO(MobileNet Tiny-Yolo),該網(wǎng)絡(luò)模型大小僅為Tiny-Yolo的67%,但識(shí)別精度低。
本文在深度可分離卷積的基礎(chǔ)上設(shè)計(jì)了輕量化CNN模型,引入殘差結(jié)構(gòu)對(duì)輕量化CNN模型進(jìn)行優(yōu)化,提升了模型的數(shù)據(jù)泛化能力;采用限制對(duì)比度直方圖均衡化(Contrast Limited Adaptive Histogram Equalization,CLAHE)算法對(duì)煤礦井下圖像進(jìn)行增強(qiáng),使圖像的亮度和對(duì)比度得到提升,進(jìn)一步提高了模型識(shí)別效果;將輕量化CNN模型經(jīng)過STM32Cube AI壓縮后部署在嵌入式平臺(tái)上,設(shè)計(jì)了基于輕量化CNN模型的視頻監(jiān)控終端,解決了現(xiàn)有煤礦井下視頻監(jiān)控系統(tǒng)實(shí)時(shí)性差和無法實(shí)時(shí)響應(yīng)井下違章行為的問題,加強(qiáng)了煤礦井下違章行為的監(jiān)督力度,進(jìn)一步保障了井下生產(chǎn)的安全性。
深度可分離卷積是一種輕量級(jí)的卷積計(jì)算方法[15],該方法將標(biāo)準(zhǔn)卷積分解成深度卷積和逐點(diǎn)卷積,如圖1所示。在標(biāo)準(zhǔn)卷積中,濾波與合并計(jì)算通過1個(gè)運(yùn)算步驟完成,對(duì)輸入圖像的特征進(jìn)行提取形成新的輸出。對(duì)于深度可分離卷積,則先利用濾波器對(duì)輸入圖像的每個(gè)通道進(jìn)行卷積,再采用逐點(diǎn)卷積對(duì)第一步的卷積結(jié)果進(jìn)行進(jìn)一步的卷積運(yùn)算。
圖1 深度可分離卷積運(yùn)算過程Fig.1 Calculation process of depthwise separable convolution
在標(biāo)準(zhǔn)卷積中,進(jìn)行1次卷積運(yùn)算的計(jì)算量為
(1)
式中:DF為輸入圖像尺寸;M為輸入圖像通道數(shù);N為輸出圖像通道數(shù);DK為卷積核尺寸。
標(biāo)準(zhǔn)卷積的卷積核的參數(shù)數(shù)量為
(2)
在深度可分離卷積中,進(jìn)行1次卷積運(yùn)算的計(jì)算量為
(3)
深度可分離卷積的2種卷積核的參數(shù)數(shù)量為
(4)
對(duì)相同輸入尺寸的圖像執(zhí)行1次卷積運(yùn)算,并輸出相同尺寸的特征圖,深度可分離卷積與標(biāo)準(zhǔn)卷積的計(jì)算量之比為
(5)
深度可分離卷積與標(biāo)準(zhǔn)卷積的參數(shù)數(shù)量之比為
(6)
由式(5)和式(6)可知,N與DK越大,深度可分離卷積相對(duì)標(biāo)準(zhǔn)卷積的計(jì)算量和參數(shù)數(shù)量越少。
基于深度可分離卷積的輕量化CNN模型結(jié)構(gòu)如圖2所示。SeparableConv2D代表深度可分離卷積;MaxPooling2D代表最大值池化;Flatten代表扁平層;Dense代表全連接層;Kernel_size代表卷積核尺寸;filters代表卷積核數(shù)量;Pool_size代表池化層步長(zhǎng);activation代表激活函數(shù)。
圖2 基于深度可分離卷積的輕量化CNN模型結(jié)構(gòu)Fig.2 Lightweight CNN model structure based on depthwise separable convolution
采用深度可分離卷積對(duì)輸入圖像進(jìn)行2次卷積運(yùn)算來提取特征,再通過最大值池化操作,對(duì)提取的特征進(jìn)行下采樣,并去除冗余信息。連續(xù)進(jìn)行3次上述操作,從輸入圖像中提取特征圖,通過扁平層對(duì)特征圖進(jìn)行扁平化操作,將特征圖展開形成1維特征向量,再通過3層全連接網(wǎng)絡(luò)對(duì)特征向量進(jìn)行分類。
在嵌入式平臺(tái)上部署的輕量化CNN模型網(wǎng)絡(luò)深度相對(duì)于大型CNN模型較淺,因此對(duì)圖像的特征提取能力不足,導(dǎo)致模型的數(shù)據(jù)泛化能力差。通過引入殘差結(jié)構(gòu)對(duì)輕量化CNN模型進(jìn)行優(yōu)化(圖3),可解決CNN在訓(xùn)練過程中進(jìn)行信息傳遞時(shí),由于信息丟失或損耗導(dǎo)致CNN模型無法訓(xùn)練的問題[7]。此外,殘差結(jié)構(gòu)能在一定程度上反映上一層網(wǎng)絡(luò)的信息,提升CNN模型對(duì)圖像的特征提取能力[16-17]。優(yōu)化后的輕量化CNN模型能夠在網(wǎng)絡(luò)規(guī)模有限的情況下,僅通過增加一些運(yùn)算次數(shù),就能提取到更多的特征,并且可緩解輕量化CNN模型數(shù)據(jù)泛化能力不足的問題。
引入殘差結(jié)構(gòu)后增加的計(jì)算量為
(7)
由式(1)—式(7)可知,引入殘差結(jié)構(gòu)的輕量化CNN的計(jì)算量仍比標(biāo)準(zhǔn)CNN計(jì)算量小,且不會(huì)增加模型的參數(shù)數(shù)量。
由于煤礦井下光照弱和光照不均勻,視頻監(jiān)控圖像整體對(duì)比度低、噪聲大,該類圖像的直方圖通常呈現(xiàn)出灰度頻率分布集中的情況,使模型在識(shí)別該類圖像時(shí)的準(zhǔn)確率低。通過CLAHE算法對(duì)圖像進(jìn)行預(yù)處理,能實(shí)現(xiàn)圖像灰度均衡化,從而提高圖像的對(duì)比度和亮度,使圖像特征更加明顯。對(duì)輸入圖像進(jìn)行CLAHE處理的偽代碼如下。
圖3 基于殘差結(jié)構(gòu)的輕量化CNN模型結(jié)構(gòu)Fig.3 Lightweight CNN model structure based on residual construct
算法:CLAHE1: 輸入圖像:I(R,G,B)2: 色空間轉(zhuǎn)換:I(R,G,B)→I(H,S,V)3: 根據(jù)亮度分量V將圖像劃分為k個(gè)連續(xù)且不重疊的大小為m×n的子塊4: for j in k5: Tavj=TxjTyj/Lj6: Tclj=TclipTavj7: Taddj=∑imax(T(i)j-Tclj,0)/Lj8: while i 圖像的像素分布率為 (8) 式中Tq為灰度為q(q=0,1,…,255)的像素?cái)?shù)。 運(yùn)用CLAHE算法對(duì)1張圖像增強(qiáng)后,以式(8)統(tǒng)計(jì)圖像的直方圖分布,如圖4所示。可看出對(duì)圖像進(jìn)行CLAHE處理后,圖像的對(duì)比度和亮度都得到了提升,直方圖的灰度分布也變得更加均衡。 (c) 圖像灰度分布 基于輕量化CNN模型的視頻監(jiān)控終端由攝像頭、嵌入式微處理器及其外圍電路、SD卡、執(zhí)行機(jī)構(gòu)、以太網(wǎng)接口、WiFi無線通信模塊構(gòu)成,如圖5所示。 圖5 基于輕量化CNN模型的視頻監(jiān)控終端硬件結(jié)構(gòu)Fig.5 Hardware structure of video surveillance terminal based on lightweight CNN model 視頻監(jiān)控終端通過微處理器控制攝像頭采集圖像數(shù)據(jù),對(duì)圖像進(jìn)行預(yù)處理后,通過部署在嵌入式微處理器的輕量化CNN模型對(duì)圖像進(jìn)行分析,當(dāng)判斷出圖像中的工作人員存在違章現(xiàn)象,以及圖像中的設(shè)備發(fā)生故障時(shí),即刻通過執(zhí)行機(jī)構(gòu)使聲光報(bào)警設(shè)備發(fā)出警報(bào)或關(guān)停相關(guān)故障設(shè)備。該過程無須通過以太網(wǎng)將視頻信息傳輸?shù)皆朴?jì)算中心進(jìn)行處理,而是直接在本地對(duì)視頻信息進(jìn)行分析,極大提升了對(duì)違章和故障情況響應(yīng)的實(shí)時(shí)性。對(duì)違章和故障信息處理完畢之后,視頻監(jiān)控終端通過井下以太網(wǎng)或WiFi無線通信模塊將違章圖像發(fā)送到煤礦監(jiān)控中心,同時(shí)將圖像保存到SD卡中。 基于C語(yǔ)言進(jìn)行嵌入式軟件開發(fā),軟件由硬件驅(qū)動(dòng)層、圖像信息處理層、輸出層組成。硬件驅(qū)動(dòng)層包括嵌入式微處理器片內(nèi)外設(shè)的驅(qū)動(dòng),以及攝像頭和顯示器的硬件驅(qū)動(dòng)。圖像信息處理層包括對(duì)攝像頭采集圖像的預(yù)處理,以及調(diào)用輕量化CNN模型對(duì)圖像進(jìn)行處理,其中輕量化CNN模型由STM32Cube AI轉(zhuǎn)換為C/C++代碼。輸出層用于對(duì)拍攝到的違章行為進(jìn)行拍照記錄及控制設(shè)備進(jìn)行報(bào)警。 基于輕量化CNN模型的視頻監(jiān)控終端軟件流程如圖6所示。 圖6 基于輕量化CNN模型的視頻監(jiān)控終端軟件流程Fig.6 Software process of video surveillance terminal based on lightweight CNN model 本文采集的數(shù)據(jù)集包括未戴安全帽、正常佩戴安全帽、行車時(shí)行人、行車時(shí)不行人、無人場(chǎng)景5種類型的圖像,如圖7所示。通過對(duì)原始圖像進(jìn)行裁切、翻轉(zhuǎn)、水平鏡像的方式形成擴(kuò)展數(shù)據(jù)集,數(shù)據(jù)集樣本數(shù)量見表1。 (a) 未戴安全帽 (b) 正常佩戴安全帽 (c) 行車時(shí)行人 (d) 行車時(shí)不行人 (e) 無人場(chǎng)景 表1 數(shù)據(jù)集樣本數(shù)量Table 1 Number of data set samples 軟件環(huán)境:Window10 64位操作系統(tǒng),采用Keras2.24和TensorFlow 1.14深度學(xué)習(xí)框架,用Python進(jìn)行深度學(xué)習(xí)模型的搭建和訓(xùn)練?;赟TM32CubeMX和MDK 5.27搭建嵌入式軟件平臺(tái),采用STM32Cube AI 5.1.2構(gòu)建基于Keras框架的輕量化CNN的C/C++代碼,用C語(yǔ)言和匯編語(yǔ)言進(jìn)行嵌入式軟件開發(fā)。 硬件環(huán)境:計(jì)算機(jī)搭載Intel i7-9700K @3.6 GHz CPU,NVIDIA RTX 2080Ti GPU,32 GB內(nèi)存,11 GB顯存。嵌入式微處理器為基于ARM Cortex-M7內(nèi)核的STM32H743IIT6,480 MHz基頻,2 MB Flash,1 MB SRAM,內(nèi)核集成有DP FPU及DSP指令集,能對(duì)浮點(diǎn)運(yùn)算和矩陣運(yùn)算進(jìn)行加速。 將數(shù)據(jù)集中每種類型圖像按5∶1的比例分為訓(xùn)練集和測(cè)試集。分別搭建標(biāo)準(zhǔn)CNN模型、輕量化CNN模型和優(yōu)化的輕量化CNN模型,參數(shù)設(shè)置:驗(yàn)證集比例為0.2,迭代次數(shù)為200,批數(shù)量為100。 標(biāo)準(zhǔn)CNN模型、輕量化CNN模型和優(yōu)化的輕量化CNN模型在訓(xùn)練時(shí)均采用交叉熵作為損失函數(shù),采用的優(yōu)化方法為Adam,訓(xùn)練曲線如圖8所示??煽闯?種網(wǎng)絡(luò)訓(xùn)練準(zhǔn)確率差別不大;標(biāo)準(zhǔn)CNN模型的驗(yàn)證準(zhǔn)確率比輕量化CNN模型稍高,且驗(yàn)證準(zhǔn)確率曲線更加貼近訓(xùn)練準(zhǔn)確率曲線,表明數(shù)據(jù)泛化能力較好;優(yōu)化的輕量化CNN模型的驗(yàn)證準(zhǔn)確率相對(duì)于標(biāo)準(zhǔn)CNN模型和輕量化CNN模型有明顯提高,且訓(xùn)練的穩(wěn)定性和模型的數(shù)據(jù)泛化能力均得到了顯著提升。 (a) 標(biāo)準(zhǔn)CNN模型 (b) 輕量化CNN模型 (c) 優(yōu)化的輕量化CNN模型 使用STM32CubeMX中的STM32Cube AI模塊將標(biāo)準(zhǔn)CNN模型、輕量化CNN模型、優(yōu)化的輕量化CNN模型壓縮(壓縮參數(shù)為4)后生成ai工程文件,并在工程文件中加入一系列軟硬件初始化程序和圖像預(yù)處理程序后,分別使用3種模型對(duì)SD卡中的數(shù)據(jù)樣本進(jìn)行識(shí)別,得到各類樣本的識(shí)別準(zhǔn)確率,見表2。 表2 不同模型在測(cè)試集上的識(shí)別準(zhǔn)確率Table 2 Recognition accuracy of different models on test set % 對(duì)圖像進(jìn)行CLAHE處理后,3種模型在測(cè)試集上的識(shí)別準(zhǔn)確率見表3。 表3 圖像經(jīng)CLAHE處理后不同模型在測(cè)試集上的識(shí)別準(zhǔn)確率Table 3 Recognition accuracy of different models on test set after images processed by CLAHE % 通過嵌入式微處理器中的定時(shí)器統(tǒng)計(jì)標(biāo)準(zhǔn)CNN模型、輕量化CNN模型與優(yōu)化的輕量化CNN模型識(shí)別1張圖像平均時(shí)間,分別為47.3,26.0,26.8 ms。當(dāng)圖像采用CLAHE算法進(jìn)行處理后,每張圖像的識(shí)別時(shí)間平均增加約3 ms。 由表2、表3和不同模型對(duì)圖像的識(shí)別時(shí)間可知:標(biāo)準(zhǔn)CNN模型對(duì)圖像的識(shí)別時(shí)間最長(zhǎng);輕量化CNN模型識(shí)別時(shí)間大大減少,但同時(shí)也犧牲了一定的識(shí)別準(zhǔn)確率;對(duì)輕量化CNN模型引入殘差結(jié)構(gòu)后,增加了一定的計(jì)算量,導(dǎo)致優(yōu)化的輕量化CNN模型的識(shí)別時(shí)間比輕量化CNN模型延長(zhǎng)了約3.1%,但優(yōu)化的輕量化CNN模型的識(shí)別準(zhǔn)確率得到了很大提升;采用CLAHE算法進(jìn)行圖像增強(qiáng)后,3種模型對(duì)圖像的識(shí)別時(shí)間有了少量增長(zhǎng),但不會(huì)對(duì)視頻監(jiān)控系統(tǒng)的實(shí)時(shí)性產(chǎn)生很大影響,同時(shí)在很大程度上提高了模型的識(shí)別準(zhǔn)確率。 在煤礦井下視頻監(jiān)控終端采用輕量級(jí)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)實(shí)時(shí)智能視頻監(jiān)控,能夠解決傳統(tǒng)視頻監(jiān)控存在的實(shí)時(shí)性差、網(wǎng)絡(luò)帶寬占用高、對(duì)井下違章事件響應(yīng)慢等問題。以深度可分離卷積為核心,設(shè)計(jì)了輕量化CNN模型,并采用殘差結(jié)構(gòu)對(duì)模型進(jìn)行了優(yōu)化,使得模型能夠部署在嵌入式平臺(tái)上,實(shí)現(xiàn)對(duì)煤礦井下違章行為進(jìn)行實(shí)時(shí)識(shí)別和報(bào)警,很大程度上減少了由于井下違章造成的事故,保障了煤礦生產(chǎn)安全。4 基于輕量化CNN模型的視頻監(jiān)控終端
4.1 硬件結(jié)構(gòu)
4.2 軟件架構(gòu)
5 實(shí)驗(yàn)與分析
5.1 數(shù)據(jù)集
5.2 訓(xùn)練平臺(tái)和參數(shù)設(shè)置
5.3 訓(xùn)練結(jié)果
5.4 數(shù)據(jù)集測(cè)試結(jié)果
6 結(jié)語(yǔ)