随着人工智能(Artificial Intelligence,AI)、物联网等技术的飞速发展,煤矿生产也逐步走向智能化,智慧矿山已成为煤矿企业新的发展目标[1-3]。在智慧矿山建设中,视频监控的智能化不仅能够节约人力资源,还能提高监控效率。基于深度神经网络搭建AI模型对视频和图像进行处理是实现智能视频监控的重要手段,传统深度神经网络由于大而深的网络结构[4],对计算资源和存储资源的要求非常高,因此AI模型通常部署在运算能力和存储能力都十分强大的云计算中心。但当前基于云计算的煤矿井下智能视频监控存在以下问题[5-7]:① 将煤矿井下海量的监控视频传输到服务器需要占用大量网络资源,容易造成网络拥塞,并且会产生视频传输延时。② 服务器对海量视频数据进行集中处理,将会对服务器的计算能力产生极大压力,造成计算延迟。③ 煤矿井下网络环境复杂,部分地区无法上传监控视频,限制了云计算智能监控的租用,无法保障井下生产的安全性。④ 高性能云服务器价格昂贵,增加企业生产成本。⑤ 将大量数据存储在云服务器中,数据的安全性差。
卷积神经网络(Convolutional Neural Networks,CNN)在图像特征提取方面的优势使其广泛应用于各种图像分类、图像识别等场合。传统CNN的庞大网络结构、海量的参数规模及对计算量的高需求,使其无法部署在资源有限的嵌入式平台上,严重限制了CNN的应用范围。随着嵌入式微处理器设计和制造工艺的不断提高,嵌入式微处理器的运算能力、存储能力得到了很大提升,且近年来轻量级神经网络的不断发展[8],尤其是TensorFlow Lite,STM32Cube AI等嵌入式AI开发平台的相继推出,以及边缘计算的提出和发展[9-10],使得在嵌入式平台上部署轻量级神经网络模型并进行智能运算成为可能。为了对神经网络进行轻量化设计,使AI模型可以部署在嵌入式平台上,国内外学者进行了大量研究。纪荣嵘等[11]介绍了参数剪枝、参数共享、低秩分解、知识蒸馏等深度神经网络压缩与加速方法,概括了这些方法对神经网络的压缩效果及其优缺点。刘洋等[12]通过迁移学习的方式对MobileNet和Inception V3 2种轻量级神经网络进行训练,并将其部署在嵌入式平台上,对植物病害进行识别,2种神经网络在移动端均达到了85%以上的准确率,但对于广泛部署的工业化专用嵌入式平台来说,网络模型过于庞大。K. K. Namala等[13]将神经网络部署在Raspberry Pi 3B+中,实现了图像识别,但该神经网络难以部署在专用嵌入式平台上。崔家华等[14]提出了适用于嵌入式平台的小型目标检测网络MTYOLO(MobileNet Tiny-Yolo),该网络模型大小仅为Tiny-Yolo的67%,但识别精度低。
本文在深度可分离卷积的基础上设计了轻量化CNN模型,引入残差结构对轻量化CNN模型进行优化,提升了模型的数据泛化能力;采用限制对比度直方图均衡化(Contrast Limited Adaptive Histogram Equalization,CLAHE)算法对煤矿井下图像进行增强,使图像的亮度和对比度得到提升,进一步提高了模型识别效果;将轻量化CNN模型经过STM32Cube AI压缩后部署在嵌入式平台上,设计了基于轻量化CNN模型的视频监控终端,解决了现有煤矿井下视频监控系统实时性差和无法实时响应井下违章行为的问题,加强了煤矿井下违章行为的监督力度,进一步保障了井下生产的安全性。
深度可分离卷积是一种轻量级的卷积计算方法[15],该方法将标准卷积分解成深度卷积和逐点卷积,如图1所示。在标准卷积中,滤波与合并计算通过1个运算步骤完成,对输入图像的特征进行提取形成新的输出。对于深度可分离卷积,则先利用滤波器对输入图像的每个通道进行卷积,再采用逐点卷积对第一步的卷积结果进行进一步的卷积运算。
图1 深度可分离卷积运算过程
Fig.1 Calculation process of depthwise separable convolution
在标准卷积中,进行1次卷积运算的计算量为
(1)
式中:DF为输入图像尺寸;M为输入图像通道数;N为输出图像通道数;DK为卷积核尺寸。
标准卷积的卷积核的参数数量为
(2)
在深度可分离卷积中,进行1次卷积运算的计算量为
(3)
深度可分离卷积的2种卷积核的参数数量为
(4)
对相同输入尺寸的图像执行1次卷积运算,并输出相同尺寸的特征图,深度可分离卷积与标准卷积的计算量之比为
(5)
深度可分离卷积与标准卷积的参数数量之比为
(6)
由式(5)和式(6)可知,N与DK越大,深度可分离卷积相对标准卷积的计算量和参数数量越少。
基于深度可分离卷积的轻量化CNN模型结构如图2所示。SeparableConv2D代表深度可分离卷积;MaxPooling2D代表最大值池化;Flatten代表扁平层;Dense代表全连接层;Kernel_size代表卷积核尺寸;filters代表卷积核数量;Pool_size代表池化层步长;activation代表激活函数。
图2 基于深度可分离卷积的轻量化CNN模型结构
Fig.2 Lightweight CNN model structure based on depthwise separable convolution
采用深度可分离卷积对输入图像进行2次卷积运算来提取特征,再通过最大值池化操作,对提取的特征进行下采样,并去除冗余信息。连续进行3次上述操作,从输入图像中提取特征图,通过扁平层对特征图进行扁平化操作,将特征图展开形成1维特征向量,再通过3层全连接网络对特征向量进行分类。
在嵌入式平台上部署的轻量化CNN模型网络深度相对于大型CNN模型较浅,因此对图像的特征提取能力不足,导致模型的数据泛化能力差。通过引入残差结构对轻量化CNN模型进行优化(图3),可解决CNN在训练过程中进行信息传递时,由于信息丢失或损耗导致CNN模型无法训练的问题[7]。此外,残差结构能在一定程度上反映上一层网络的信息,提升CNN模型对图像的特征提取能力[16-17]。优化后的轻量化CNN模型能够在网络规模有限的情况下,仅通过增加一些运算次数,就能提取到更多的特征,并且可缓解轻量化CNN模型数据泛化能力不足的问题。
引入残差结构后增加的计算量为
(7)
由式(1)—式(7)可知,引入残差结构的轻量化CNN的计算量仍比标准CNN计算量小,且不会增加模型的参数数量。
由于煤矿井下光照弱和光照不均匀,视频监控图像整体对比度低、噪声大,该类图像的直方图通常呈现出灰度频率分布集中的情况,使模型在识别该类图像时的准确率低。通过CLAHE算法对图像进行预处理,能实现图像灰度均衡化,从而提高图像的对比度和亮度,使图像特征更加明显。对输入图像进行CLAHE处理的伪代码如下。
图3 基于残差结构的轻量化CNN模型结构
Fig.3 Lightweight CNN model structure based on residual construct
算法:CLAHE1: 输入图像:I(R,G,B)2: 色空间转换:I(R,G,B)→I(H,S,V)3: 根据亮度分量V将图像划分为k个连续且不重叠的大小为m×n的子块4: for j in k5: Tavj=TxjTyj/Lj6: Tclj=TclipTavj7: Taddj=∑imax(T(i)j-Tclj,0)/Lj8: while i
为第j(j=1,2,…,k,k为子块数)个子块所有像素均匀分配到各个灰度级的像素数;分别为第j个子块x,y方向的像素数;Lj为第j个子块中灰度级的数量;为第j个子块灰度级分配的像素数限值;Tclip为像素裁切系数,取值范围为为每个灰度级能够分配到的像素数;T(i)j为第j个子块第i(i=1,2,…,T/(mn),T为输入图像的像素总数)个灰度级的像素数;T′(i)j为重新分配的第j个子块第i个灰度级的像素数;为剩余像素数;S为从最小灰度级到最大灰度级进行循环搜索的步长。
图像的像素分布率为
(8)
式中Tq为灰度为q(q=0,1,…,255)的像素数。
运用CLAHE算法对1张图像增强后,以式(8)统计图像的直方图分布,如图4所示。可看出对图像进行CLAHE处理后,图像的对比度和亮度都得到了提升,直方图的灰度分布也变得更加均衡。
(c) 图像灰度分布
图4 CLAHE算法对井下图像处理前后对比
Fig.4 Comparison of original image and image processed by CLAHE algorithm
基于轻量化CNN模型的视频监控终端由摄像头、嵌入式微处理器及其外围电路、SD卡、执行机构、以太网接口、WiFi无线通信模块构成,如图5所示。
图5 基于轻量化CNN模型的视频监控终端硬件结构
Fig.5 Hardware structure of video surveillance terminal based on lightweight CNN model
视频监控终端通过微处理器控制摄像头采集图像数据,对图像进行预处理后,通过部署在嵌入式微处理器的轻量化CNN模型对图像进行分析,当判断出图像中的工作人员存在违章现象,以及图像中的设备发生故障时,即刻通过执行机构使声光报警设备发出警报或关停相关故障设备。该过程无须通过以太网将视频信息传输到云计算中心进行处理,而是直接在本地对视频信息进行分析,极大提升了对违章和故障情况响应的实时性。对违章和故障信息处理完毕之后,视频监控终端通过井下以太网或WiFi无线通信模块将违章图像发送到煤矿监控中心,同时将图像保存到SD卡中。
基于C语言进行嵌入式软件开发,软件由硬件驱动层、图像信息处理层、输出层组成。硬件驱动层包括嵌入式微处理器片内外设的驱动,以及摄像头和显示器的硬件驱动。图像信息处理层包括对摄像头采集图像的预处理,以及调用轻量化CNN模型对图像进行处理,其中轻量化CNN模型由STM32Cube AI转换为C/C++代码。输出层用于对拍摄到的违章行为进行拍照记录及控制设备进行报警。
基于轻量化CNN模型的视频监控终端软件流程如图6所示。
图6 基于轻量化CNN模型的视频监控终端软件流程
Fig.6 Software process of video surveillance terminal based on lightweight CNN model
本文采集的数据集包括未戴安全帽、正常佩戴安全帽、行车时行人、行车时不行人、无人场景5种类型的图像,如图7所示。通过对原始图像进行裁切、翻转、水平镜像的方式形成扩展数据集,数据集样本数量见表1。
(a) 未戴安全帽
(b) 正常佩戴安全帽
(c) 行车时行人
(d) 行车时不行人
(e) 无人场景
图7 数据集样本
Fig.7 Data set samples
表1 数据集样本数量
Table 1 Number of data set samples
样本类型原始图像数量/张扩展后的图像数量/张未戴安全帽2341 404正常佩戴安全帽2101 260行车时行人1711 026行车时不行人1821 092无人场景1781 068
软件环境:Window10 64位操作系统,采用Keras2.24和TensorFlow 1.14深度学习框架,用Python进行深度学习模型的搭建和训练。基于STM32CubeMX和MDK 5.27搭建嵌入式软件平台,采用STM32Cube AI 5.1.2构建基于Keras框架的轻量化CNN的C/C++代码,用C语言和汇编语言进行嵌入式软件开发。
硬件环境:计算机搭载Intel i7-9700K @3.6 GHz CPU,NVIDIA RTX 2080Ti GPU,32 GB内存,11 GB显存。嵌入式微处理器为基于ARM Cortex-M7内核的STM32H743IIT6,480 MHz基频,2 MB Flash,1 MB SRAM,内核集成有DP FPU及DSP指令集,能对浮点运算和矩阵运算进行加速。
将数据集中每种类型图像按5∶1的比例分为训练集和测试集。分别搭建标准CNN模型、轻量化CNN模型和优化的轻量化CNN模型,参数设置:验证集比例为0.2,迭代次数为200,批数量为100。
标准CNN模型、轻量化CNN模型和优化的轻量化CNN模型在训练时均采用交叉熵作为损失函数,采用的优化方法为Adam,训练曲线如图8所示。可看出3种网络训练准确率差别不大;标准CNN模型的验证准确率比轻量化CNN模型稍高,且验证准确率曲线更加贴近训练准确率曲线,表明数据泛化能力较好;优化的轻量化CNN模型的验证准确率相对于标准CNN模型和轻量化CNN模型有明显提高,且训练的稳定性和模型的数据泛化能力均得到了显著提升。
(a) 标准CNN模型
(b) 轻量化CNN模型
(c) 优化的轻量化CNN模型
图8 不同模型训练曲线
Fig.8 Training curves of different models
使用STM32CubeMX中的STM32Cube AI模块将标准CNN模型、轻量化CNN模型、优化的轻量化CNN模型压缩(压缩参数为4)后生成ai工程文件,并在工程文件中加入一系列软硬件初始化程序和图像预处理程序后,分别使用3种模型对SD卡中的数据样本进行识别,得到各类样本的识别准确率,见表2。
表2 不同模型在测试集上的识别准确率
Table 2 Recognition accuracy of different models on test set %
样本类型标准CNN模型轻量化CNN模型优化的轻量化CNN模型未戴安全帽918893正常佩戴安全帽938594行车时行人898691行车时不行人868489无人场景928992
对图像进行CLAHE处理后,3种模型在测试集上的识别准确率见表3。
表3 图像经CLAHE处理后不同模型在测试集上的识别准确率
Table 3 Recognition accuracy of different models on test set after images processed by CLAHE %
样本类型标准CNN模型轻量化CNN模型优化的轻量化CNN模型未戴安全帽939197正常佩戴安全帽968796行车时行人949098行车时不行人928896无人场景949397
通过嵌入式微处理器中的定时器统计标准CNN模型、轻量化CNN模型与优化的轻量化CNN模型识别1张图像平均时间,分别为47.3,26.0,26.8 ms。当图像采用CLAHE算法进行处理后,每张图像的识别时间平均增加约3 ms。
由表2、表3和不同模型对图像的识别时间可知:标准CNN模型对图像的识别时间最长;轻量化CNN模型识别时间大大减少,但同时也牺牲了一定的识别准确率;对轻量化CNN模型引入残差结构后,增加了一定的计算量,导致优化的轻量化CNN模型的识别时间比轻量化CNN模型延长了约3.1%,但优化的轻量化CNN模型的识别准确率得到了很大提升;采用CLAHE算法进行图像增强后,3种模型对图像的识别时间有了少量增长,但不会对视频监控系统的实时性产生很大影响,同时在很大程度上提高了模型的识别准确率。
在煤矿井下视频监控终端采用轻量级神经网络实现实时智能视频监控,能够解决传统视频监控存在的实时性差、网络带宽占用高、对井下违章事件响应慢等问题。以深度可分离卷积为核心,设计了轻量化CNN模型,并采用残差结构对模型进行了优化,使得模型能够部署在嵌入式平台上,实现对煤矿井下违章行为进行实时识别和报警,很大程度上减少了由于井下违章造成的事故,保障了煤矿生产安全。
[1] 王国法,王虹,任怀伟,等.智慧煤矿2025情景目标和发展路径[J].煤炭学报,2018,43(2):295-305.
WANG Guofa,WANG Hong,REN Huaiwei,et al.2025 scenarios and development path of intelligent coal mine[J].Journal of China Coal Society,2018,43(2):295-305.
[2] 王国法,刘峰,庞义辉,等.煤矿智能化——煤炭工业高质量发展的核心技术支撑[J].煤炭学报,2019,44(2):349-357.
WANG Guofa,LIU Feng,PANG Yihui,et al.Coal mine intellectualization: the core technology of high quality development[J].Journal of China Coal Society,2019,44(2):349-357.
[3] 阙建立.智能矿山平台建设与实现[J].工矿自动化,2018,44(4):90-94.
QUE Jianli.Construction and implementation of platform for intelligent mine[J].Industry and Mine Automation,2018,44(4):90-94.
[4] 权宇,李志欣,张灿龙,等.融合深度扩张网络和轻量化网络的目标检测模型[J].电子学报,2020,48(2):390-397.
QUAN Yu,LI Zhixin,ZHANG Canlong,et al.Fusing deep dilated convolutions network and light-weight network for object detection[J].Acta Electronica Sinica,2020,48(2):390-397.
[5] 施巍松,张星洲,王一帆,等.边缘计算:现状与展望[J].计算机研究与发展,2019,56(1):69-89.
SHI Weisong,ZHANG Xingzhou,WANG Yifan,et al.Edgecomputing:state-of-the-art and future directions[J].Journal of Computer Research and Development,2019,56(1):69-89.
[6] YI Shanhe,HAO Zijiang,ZHANG Qingyang,et al.LAVEA:latency-aware video analytics on edge computing platform[C]//IEEE 37th International Conference on Distributed Computing Systems,Atlanta,2017:2573-2574.
[7] HE Kaiming,ZHANG Xiangyu,REN Shaoqing,et al.Deep residual learning for image recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition,Las Vegas,2016:770-778.
[8] 葛道辉,李洪升,张亮,等.轻量级神经网络架构综述[J].软件学报,2020,31(9):2627-2653.
GE Daohui,LI Hongsheng,ZHANG Liang,et al.Survey of lightweight neural network[J].Journal of Software,2020,31(9):2627-2653.
[9] 施巍松,孙辉,曹杰,等.边缘计算:万物互联时代新型计算模型[J].计算机研究与发展,2017,54(5):907-924.
SHI Weisong,SUN Hui,CAO Jie,et al.Edge computing-an emerging computing model for the Internet of everything era[J].Journal of Computer Research and Development,2017,54(5):907-924.
[10] 姜德义,魏立科,王翀,等.智慧矿山边缘云协同计算技术架构与基础保障关键技术探讨[J].煤炭学报,2020,45(1):484-492.
JIANG Deyi,WEI Like,WANG Chong,et al.Discussion on the technology architecture and key basic support technology for intelligent mine edge-cloud collaborative computing[J].Journal of China Coal Society,2020,45(1):484-492.
[11] 纪荣嵘,林绍辉,晁飞,等.深度神经网络压缩与加速综述[J].计算机研究与发展,2018,55(9):1871-1888.
JI Rongrong,LIN Shaohui,CHAO Fei,et al.Deep neural network compression and acceleration:a review[J].Journal of Computer Research and Development,2018,55(9):1871-1888.
[12] 刘洋,冯全,王书志.基于轻量级CNN的植物病害识别方法及移动端应用[J].农业工程学报,2019,35(17):194-204.
LIU Yang,FENG Quan,WANG Shuzhi.Plant disease identification method based on lightweight CNN and mobile application[J].Transactions of the Chinese Society of Agricultural Engineering,2019,35(17):194-204.
[13] NAMALA K K,KRISHNA K P A V,MATH A,et al.Smart irrigation with embedded system[C]//IEEE Bombay Section Symposium,Baramati,2016:1-5.
[14] 崔家华,张云洲,王争,等.面向嵌入式平台的轻量级目标检测网络[J].光学学报,2019,39(4):307-313.
CUI Jiahua,ZHANG Yunzhou,WANG Zheng,et al.Light-weight object detection networks for embedded platform[J].Acta Optica Sinica,2019,39(4):307-313.
[15] SANDLER M,HOWARD A,ZHU Menglong,et al.MobileNetV2:inverted residuals and linear bottlenecks[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition,Salt Lake City,2018:4510-4520.
[16] MAO Qichao,SUN Hongmei,ZUO Lingqun,et al.Finding every car:a traffic surveillance multi-scale vehicle object detection method[J].Applied Intelligence,2020,50:3125-3136.
[17] WEN Long,LI Xinyu,GAO Liang.A transfer convolutional neural network for fault diagnosis based on ResNet-50[J].Neural Computing and Applications,2019,32:6111-6124.