李晓斌,李毓勤,周当,吕先令
广州市云景信息科技有限公司,广东广州,510663
近年来,中国航运以势如破竹的态势闯进世界航运大国之列。然而,内河和沿海船舶的排气污染问题也凸显出来,在一些航运发达的区域,船舶排气对该区域的空气质量造成了一定的影响。船舶在各种运行工况下会排出NOx、SO2和颗粒物等污染物。据统计,2018年我国船舶排放NOx、SO2、颗粒物分别为151.1万吨、58.8万吨、10.9万吨,分别占非道路移动源排放总量的27%、25%、12%[1]。目前国家对机动车排气污染的管控日益加强,机动车排气污染大量减排,而船舶排气污染还未施加严格监管,污染问题日益凸显,占比也持续上升。因此,为了减少船舶排气污染,改善区域空气质量,非常有必要利用科技手段对船舶排气污染开展高效、严格的监管。
针对机动船保有量迅速增加、船舶排气污染日益严重、管控压力不断加大的现状,基于人工智能AI的船舶排气污染自动监测技术和产品显然能够成为应对船舶排气污染和环境污染处理突发事件的有力辅助工具[2]。在这样的背景下,为有效解决船舶排放的监管难题,研发船舶排气污染自动识别系统,对水域内的黑烟运输船只进行识别和抓拍,并及时发出预警,建立和完善船舶排气污染监管体系,推动整个航运业船舶尾气治理工作与环境保护事业的前进。
船舶排气污染自动识别系统主要是利用架设在河流/港口岸边或桥梁上的高清摄像机不间断巡视目标水域,对采集的视频利用人工智能算法进行识别,及时发现冒黑烟的高污染船只,并进行记录、预警等后续处理的系统。
船舶排气污染自动识别系统可分为目标区域巡航、船体自动跟踪、船舶黑烟识别、船体编号识别与提取等四个部分。目标区域巡航用来控制摄像机对指定的区域进行反复巡航扫描,以发现潜在的目标船只;船体自动跟踪则是在发现目标并识别出目标为船只后,自动跟踪锁定移动中的船只目标;船舶冒黑烟识别则对前背景过滤和前景提取,对冒黑烟细节进行提升,提取黑烟的运动、纹理和空间特征,并对输出特征采用SVM加权融合后,最后得到推理结果。系统组成见图1。
图1 船舶排气污染自动识别系统组成
在对黑烟船检测这个场景下,需要对船进行全天候的跟踪和识别,根据现场人员对河流船只的统计,从早上9点到晚上7点,大概有250艘船经过,平均2.5分钟就有一艘船经过,如果是人工来进行查看,会对观察人员造成极大的负担。对此,传统的区域检测巡航使用的是海康SDK自带的巡航程序,通过设置视野坐标(P:水平旋转角度、T:垂直旋转角度、Z:放大缩小倍数),再设置视野坐标停留时间间隔,对每一个视野坐标进行遍历。但这种方式会产生很多问题,比如巡航过程无法中断。如果球机断电,会有视野坐标信息丢失的风险,无法高度定制化。
为了解决这些问题,通过海康SDK获取摄像头的视野坐标,将这些视野坐标存入数据库,防止球机断电,视野坐标丢失。而且存入数据库之后,可以根据业务来进行多样化巡航。比如对船的检测巡航,人工设置视野坐标,来对船舶航行区域进行覆盖。设置不同巡航视野见图2。
图2 不同巡航视野
每一个视野坐标停留6s,如果停留过程中检测到船,则开始对船进行跟踪,如果没有检测到船,则跳转到下一个视野坐标,当视野坐标轮询一遍之后,继续从头开始巡航,达到自动多样化巡航的目的。
船体自动跟踪分为两部分:船体识别、船体位置控制算法。
使用CNN卷积神经网络,通过对大量不同的船体数据进行训练与识别,找到船体。
在对黑烟船进行检烟时,需要对烟的冒出点留出足够的空间,船冒烟位置一般在船的上方,才能比较明显地观察到烟。传统的做法是用人工操作海康摄像头,通过海康web后台来对海康摄像头进行位置操作,会极大地消耗人力。针对此,提出设定船体的目标范围,然后通过海康SDK调整摄像头位置,使船的中心点始终保持在目标范围中,给冒烟的位置留出更多的空间,留出视频画面50%的高度来提高烟的检出率。
船体黑烟识别使用了背景过滤和前景提取、超分辨率提升黑烟细节、黑烟运动特征提取、黑烟纹理特征提取、黑烟空间特征提取、对特征进行加权融合、特征融合推理结果等七个部分。
为了找出视频中移动的区域,把移动的区域设为白色,其他没有移动的区域设为黑色背景。由于混合高斯背景建模算法在计算过程中会消耗大量CPU资源,而且需要比较久的时间才能提取到前景。对此我们采用基于时空混合高斯背景建模的改进型时空动态高斯背景建模DSTGMM。
Stauffer[3]等人提出的混合高斯背景建模拥有K个高斯成分组成的混合高斯模型表示像素的时间域上的概率分布模型,K一般取3~5,其值越大,处理波动的能力也就越强。每个高斯成分的权重为ωk。设θk=μk,ρk是第k个高斯模型的参数集。第k个高斯状态对像素X构成的影响概率为P(k│X,Φ):
X的概率分布是各混合高斯模型之和:
这里,P(k)=ωk,表示取k状态的先验概率。第k个高斯成分在参数集θk下的概率密度为:
这里μk是均值,∑k是第k个高斯模型的协方差矩阵[4]。
模型的参数需要更新,各参数按以下方程进行更新:
其中,α表示学习速率,一般取0.001~0.01,,表示参数更新速率。如果第i个高斯成分与xj匹配,则为1,否则为0;如果xj与像素j的所有高斯成分都不匹配,则用新的高斯成分取代该像素混合高斯模型中排在最后的高斯成分。新的高斯成分初始值为均值xj,标准差及权重为σinit和ωinit[5]。
参数完成更新各项后,对各高斯成分进行排序,建立阈值T,将满足式(8)的前S个模型作为背景模型,其余的高斯成分则定义为前景目标:
阈值T表征背景高斯成分在像素点的各概率分布中所占的最小比例。
在实际船舶背景的提取中,第一帧图像可能存在运动目标,如果模型没有及时更新,这些运动目标就会被当成背景,就会产生“鬼影”现象,会对运动目标的连续检测效果产生不利影响。针对这种不利影响,可以设定帧数阈值T0,对前T0帧和后续帧学习速率采用不同的更新方法:
模型初步建立时,设置较快的更新速度来加速消除影响,可以采用较大的学习速率;一段时间运行之后,模型稳定时,学习速率可以维持在固定点较小值[6]。检测结果见图3。
图3 检测结果
当放大倍数最大后,视频会呈现不同程度的严重噪点、模糊。会对黑烟识别产生影响,通过超分辨率变异算法,用于解决视频模糊、严重噪点,以降低误检率。
为了观察运动物体的运动轨迹,采用稠密光流来提取运动特征。
为了提取烟雾的纹理,采用LBP(local binary pattern)纹理分类特征算法来进行提取[7]。
为了让神经网络对每个时间点的特征进行分类,并且能够使用前一个特征推理下一个事件,使用LSTM神经网络来进行长时间记忆[8]。
将提取的光流特征、纹理特征、空间特征输入到SVM向量机中进行识别推理[9]。整体的推理结果见图4。
图4 推理结果
目标检测发展很快,但对于小目标的检测还是有一定的瓶颈,特别是大分辨率图像小目标检测[10]。比如7920*2160、甚至16000*16000的图像。主要原因是:①小目标尺寸。原始图像中目标的宽或高小于101像素,网络很难学习到目标的特征信息。②高分辨率。在很高分辨率的图像中,长宽比的分辨率比7680*2160更大,如果采用直接输入原图的方式,很多小目标都无法检出。③显卡爆炸。图像分辨率很大,如果简单地进行下采用,下采用的倍数太大,容易丢失数据信息。但是倍数太小,网络前向传播需要在内存中保存大量的特征图,极大耗尽GPU资源,很容易存在爆显存,无法正常训练及推理。
基于以上存在的问题,我们提出以下方法:①我们首先对大分辨率的图片先进行分割,变成一张张小图,再进行检测;②同时为了避免两张小图之间,一些目标正好被分割截断,所以两个小图之间设置overlap重叠区域;③比如分割的小图是960*960像素大小,则overlap可以设置为960*20%=192像素;④每个小图检测完成后,再将所有的框放到大图上,对大图整体做一次nms操作,将重叠区域的很多重复框去除。
通过以上的一系列方法,同时结合其他排除环境干扰的方法(如可在水域容易出现的强光及逆光、轻雾等环境干扰),目前已经研发出相关产品,并在广州珠江口、肇庆西江等交通繁忙的水域进行了测试,冒黑烟船的识别准确率达到了90%以上,最远的识别距离达到了5公里以上。未来可开展相关的改进,增加NOX和SO2传感器,可以测量出污染物的浓度,推演船只燃油的硫含量,同时结合风向、摄像机视角位置、全球位置定位装置等,追踪污染船只的精准方位。通过船舶排气污染自动识别系统的研发,大大提升船舶排气污染的监管效率,其具有推广应用价值。