张亚婉,莫浩明,朱颖,唐艳凤,招奕钧
(广东工业大学华立学院机电工程学院,广东广州 511320)
火灾发生时,救援人员到达现场后,若不了解内部情况贸然进入火灾现场,不仅不能完成救援任务,还容易出现救援人员伤亡,造成严重的人员和经济上的损失[1]。机器人技术自20 世纪60 年代问世以来,工业机器人的功能比较完善,已经成为各大中型工厂的必需品[2]。当今社会,机器人用途广泛、具有比人力更高的机械工作效率,在很多工业以外的行业也可以经常看到机器人作业。其中,消防机器人作为特种消防设备,可以替代消防人员进入火灾现场承担侦察、灭火救援等工作,尤其是当危险品仓库或隧道等危险性大的地方发生火灾时,消防机器人可以在消防人员不容易接近的地方先行进入火场内侦察,可避免救援行动中造成人员伤亡和经济损失[3]。
目前消防机器人价格高昂、自身应用机制不完善等原因,国内只有经济发达的城市和地区配备了消防机器人[4-5]。但在灭火救援实战中消防机器人却很少出场,消防机器人参与成功灭火的救援案例更是少之又少,更多时候消防机器人只出现在消防演习活动和消防宣传活动中,不能真正地辅助消防人员进行灭火救援行动[6-7]。针对以上问题,为使消防人员迅速获得火场内部环境信息,设计了一款可以实现火场侦察的消防机器人辅助探测系统,可以在救援人员抵达火场时率先进入火场采集内部环境信息,提高救援灭火行动的效率、减少因火灾带来的人员损伤和经济损失,此系统成本低,使用方便,有望在全国范围内的消防系统加以推广[8]。
该文设计的消防机器人辅助探测系统包含OpenCV 的火焰识别模块、TensorFlow 平台的人体姿态识别模块、Hector 算法的地图生成模块、传感器模组的红外识别和温度探测模块。探测系统总体框图如图1 所示。
图1 辅助探测系统总体框图
火灾发生时,在火焰燃烧过程中,往往伴随着光亮度的显著变化、光的波长变化、颜色变化等物理现象,通过对视频信息采集图像中火焰的颜色、形状、位置的分析,以判断起火源头[9]。基于视频识别技术的火灾监控系统,根据视频信息中每一帧的图像之间火焰的不同和火焰的位置判断是否有发展为大火的可能[10]。其判断依据正是火焰的光亮变化和颜色变化,最后根据图像处理后算法通过聚类推算出是否有火灾的存在[11]。火灾的具体物理特征包括以下几种:
火焰形状的边缘特征,火灾现场的火焰边缘与其他照明设备发出的光照边缘不同,火焰边缘更趋向于不规则的形状且在燃烧过程中不断变化,但也存在一定的变换规则。根据算法设计,使计算机通过输入的特征量,判断输入的视频图像的火焰边缘,识别火焰。
火焰的面积区域特征,火灾现场的火焰,大部分都是小火苗蔓延成大火的情况,此时火焰已经形成连续的图像且具有不断扩展的趋势。将图像灰度化处理后可以观察,连续火焰处的亮点数量较为集中,可以把此区域判断为起火区域。但识别过程中如有其他强光物体容易误认为是火焰,若只通过火焰面积识别火焰则精确度低,故需要结合其他物理特征才可进行有效识别。
火焰颜色的分层变化特征,燃烧过程中因为火焰温度不同会形成分层现象。观察空气中刚点燃的火柴,根据可燃物与助燃物发生氧化反应的程度不同,火焰可分为焰心、内焰、外焰3 层。在火焰的中心(焰心),即起火点处发生氧化反应释放的温度最高,在灰度图中最明亮,也是图片在经过灰度化处理后可以清晰识别的部分。通过图片不同程度的灰度处理,可以很好地识别出区域中的焰心、内焰、外焰[12]。
火焰在燃烧过程中有一些物理特性是随时变化的,如位置、闪烁等。这类物理特性在静态图片上很难观察,只有把视频分解为多个帧,并逐帧分解图像进行对比才可以直接观察动态变化的数据。OpenCV 算法库中提供了视频分解及对比算法,如帧间差分法和光流法。但光流法在光源多、噪声多的环境中会影响计算效果,抗干扰能力差,计算相对复杂而且时间开销大,所以不太适用识别火焰。但借助帧间差分法可以进行特征识别,能够直接观察的火焰动态特征如下[13]。
火焰频率闪烁特征,火灾现场火焰会以一定的频率闪烁,表现为火焰的明亮变化。对视频逐帧分解后,灰度化处理每一帧图像,对比灰度直方图可以明显观察到灰度随时间呈现一定规律的变化。
火焰位置变换特征,火焰会转移和蔓延,这与火焰的面积区域特征类似但又有所不同,当一个区域的可燃物燃烧消耗殆尽,火焰便会自然熄灭,但在熄灭前火焰会随着可燃物蔓延至其他区域,形成蔓延火灾。同时气流、氧气含量等需要通过传感器测量具体数值,环境因素也会影响火焰位置的转移。故火焰的位置移动具有连续性和非跳跃性[14]。
使用CCD 相机对火焰图像进行采集,在Visual Studio2017 平台运行OpenCV3.0 框架和CUDA10 运算。使用摄像头对视频图像采集并以帧为单位进行分解,流程如图2 所示。
图2 图像采集操作流程图
图像进行识别处理之前,进行预处理操作,可以有效减少图像在传输过程和存储过程中遭受破坏和噪声污染引起的失真,使得图像处理结果满足要求。
背景差分法与帧间差分法均为将当前帧图像与背景图像进行运算,但背景差分法需要更多的内存,用于存储和更新背景,在内存消耗上远大于帧间差分法;当背景需要更新时,其计算的效率更低;当环境中出现突然变化的图像,如照明设备工作等情况时容易发生误判。考虑到该系统搭载在火场中时刻移动的消防机器人中,很难满足背景差分法实时更新的内存需求,且背景差分法在没有预设背景图时其工作效率小于帧间差分法,故选择帧间差分法作为本系统从视频序列中提取动态目标信息的主要方法。对每一帧的图像差进行计算,利用设定的阈值对其进行二值化处理,判断该帧是否包含运动物体。式(1)、(2)为帧间差分法的算法描述[15]。
式中,i,j代表像素位置坐标,t代表时间,DF(i,j,t)代表相邻两帧的图像差,I(i,j,t)代表当前帧图像,I(i,j,t-1)代表上一帧图像,M(i,j,t)代表检测是否为运动目标,是则为1,Th代表设定的阈值。
对输入的视频序列,通过帧间差分法识别出需要特殊处理的运动物体后生成相应的差影图,送到系统的火焰特征提取环节。对该部分图像提取判断阈值后,对图像进行灰度化和二值化处理,并用图像处理算法对图像进行去噪、增强后送到系统处理环节,最后根据阈值提取图像中包含的火焰图像,以识别火焰边缘信息。
系统对输入视频序列进行火焰识别,其工作流程图如图3 所示。
图3 系统识别火焰工作流程图
根据帧间差分法获取包含动态对象的差影图的思想,提取输入视频的相邻两帧,获取差影图,根据选取色彩变化的阈值,筛选出包含可能有火焰图像信息的差影图。对这些差影图进行灰度化处理,然后对生成的灰度图像进行二值化处理得到二值黑白图,把需要识别的物体从整个图像中分离出来。对于需要识别的已经分离出来的物体图像,进行中值滤波处理后提取物体的边缘。
将处理后的二值化图像还原为彩色图像,根据RGB 颜色模型分离RGB 三原色通道,计算对应的HSI 模型判断是否超过设定的阈值,若超过阈值则可判定该区域为火焰区域,若没超过阈值,则判定该区域为需要识别的物体,但不属于火焰区域,提取火焰区域的图像信息。
对识别出的火焰区域进行形象学上的“膨胀”处理,连接相邻像素,扩大火焰的面积,扩大后的面积有利于识别物体的最小生成矩形。
从识别出的物体轮廓中取出其中火焰区域的轮廓信息,识别火焰的边缘信息,并以此为依据绘制最小生成矩形和最小生成圆,并把生成图像的位置等信息传入展示窗口,与实时反馈的视频信息一起展示视频中存在火焰的区域位置。
从图4 展示的识别效果中不难发现,算法可以从视频中识别出火焰的具体位置,由于该次利用手持打火机的方式进行展示,且火焰燃烧时改变了周围环境的亮度,同时算法为定位视频中火焰的位置在绘制最小生成框前对区域进行了“膨胀”处理,所以算法把支持打火机的手和打火机共色的外壳也近似地认为火焰区域,故存在一定的误差。但从图5展示的识别效果中可以验证,算法在识别火焰的过程中没有把背景中的红色物体与持火柴的手也认为是火焰区域。综上所述,可以认为该算法基本实现了视频中识别火焰的需求[16]。
图4 火焰识别效果展示图1
图5 火焰识别效果展示图2
在白天室内环境、昏暗环境、强烈的白天户外环境中分别识别火焰,并识别同一视频环境中同时出现的多个火焰实验效果图。各种环境下识别火焰效果图如图6 所示。
图6 各种环境下火焰识别效果
图6(b)中皮肤出现的过曝现象,可以观察到在户外强烈的阳光直接照射在皮肤上时,皮肤和微小的火焰被识别为火焰的一部分。因此,在强烈的光照环境中通过RGB 和HSI 模型识别火焰的算法存在一定的误差,可结合帧率、频闪等其他火焰特征的识别,提高识别的准确性。
图6(c)可以观察到视频图像中一个火源,计算机成功识别了光照条件昏暗的单个火焰,算法识别需要时间优化缩小最小生成框,故目前展示的效果中最小生成框偏大,实现了预期的识别效果。
图6(d)可以观察到视频图像中出现了两个火源,计算机在识别火源生成最小生成图时把这两个火源的生成图连成了一片,实现了识别多个火焰的预期。验证了系统的可行性,证明了通过RGB 颜色模型和HIS 颜色模型识别火焰图像特征的方式识别火焰是可行的[17]。
该文提出了一种采用计算机图像识别技术识别输入视频中火焰存在的方法。根据火焰图像的面积特征、形状特征、颜色特征等物理特征的变化来识别火焰。通过分析火焰的静态特征与动态特征,提出了一套基于OpenCV 分析视频序列识别火灾的方法,根据火焰面积与火焰颜色变化的灰度变化特征,提出了在输入视频序列中有效识别火焰的算法,实验结果表明,该识别方法可在不同的环境中有效识别火焰。最后对识别视频中火灾信息的系统进行了编码实现,并利用CUDA 运算平台提高了运算效率和计算的速度,验证了该识别方法切实可行。该方法还可以应用于家庭摄像头,监视家庭环境火灾情况,该方法对环境的适应性强,可以借助任意的摄像头完成对某一区域的火灾监控。