经验交流
刮板输送机工作状态的好坏决定着工作面的生产效率。刮板输送机在全封闭式环境中进行煤料的加工且工作时间长,极易导致刮板出现故障,轻则影响刮板输送机的正常工作,降低工作效率,重则造成重大财产损失[1-2]。因此,对刮板输送机运行状态进行监测具有重要意义。
传统的刮板输送机大多采用PLC控制器或压力传感器来监测其运行状态。文献[3]基于光纤光栅曲率传感原理设计了用于监测刮板输送机直线度的光纤光栅曲率传感器,通过可视化系统输出检测结果,但该方法需要拟合重建三维曲线的详细信息,获取信息难度大,导致检测结果与实际情况存在一定的偏差。文献[4]提出以PLC为控制器,采用电流反馈闭环控制算法来保障刮板输送机正常匀速运行,从而减少了刮板输送机事故的发生,但当刮板输送机长时间工作时,该方法容易导致双电动机运行不同步现象,造成刮板输送机不能正常运行,降低了工作效率。
近几年图像识别技术得到了快速发展,相比传统的监测方法具有智能化、直观化、自动化的优点。文献[5]提出了一种数字孪生的卡尔曼滤波刮板输送机位置状态估计方法,利用卡尔曼滤波算法监测刮板输送机状况,监测精度较高,但该方法计算量大,严重依赖计算机硬件性能,实际应用效果不佳。文献[6]应用灰度识别和特征搜索算法测量刮板输送机的形态,并将结果运行在视频服务器中,达到了监测的目的,但这种图像识别方法受光照不足、煤尘多等因素影响,存在检测结果不理想且视频服务器成本高等问题。Jetson Nano是一个面向边缘计算的嵌入式产品,含有GPU(Graphics Processing Unit,图像处理单元)模块,可以专门用来处理图像,具有低成本、低功耗的优点,因此,设计出一种面向边缘计算的图像识别方法来检测刮板全方位的运行状态,对促进安全生产和减少机器事故的发生具有重要的实际意义[7]。将图像算法部署到Jetson Nano时,主要利用CUDA(Compute Unified Device Architecture,统一计算设备架构)[8]将算法并行化来达到实时性要求。文献[9-10]提出了对图像特征提取进行CUDA加速实现的方法。文献[11]基于并行协同线性参数,利用CUDA来加速Hough变换,使Hough变换检测直线的运行时间大大减少,同时检测精度却保持不变[12]。文献[13-14]提出了基于GPU的Hough变换并行化算法,提高了Hough变换的处理速度和直线的检测精度。但Hough变换计算量大,如果直接利用Hough变换检测刮板并将其部署在Jetson Nano上会导致执行效率低、实时性差,为此,将Hough变换算法并行化,结合Jetson Nano具有的内存与显存共享机制,提出了一种可并行化Hough变换的面向边缘计算的刮板检测方法,在刮板检测中,将Hough变换并行化及采用零拷贝传输数据,同时将刮板检测的整体流程设计成CPU和GPU协同工作的模式,即刮板图像预处理环节运行在CPU端,将可并行化的Hough变换运行在GPU端。在该模式下,可以充分利用Jetson Nano中的硬件资源,从而在Jetson Nano中实现刮板的实时检测,解决了Hough变换和刮板检测在边缘计算平台Jetson Nano上运行存在执行效率低、实时性差的问题。
本文采用Hough变换算法来检测刮板状态。首先检测出刮板的直线方程,获取直线方程的参数;然后运用极坐标转换计算出刮板与链条之间的角度θ;最后根据角度θ来判断刮板的状态。刮板状态如图1所示。
图1 刮板状态
Fig.1 Scraper state
由图1可知,正常运行时刮板两侧链条是相互平行的,因此,计算刮板角度值只需计算出刮板与链条之间的角度θ即可。为了提高Hough变换的检测精度和检测速度,在求θ时对刮板的角度进行约束。由于摄像头固定并实时采集刮板图像,正常状态下,刮板与链条之间近似垂直,经过多次测量得到刮板与链条之间的角度平均值为89.76°,而当卡槽松动时,刮板与链条之间的角度经过测量也不会小于85°。刮板发生倾斜时最多卡到链条的下一个卡槽中,此时的角度值最小为67.31°,为了便于计算,设θ的范围为[60°,90°]。刮板检测的整体流程如图2所示。获取直线参数和计算出刮板角度,并判断该刮板角度是否在正常的阈值范围,即[85°,90°],若小于设定的阈值则向工作人员报警,反之则正常运行。
图2 刮板检测流程
Fig.2 Scraper detection process
在刮板图像预处理环节需要将图像转换为灰度图像,使其变成一个通道,以加快处理速度。从某选煤厂采集的某帧刮板图像如图3所示。从图3可知,刮板与背景图像存在大量的噪声,需要进行高斯滤波操作来降噪处理,本文采用高斯卷积核为(11,11)和标准差为0的高斯滤波算法对图像进行降噪处理。刮板图像具有长而窄的特征,在处理环节很容易丢失重要的特征信息,因此,需要进行直方图均衡化和膨胀腐蚀操作来增强刮板图像的亮度,更显著地突出刮板的特征信息[15]。在进行Hough变换前,需要对处理的刮板图像进行二值化操作和Canny边缘检测[16]。
图3 某帧刮板图像
Fig.3 Scraper image of a frame
Hough变换的基本思想来自于数学中点和线的对偶性,是在直角坐标系中建立一个图像空间到参数空间的一种函数映射。直线中相关的映射关系如图4所示,其中x,y表示点的坐标值,ρ表示该直线到坐标轴原点的距离,α为直线过坐标原点的垂线与坐标轴横轴正方向的夹角。根据点和线的对偶性可知,在图像中某一个像素点通过Hough变换后就会在参数空间得到一条正弦曲线,如果图像中的边缘像素点共线构成一条直线,那么映射到参数空间就构成了一条条相交的正弦曲线,相交点的坐标信息为图像中共线的位置信息。
ρ=xcos α+ysin α
(1)
图4 参数空间转换
Fig.4 Parameter space conversion
由Hough变换原理可知,Hough变换的计算量较大,若直接利用Hough变换检测刮板,并将其部署在Jetson Nano上会导致执行效率低、实时性差,因此,本节在刮板检测的基础上进行了2个方面的改进:一方面利用CUDA将Hough变换算法并行化,减少Hough变换处理的时间;另一方面利用Jetson Nano本身固有的特性将可并行化的Hough变换运行在GPU上,将其他刮板图像处理过程运行在CPU上,CPU与GPU之间的数据传输则采用零拷贝技术实现。
Hough变换本质上是一个累计投票及寻找最值的过程,采用的策略是将刮板图像的各像素点的Hough映射过程及寻找累加器矩阵最值的过程采用可并行的处理方式,实现步骤如下:
第1步:通过Jetson Nano中的CPU读取刮板预处理后的图像,得到图像的宽度W、高度H,分别设置θ和ρ的最大值为并在Device端(GPU端)申请内存大小为d[θmax][ρmax],且将其初始化为0。利用CUDA创建线程,使得每个线程对应处理刮板图像的每一个像素点,构成一对一处理模式,判断当前线程对应的像素点(x,y)是否是图像的边缘像素点,若不是,则直接返回,若是,则对该点进行Hough变换。θ的取值范围为[60°,90°],对θ进行递增,即θ∈{60°,61°,…,90°},通过式(1)计算ρ值。最后将得到的值(θ,ρ)代入下式中进行计算。
d[θ][ρ]=d[θ][ρ]+1
(2)
第2步:采用计算像素点所在的四邻域内的局部最大值的方法来寻找累加器中的最值。首先找出最值以及累加器中索引的位置,然后进行极坐标反变换计算出刮板角度并输出结果。Hough变换在CUDA中的并行实现流程如图5所示,其中分为2个部分,即计算复杂度高的Hough变换运行在GPU端(Device),而利用Hough变换检测刮板的结果则在CPU端(Host)显示。
图5 Hough变换的CUDA并行实现
Fig.5 CUDA parallel implementation of Hough transform
边缘计算平台Jetson Nano中包含有ARM架构的CPU和Maxwall架构的GPU,两者共用一块4 GB的物理内存。因此,可通过CUDA提供的零拷贝技术来传输数据,降低传输延迟,从而减少数据在CPU和GPU之间的传输时间,使刮板检测整体的运行时间减少。零拷贝技术是一种内存映射,在GPU端可以直接使用CPU端的内存地址进行数据访问,CPU与GPU的内存关系如图6所示。
(a) 普通的数据拷贝
(b) 数据零拷贝
图6 CPU与GPU的内存关系
Fig.6 Memory relationship between CPU and GPU
将可并行化Hough变换的面向边缘计算的刮板检测方法设计成CPU+GPU的协同分工模式,即将可并行化的Hough变换算法运行在GPU端,而刮板检测的其他图像处理部分运行在CPU上,相关实现流程如图7所示。
图7 面向边缘计算的刮板检测实现流程
Fig.7 Edge computing-oriented scraper detection
implementation process
为验证检测方法的可靠性,本文采用NVIDIA的边缘计算平台Jetson Nano为实验平台,硬件为四核Cortex-A57 CPU及Maxwell架构的GPU,含有128个CUDA核,4 GB内存,操作系统为Ubuntu18.04,CUDA版本为10.0,OpenCV 3.4.5。实验数据来自山东泰安翟镇选煤厂的刮板视频数据,采用5种不同分辨率下的500帧刮板视频,分别用Hough变换和可并行化Hough变换算法来进行刮板检测实验,实验中除了分辨率不同,其他参数均保持一致。其中Hough变换处理的时间见表1,表中TC和TG分别表示500帧刮板视频在CPU端和GPU端用Hough变换算法的平均检测时间;TCi,TGi为第i帧检测刮板图像的用时;S为刮板视频的总帧数;sp表示加速比。
(3)
(4)
sp=TC/TG
(5)
表1 Hough变换在Jetson Nano中的运行时间
Table 1 Running time of Hough transform in Jetson Nano
分辨率TC/msTG/mssp640×36032.644.647.03960×54062.926.1010.311 280×72089.148.4110.601 920×1 080179.1414.6412.242 560×1 440257.9521.2212.16
从表1可看出,在刮板图像分辨率较小时,采用可并行化的Hough变换算法相比原Hough变换算法检测速度只提升了7倍,随着刮板图像分辨率的不断增大,Hough变换算法运行在GPU端时,采用可并行化处理,其速度相较于运行在CPU端时提升了12倍。这说明可并行化的Hough变换算法明显优于原Hough变换算法,并且可以明显提高在Jetson Nano上刮板检测的速度,为刮板检测的整体过程减少了大量时间。
刮板角度的准确率实验结果见表2。角度准确率用acc表示。漏检率表示未检测出刮板的次数占刮板视频总帧数的比例,漏检率越高,检测效果越不理想,漏检率用Re表示。
(6)
式中:Ai为第i帧刮板图像计算出来的预测角度;S′为已经检测到的刮板图像帧的总数,取值为100;θ=89.76°。
(7)
式中:SN为没有检测到刮板的视频帧数;ST为检测到刮板的视频帧数。
表2 刮板角度的准确率实验结果
Table 2 Experimental results of accuracy rate of scraper angle
图像分辨率帧率/(帧·s-1)CPUCPU+GPUCPU+GPU(零拷贝)角度准确率/%漏检率/%640×36019.333.934.393.628.9960×5409.216.417.296.313.41 280×7206.211.212.196.712.71 920×1 0803.05.36.397.412.12 560×1 4401.93.24.097.012.0
从表2可看出,分辨率为640×360时,采用CPU+GPU(零拷贝)方法处理刮板图像,帧率可达34.3帧/s,而直接利用Hough变换(CPU)检测刮板的帧率为19.3帧/s,但是分辨率较低,使得角度检测准确率低,而且漏检率较高,这样导致很多帧刮板图像检测不出刮板,不能满足应用需求。随着刮板图像分辨率的增大,采用可并行Hough变换的面向边缘计算的刮板检测方法(CPU+GPU(零拷贝))的优势得到明显体现,在960×540的分辨率下,采用该方法检测刮板图像,帧率可达17.2帧/s,检测角度准确率达96.3%,满足实际应用需求。这正说明面向边缘计算的刮板检测方法充分利用了边缘计算平台Jetson Nano的GPU资源,发挥了CPU和GPU协调工作的优点,使得刮板检测的整体性能得到明显提升。分辨率为960×540的刮板图像的实验结果如图8—图10所示。从图中可看出,刮板输送机运行时,刮板某帧图像是模糊的,但由于前期的刮板图像预处理和Hough变换算法具有很好的鲁棒性,无论在CPU端运行还是在CPU和GPU协同分工模式下运行均可以准确地检测出刮板,并计算出刮板与链条之间的夹角。
图8 CPU端运行
Fig.8 CPU side operation
在CPU和CPU+GPU、CPU+GPU(零拷贝)情况下的运行速度比较情况如图11所示。从图11可看出,可并行化Hough变换的面向边缘计算的刮板检测方法(CPU+GPU(零拷贝))相比直接使用Hough变换算法(CPU)检测刮板的速度提升了1.5倍以上,改进效果明显。结合表2,当分辨率为1 920×1 080甚至更大时,Jetson Nano中图像检测帧率均低于10帧/s,无法满足实时性要求。这是因为在Jetson Nano中CUDA核心只有128个,GPU的性能已经达到极限,无法再继续处理更大分辨率的刮板图像。
图9 CPU+GPU端运行
Fig.9 CPU+GPU side operation
图10 CPU+GPU端(零拷贝)运行
Fig.10 CPU+GPU side (zero copy) operation
图11 加速比比较
Fig.11 Comparison of acceleration ratio
针对Hough变换检测刮板及部署到低功耗、低成本的嵌入式Jetson Nano上存在执行效率低、实时性差等问题,基于Jetson Nano提出了一种可并行化Hough变换的面向边缘计算的刮板检测方法。在刮板检测中,将Hough变换并行化并采用零拷贝传输数据,同时将刮板检测的整体流程设计成CPU和GPU协同工作的模式,将刮板图像的预处理环节运行在CPU端,将可并行化的Hough变换运行在GPU端,通过这种模式来充分利用Jetson Nano的硬件资源。实验结果表明,在Jetson Nano中,对于分辨率为960×540的刮板图像,采用可并行化的Hough变换算法比原Hough变换算法检测速度提升了10倍,刮板图像检测的帧率可达17帧/s,检测刮板角度准确率达96.3%,满足实时性要求。
[1] 张谢华,赵小虎.煤矿智能视频监控中的运动目标检测研究[J].工矿自动化,2016,42(4):31-36.
ZHANG Xiehua, ZHAO Xiaohu. Research on moving target detection in coal mine intelligent video monitoring[J].Industry and Mine Automation, 2016,42(4):31-36.
[2] 李晶. 智能视频监控系统的研究与应用[D].上海:上海交通大学, 2014.
LI Jing. Research and application of intelligent video survillance system[D].Shanghai: Shanghai Jiaotong University, 2014.
[3] 尹超超. 工作面刮板输送机直线度智能监测及控制研究[D].徐州:中国矿业大学,2019.
YIN Chaochao.Study on intelligent monitoring and control of straightness of scraper conveyor in working face[D]. Xuzhou: China University of Mining and Technology,2019.
[4] 韩林睿,邓永红.基于PLC的刮板输送机控制算法的研究[J].煤矿机械,2021,42(3):190-192.
HAN Linrui, DENG Yonghong. Research on control algorithm of scraper conveyor based on PLC[J]. Coal Mine Machinery, 2021,42(3):190-192.
[5] 张帆,李闯,李昊.智能综采工作面刮板输送机直线度监测方法研究[J/OL].煤炭科学技术:1-10[2020-12-27].http://kns. cnki.net/kcms/detail/11.2402.TD.20201011.0832.002.html.
ZHANG Fan, LI Chuang, LI Hao. Research on straightness monitoring method of scraper conveyor in intelligent fully mechanized face[J/OL]. Coal Science and Technology:1-10[2020-12-27].http://kns.cnki.net/kcms/detail/11.2402.TD.20201011.0832.002.html.
[6] 刘鹏坤,王聪.基于机器视觉的长壁工作面直线度测量算法研究[J].矿业科学学报,2017,2(3):267-273.
LIU Pengkun, WANG Cong.Straightness measurement algorithm based on machine vision for coal longwall face[J].Journal of Mining Science and Technology,2017,2(3):267-273.
[7] 张谢华.煤矿智能视频监控系统关键技术的研究[D].徐州:中国矿业大学, 2013.
ZHANG Xiehua. Research on key techniques in coalmine intelligent video surveillance system[D].Xuzhou: China University of Mining and Technology, 2013.
[8] CHENG J, GROSSMAN M, MCKERCHER T. Professional CUDA C programming[M]. Hoboken: John Wiley & Sons, 2014.
[9] BAHRI H, SAYADI F, KHEMIRI R, et al. Image feature extraction algorithm based on CUDA architecture: case study GFD and GCFD[J]. IET Computers & Digital Techniques, 2017, 11(4):125-132.
[10] YUAN Y, YANG X, WU W, et al. A fast single-image super-resolution method implemented with CUDA[J]. Journal of Real-Time Image Processing, 2019,16(1):81-97.
[11] HAVEL J,DUBSK M,HEROUT A,et al. Real-time detection of lines using parallel coordinates and CUDA[J].Journal of Real-Time Image Processing,2014,9(1):205-216.
[12] RAHMDEL P, COMLEY R, SHI D, et al. A review of Hough transform and line segment detection approaches[C]//Proceedings of the 10th International Conference on Computer Vision Theory and Applications, Berlin,2015:411-418.
[13] 徐颖. 基于GPU的并行车道线检测算法研究与实现[D].重庆:重庆大学,2018.
XU Ying. Research and implementation of parallel lane detection algorithm based on GPU[D]. Chongqing:Chongqing University,2018.
[14] YAM-UICAB R, LOPEZ-MARTINEZ J L, TREJO-SNCHEZ J A, et al. A fast Hough transform algorithm for straight lines detection in an image using GPU parallel computing with CUDA-C[J]. The Journal of Supercomputing, 2017, 73(11): 4823-4842.
[15] 丁畅, 董丽丽, 许文海. “直方图”均衡化图像增强技术研究综述[J]. 计算机工程与应用, 2017, 53(23):12-17.
DING Chang,DONG Lili,XU Wenhai.Review of "histogram" equalization technique for image enhancement[J].Computer Engineering and Applications,2017,53(23):12-17.
[16] KALRA A, CHHOKAR R L. A hybrid approach using Sobel and Canny operator for digital image edge detect[C]//International Conference on Micro-Electronics and Telecommunication Engineering,2017:305-310.
ZHANG Zhiqiang, FENG Wei, ZHAO Xiaohu,et al.Edge computing-oriented scraper detection method for coal preparation plants[J].Industry and Mine Automation,2021,47(4):92-97.