沈竺霖
(大庆油田信息技术公司杏区分公司,黑龙江 大庆 163000)
当前工业背景下,智能视频监控系统进入了油田环境应用领域,这种利用智能视频分析技术来辅助实现监控的体系,重点依赖计算机视觉(Computer Vision,CV)技术和人工智能(Artificial Intelligence,AI)技术[1],能够自动识别出视频图像中的异常,从而大大提升监控工作的效率。
对于油田工业环境来说,智能监控系统的反应时间关系到油田生产的安全,也是保证国家资产不受侵害的要点所在。这决定了油田智能监控系统的技术应用重点是以智能图像识别作为最核心的技术,但同时相关流媒体传输技术和数据库访问技术也在同步引入。三个方面的技术成为支持油田智能监控系统运行的根本所在。
智能视频图像识别技术是对视频监控内容进行识别和分析的技术,决定着视频监控的精确性和反应速度等多方面行为特征。该项技术会对视频监控图像进行区分,确定出背景和前景两个部分。在油田工业环境中,背景多为相对静止的采油设备及无人值守的工作环境,前景则是除此以外出现在视频画面中的其他活动主体。分析过程需要重点将背景和前景进行分离识别,目前能够实现这一目的的常见技术方案有帧差法和背景差分法两种[2]。
帧差法主要考虑到当空间中的三维物体发生相对位移时,其投影在视频中的二维图像也会产生相应的变化,并且对于连续的视频流场景而言,每一帧二维图像都会呈现出连续特征。因此,可以利用这样的特征针对图像序列展开分析,基于时间差分图像对运动目标区域进行提取。将时间轴上不同位置的两幅灰度图进行差分计算,可获取灰度差分图像[3]。位于背景上的点会在这个过程中通过减法剔除,剩下的就是处于运动状态的前景,也就是需要进行自动识别的部分。帧差法通过对比相邻帧之间的相关性和灰度差来分析视频图像的运动特征,从而掌握物体运动造成的区域差异。实际计算过程中会设定一个固定的阈值T作为差分图中差分值的大小标记,如果超过这一阈值即展开相应的计算。具体来说,首先定义相邻两帧的图像像素值分别为Fk-1(x,y)和Fk(x,y),则两帧图像差值计算为:
对应于前文中的阈值,可以对式(1)进行二值化得到:
式(2)的意义在于,当某图像的像素差值超过阈值,即认定为前景,否则即为背景,这是对于前景和背景的判断。在获取到前景图像的基础上利用形态学滤波进行处理,即首先利用形态学的闭运算消除运动目标由于表面灰度变化而产生的间断,获取到完整的运动目标,而后进一步利用开运算对目标轮廓进行平滑,消除噪声,最终获取到的图像即为检测目标。此种方法相对而言比较简单,在响应时间方面表现良好,因此得到了广泛应用。但是在帧差法的计算过程中,阈值T是一个比较关键的因素,在不同的环境下需要确定不同的阈值,阈值过大会造成无法实现有效识别,而阈值过小又会造成系统识别过程的过敏。针对这一问题,目前大多考虑在帧差法的基础之上进行改进,即在确定阈值的时候选用更为复杂的算法而非选择一个常值。改进之后的算法大多也还是会继承帧差法简单快速的特征,保持不过于复杂的计算和良好的实时特征,因此对应用环境具有良好的适应性。但是当摄像机发生偏移时帧差法就会失效,因此这种方法无法对识别目标展开有效的跟踪[4]。
与帧差法相比,背景差分法的优势比较明显,其主要应用于固定摄像机的运动检测工作环境,并且同样具有算法简单、实时性强、复杂度低的特征。背景差分法选用一个固定的背景图像,将获取到的视频图像与之进行对比来判断是否存在变化。背景差分法会依据需要检测目的的不同而选用不同的标准进行变化区域的提取,从而实现前景目标的识别。
背景积分法引入时间参数t,如果将t时刻背景模型参考记为Fb(t),当前获取到的图像记为Fk(t),则背景差分图像可以表示为:
在背景差分法的计算中,同样需要设定一个阈值T,如果Dk(x,y,t)>T则判定其为前景点,否则列为背景点。在背景差分法中,首先需要建立背景模型,而后保持更新,才能进一步计算背景差分并展开后续的处理工作。在这些环节中,前两个方面主要是对背景模型进行初始化和修正,这也是背景差分法的核心所在,只有建立起尽可能符合具体情况的参照,才能区分出精确的前景进行识别[5]。
在背景差分法中,场景的确定需要符合具体情况。对于背景中相对静止的物体,需要确定一个变化阈值,其中光照、阴影、其他类似的周期性运动以及摄像机正常抖动形成的干扰等,都应当纳入到背景环境中。通常而言,可以通过为背景建模的方式来获取用于参照的背景图像,这其中最简便的方法当数对时域加权平均滤波。这种方法产生参考图像的速度快,对于计算和存储资源占用小,但是对于环境中的干扰因素抵御性也比较差,现在多考虑利用混合高斯模型对其进行改善。
背景差分法会不断对背景模型进行调整,因此被列为当前固定摄像头运动目标检测最好的方法之一,大多也以此种算法作为油田工业环境的监测支撑。
对于油田工业化环境而言,一个完整的智能视频监控系统从硬件上看,主要包括热成像摄像机、云台、网络视频服务器、流媒体服务器以及集中存储服务器等几个部分。除去必要的网络设备外,这些设备基本可以分为前端和服务器两类,其中服务器又可以分为分布式(专业)服务器和总服务器两类。实现智能视频监控系统的核心在于两个方面,一是设备的远程控制,二是自动控制体系。
设备控制主要包括油田监控体系中的摄像机和云台的远程控制。摄像机控制包括摄像机的变倍、调焦、亮度、对比度、锐化以及图像增强等,云台的控制则主要指云台的转动和自动巡航。以海康威视设备为例,sdk 函数NET_DVR_PTZControlWith Speed 即能够实现转动和自动巡航控制,其函数原型为BOOLNET_DVR_PTZControl WithSpeed(LONGIRealHandle,DWORDdwPTZCommand,DWORDdwStop,DWORDdwSpeed)。
在基本控制的基础之上进一步展开自动控制的实现,具体包括落实预置点的设置和自动轮询功能两个环节,这是构成智能视频监控系统的核心所在。
2.2.1 预置点设置
预置点的设置是实现自动轮询的前提。在油田工业环境中,监控点的摄像机大多会选择油井或者该点相关设备方向进行监控并且将其设置为预置点。监控人员在日常工作时能够远程控制云台或者摄像机移动以查看工业环境各方面情况,而在停止操作或者想要对油井设备进行查看时可以采用自动调整或快速切换。预置点的设置通过预置点结构体来实现,预制点结构体包括预置点的水平角度以及仰俯角度等细节,其具体定义代码为:
进行预置点设置时,将云台或者摄像机运行到确定的位置,然后按下设置按钮。以海康威视设备为例,其sdk 函数NET_DVR_PTZPreset_Other 用于实现预置点的设定,能够保存这一位置的云台参数并记录为对应的预置点。调用已经设置好的预置点时,系统会先对预置点的设置情况进行询问,得到确定结果之后再获取相关参数,并且执行自定义的预置点调用函数Preset_Excute。考虑到调用功能可能会在多个对话框使用,因此对其进行单独定义以保持其灵活性。具体来说,该函数首先确认监控节点是否处于预览状态,其次判断对应的预置点具体属于哪一个监控点的第几个预置点,最后调用NET_DVR_PTZPreset_Other 函数来实现预置点的回归。
2.2.2 自动轮询
自动轮询功能对于一个特定的监控点会设定多个预置点,即云台或者摄像机会有不同的角度来对不同方向的情况进行查看。因此在自动执行任务时,该监控点同样需要自行更改预置点来对不同方向的情况进行监控和确认。对于一个监控点设置有多个预置点的情况,可以由工作人员选择具体切换到哪个预置点进行查看,也可以交由自动化系统轮询执行,自动依次查看各个预置点的监控画面并且进行识别。
展开自动轮询之前,具体的路径即各个预置点访问的先后顺序可以由用户自行确定,而后系统会自动执行。系统在执行过程中对相应的画面进行监视和分析。在轮询的过程中,摄像机在不同预置点停留的时间同样可以由用户预先设定。轮询路径结构体的定义代码为:
在以上结构体中,bSet 用于标记轮询路径的可用性或者有效性,nStrat*以及nEnd*分别用于表示轮询工作的开始时间和结束时间,nTime 以及nSpeed 用于标记在每一个预置点停留的时间以及在不同的预置点进行切换时前端的移动速度。
正处于执行状态的自动轮询任务同样有对应的结构体,实现代码如下:
以上代码中各项参数主要对当前轮询任务的执行情况进行记录,如nPatrolRouteldx 用于标记轮询线路的身份,而nWaitingTime 则用于标记在当前状态下停留的时间,用于在某个条件得到满足时触发下一个动作。
轮询路径确定之后,OnTimer 函数会进行自动控制,系统每间隔4 s 对相关参数与目前的任务执行情况进行对比,并且确定相应的动作。该函数还用于计算对应预置点的停留时间,当满足预设的时间条件才会执行下一个动作,朝向下一个预置点运行。PatrolMotion 函数则用于支持工作人员改变自动轮询状态,是自动轮询过程中人工命令的接入接口。
在油田工业环境中,智能视频监控系统的价值不容忽视,关系到油田工业每一个细节的安全。唯有深入地了解其运作机理,才能切实对系统进行优化,保证油田环境安全水平稳步提升。