基于SIFT算法和改进的RANSAC算法对森林火灾的图像识别与试验研究

2022-11-24 06:46刘九庆项前王宇航
森林工程 2022年6期
关键词:尺度空间关键点阈值

刘九庆项前王宇航

(东北林业大学 机电工程学院,哈尔滨 150040)

0 引言

森林里杂草丛生,一旦发生火灾火情,其蔓延的速度十分快,并且在森林里交通不便,人员不齐,很难及时有效地扑灭火灾。因此,尽早地发现森林里发生的火灾,就显得尤为关键。

迄今为止,很多学者已经研究出大量的火灾识别算法[1],并取得了一定的成果。目前在森林火灾的图像匹配[2]研究领域当中,出现了很多种基于不同原理的图像匹配算法,比如基于灰度值匹配[3]、基于三维点云匹配[4]等,但是以上的方法大多数都会存在因角度、平移和光照等因素干扰[5],从而对最终的匹配结果产生影响。Harris算法是一种提取特征点的算法[6],该算法虽然也具有旋转不变性和尺度不变性的特点,但其不具有良好的稳定性,在森林这种较为复杂的地形中匹配的准确度不是很高。David Lowe 在1999年首先提出SIFT算法[7],并最终在2004年加以改善,该算法已经在图像识别领域中有了不小的贡献。SIFT算法具有尺度不变性抗干扰能力强、鲁棒性好等特点。RANSAC算法的核心就是采用迭代的方式从一组观测数据中去计算其他数据,最后筛选掉不正确的数据[8]。但经典的RANSAC算法由于需要不断地迭代,会耗费大量时间,对火灾的监控不能达到实时性。本文将SIFT算法与改进后的RANSAC算法相结合,首先将图片进行预处理然后用SIFT算法识别出特征点进行粗匹配,再用改进后的RANSAC算法对这些特征点进行筛选,得到准确无误的匹配点。通过实验数据表明,本文改进后的算法能有效地提高森林火灾图像识别的匹配精度和匹配时间。

1 SIFT算法原理

SIFT(Scale-invariant feature transform)全称为尺度不变性特征转换[9-10],是一种关于图像视觉的算法,目前已经被广泛应用到图像识别、图像拼接和图像检测等方面。其原理可简单描述为在图像的空间尺度上寻找特征点,并计算其特征点的方向。SIFT特征匹配具有很强的抗干扰能力,无论图片经过怎样的平移、光照或旋转等变化,他都能保持良好的稳定性和鲁棒性。尺度不变性[11]的概念是指同一个物体在不同尺度上的图片表示,其尺度空间理论的主要过程大致是利用高斯核函数对原图像先进行变化,获得不同尺度下的图片,然后在每个尺度下都提取其特征点。

SIFT算法具体可分为4个步骤。

(1)尺度空间极值点检测

SIFT算法通过检测所有尺度上的图像位置,然后找到其稳定的极值点。首先,SIFT算法在构建尺度空间的时候采用高斯微分函数,使其保留图像上的局部特征。所以需要构建高斯差分尺度空间,而图像的尺度空间公式为

式中:I(x,y)为待检测的二维图像;(x,y,σ)为图片像素的空间坐标位置;G(x,y,σ)为高斯函数;σ为尺度空间因子。

而高斯差分尺度空间是由不同尺度的差值得出

式中,k为相邻尺度空间的倍数。

(2)关键点的精准确定

之前检测到的极值点是属于图片上离散空间的极值点,通过不断去拟合三维二次函数来精准地描述出关键点所在的位置,同时一定程度上也能过滤掉对比度较低的关键点。将尺度空间进行泰勒二次项展开后得到公式(4),即拟合函数。

式中,x=(x,y,σ)T。

对其进行求导并使方程等于零,就可以得到关键点的偏移量

经过上述变换,再通过已确定的经验值(0.03~0.04),就可过滤掉对比度低的点,从而得到关键点。

(3)分配关键点的方向

为了让其描述符具有旋转不变性,需要同时使用图片上的局部特征给每一个关键点都分配一个基准方向,通常使用图像梯度的方法来求关键点局部特征的稳定方向。梯度的模和方向见公式(6)和公式(7)。

式中,L(x,y)表示特征点所在的尺度空间。

(4)生成特征点描述符

通过上述步骤,对于每一个关键点,都拥有3个最关键的信息:位置、尺度以及方向。然后需要用一组向量将这个关键点的关键信息描述出来,使其不随旋转、光照以及平移等变化而变化。而且这个特征点描述符,不仅包含着关键点,也同时包含着其周围对其有贡献的像素点。为了实现这种特性,需要以关键点为中心,并同时分成16个方块,在每个方块上分别计算其8个方向梯度,这样就形成了128维的特征向量,然后通过特征向量的归一化处理,提高特征点的识别度。

2 改进的RANSAC算法原理

2.1 RANSAC算法原理

RANSAC(random sample consensus)算法全称为随机抽样一致性算法[12],最早是由Fischler和Bolles 共同提出的[13]。简单来说,该算法就是从一组包含异常数据的数据集中,通过不断迭代的方式计算出最合适的数据模型,进而得到有效的数据,把无效的数据剔除掉。该算法假设已知的数据中包括正确匹配数据和错误匹配数据(噪声),把正确数据标作为内点,异常数据标作为外点。使用该算法时,首先需要找到一个最佳单应性矩阵H见公式(8),H的大小为3×3,并且使得满足最佳单应性矩阵的点的个数最多,因为该矩阵有8个未知量,所以至少需要8个线性方程去求解。每组点可以列出2个方程,所以至少需要包含4组匹配点对。

式中:(x,y)为目标点的位置;(x′,y′)为场景图像角点的位置;s为尺度参数。

传统的RANSAC算法在已知的数据集中去寻找4个样本点,并保证这4个样本点之间不共线,然后去计算出单应性矩阵。若此模型为最优解,则其对应的代价函数是最小。其代价函数为

总结RANSAC算法步骤。

(1)随机从已知数据集中抽取4个不共线的样本数据,计算出变换矩阵H,记为模型M。

(2)计算出所有的数据与模型M的投影误差,如果小于阈值,则加到内点集。

(3)而当内点集Q中元素的个数大于最优内点集Q-best时,则更新Q-best=Q,同时更新迭代的次数K。

(4)如果迭代次数大于K,则退出;否则迭代次数加1,并重复上述操作。

2.2 RANSAC 算法改进

由于RANSAC算法需要进行不断的迭代,样本点的个数如果很多,那么就会造成随机采样的次数变多,运行的时间特别缓慢,达不到实时性的标准,对于森林火灾防控不能起到良好的效果,所以对其进行改进。本文首先采用SIFT算法得到初始特征点,然后通过初始特征点进行领域投票与正确匹配点绝对斜率相似的方式筛选掉部分错误匹配点,得到最终的样本点集合,这样极大程度地减少了RANSAC算法的迭代次数[14]。

领域投票的方式主要是在SIFT算法得到特征点之后,在每个特征点的领域的局部主方向和距离上做累积,给其分别设定一个方向阈值和距离阈值[15],判断待匹配图像和参考图像相对应的匹配点之间的方向和距离是否在已经设定好的阈值之内,如果这一对匹配点都小于已设定好的阈值,则把其放进内点集,反之则放入到外点集。具体过程如下。

(1)分别计算待匹配图像和参考图像同一图像上任意一对初始匹配点的距离d和主方向夹角的差值Δθ。

式中:i、j为同一幅图像上任意一对初始匹配点;(xi,yi,θi) 和(xj,yj,θj)表示为i、j2个点的像素坐标和主方向。

(2)将得到的距离d和主方向夹角的差值Δθ按照行向量分别进行归一化处理,然后去计算其待匹配图像和参考图像的距离内积dot1和主方向夹角内积值dot2。

式中:(xT,yT,θT) 和(xt,yt,θt) 分别为待匹配图像和参考图像的一对匹配点的像素坐标和主方向;im1、im2为矩阵的像。

(3)通过大量的实验进行验证,最终得出当距离阈值td和方向阈值tθ分别设为0.4与0.5时,可以得到比较多的内点集合。

(4)最终通过已经设定好的阈值,去比较一对匹配点的距离内积值和主方向夹角内积值和阈值,若小于该阈值,则放入到内点集,反之则放入外点集。

在已知的内点集合中,应该知道一对绝对准确匹配点之间的相对斜率应该相同,所以再通过这层关系去进一步地剔除掉误匹配点,来计算RANSAC的最佳单应性矩阵。设(Xi,Xj)和(Yi,Yj)是待匹配图像和参考图像的一对正确匹配点,那么Xi和Yi的绝对斜率k(Xi,Yi) 一定相似于Xj和Yj的绝对斜率k(Xj,Yj)。通过上述的原理可以提出如下的评价函数

式中:r(i,j) 表示Xi、Yi与其自身图像上每个特征点的斜率的绝对差异;K(i,j) 表示Xi、Yi与其自身图像上每个特征点的平均斜率。

2.3 本文算法

使用传统的SIFT算法与RANSAC算法相结合[16]的方法去进行图像匹配,很容易造成匹配时间过长、匹配精度不高等现象,为此本文提出一种基于SIFT算法与改进后的RANSAC算法相结合的图片匹配算法。首先对匹配图像和参考图像进行预处理,然后提取特征点,通过SIFT算法进行粗匹配,然后通过正确匹配特征点的领域投票加正确匹配点绝对斜率相似的特点去剔除掉误匹配的点,最终通过RANSAC算法进行准确匹配。算法流程如图1所示。

图1 算法流程图Fig.1 Algorithm flow chart

3 实验结果与分析

为了验证本文改进后算法的有效性,做了一组点火实验,并用红外相机和可见光相机同时对火场进行拍摄,得到了2组视频文件,通过截取视频帧得到本文所需要的图片集,如图2所示。

实验设计:在地面划分出一个6 m×14 m的矩形区域,作为实验场地,矩形短边为东西方向,长边为南北方向。并在矩形场内搭建一个斜坡,模拟真实火场中的坡度变化。实验时,在火场内铺设一定厚度的可燃物进行实验,可以模拟火从平坡蔓延到斜坡的过程,坡度可以调节。其中可燃物选取樟子松树叶,樟子松树叶做可燃物火线蔓延较慢,有利于较小实验范围下数据采集和模型验证,且火势易于控制,利于保障实验安全。

图2 实验图像Fig.2 Experimental image

本文所用的参考图像和待匹配图像都是从红外图像中选取,并做出变化。本文实验中的图像变化以牛津大学机器人实验室给出的图像变化为依据。图3(a)为相机视角发生了25°变化,图3(b)为亮度和对比度发生了变化,图3(c)为图像做出了垂直平移变化。

通过SIFT算法、SIFT+RANSAC算法以及本文算法分别对这3组图像进行图像识别。实验中使用的是同一台电脑上的MATLAB2020b,并且实验过程中,无其他程序运行,得到的特征点匹配图如图4—图6所示。

通过得到的特征点匹配图可知,SIFT算法产生的错误匹配点比较多,匹配得不是很精确,达不到预期的效果;而在图5和图6的SIFT+RANSAC算法得出的特征点图中也可以明显地看出,SIFT+RANSAC算法会产生过多的匹配点,导致匹配的时间增加,虽然不会产生过多的错误匹配点,但是存在达不到实时性的问题;而在本文算法的匹配效果图中明显能感觉到,在不会产生错误匹配点的同时,也极大地减少了匹配特征点的个数。所以通过实验结果的图像可以明显地看出,本文改进的算法对红外图像下火的旋转、光照、亮度和平移都有较强的鲁棒性[17],能较为正确地匹配火场图像[18],并能较好地适应复杂环境带来的影响,对森林火灾[19]的防控有较好的提升[20]。

图3 红外图像变化效果Fig.3 Infrared image change effect

图4 视差25°变化下3种算法的匹配效果图Fig.4 Matching effect diagram of three algorithms under parallax 25 °

图5 亮度与对比度变化下3种算法的匹配效果图Fig.5 Matching effect diagram of three algorithms under the changes of brightness and contrast

图6 垂直平移变化下3种算法的匹配效果图Fig.6 Matching effect diagram of three algorithms under vertical translation change

3.1 匹配时间的对比

为了直观地验证本文算法所需要的匹配时间较短,对其3种算法都进行了时间的测定。为了验证实验的一般性,通过截取视频中的帧数,对其中多个图像都进行了预处理,并最后进行MATLAB实验匹配,将最后得出的时间绘制成散点图,如图7—图9所示。

对图7—图9图像[21]进行分析对比可以得出,图像[22]在视频帧数的后期匹配时间都有所增长,原因可能是因为火灾燃烧的中后期,会出现大量的烟雾,影响到了原来的识别,但总体来说本文算法无论在何种变化下都有不错的表现。从上述散点图对比可得出SIFT算法的匹配时间最慢,基本上达不到实时性的标准。而SIFT+RANSAC[23]算法时间相对于SIFT算法有明显的缩短。而改进后的算法的时间相对于SIFT+RANSAC算法也有了不小的提升,基本上可以达到实时性的要求。 因为森林火灾的状况跟其他火灾发生的类型不太一样,森林地形复杂,杂草丛生,一旦发生火灾就会不断地蔓延,所以要准确地防控森林火灾,实时性是必不可少的。

图7 视差25°变化下3种算法耗费时间Fig.7 Three algorithmsof time-consuming under the parallax changes by 25 °

图8 亮度与对比度变化下3种算法耗费时间Fig.8 Three algorithms of time-consuming under the change of brightness and contrast

图9 垂直平移变化下3种算法耗费时间Fig.9 Three algorithms of time-consuming under the change of vertical translation

3.2 匹配精度的确定

表1—表3是对比了3种图片变化情况下的3种算法的匹配点个数、误匹配点个数及匹配精度。从表1—表3可以更加直观明显地观察出SIFT算法产生的误匹配点较多,匹配的精度不够好,达不到匹配的准确性。而SIFT+RANSAC算法具有不稳定性,在某种情况下虽然会达到很高的匹配率,但在另一种情况下又产生较低的匹配率,这说明该算法不具有很好的适应性,不适合与复杂环境下的图片匹配。而本文的算法匹配精度较高,基本上不会产生误匹配点,能较好地适应各种复杂环境,有较好的鲁棒性,适合用于森林火灾的图像匹配。

表1 视差25°变化时3种算法性能比较Tab.1 Performance comparison of three algorithms when parallax changes by 25 °

表2 亮度与对比度变化时3种算法性能比较Tab.2 Performance comparison of three algorithms when brightness and contrast changes

表3 垂直平移变化时3种算法性能比较Tab.3 Performance comparison of three algorithms when vertical translation changes

4 结论

针对森林火灾的图像识别,本文提出一种基于SIFT和改进RANSAC算法。首先通过SIFT算法识别图片中的特征点,然后通过领域投票和正确匹配点之间斜率相似相结合的方法过滤掉一些错误匹配点,使得RANSAC算法的内点集变少,极大地减少了迭代次数。通过实验仿真结果可以得出改进后的本文算法匹配精度得到改善,匹配时间得到明显的减少,其中匹配精度平均提高了11%,匹配时间平均缩短了4.8 s。并且该算法可以应用到类似森林等复杂地形的火灾图像识别,能够在短时间内有效地检测到火灾的发生。后续准备通过无人机搭载激光雷达做一组关于SIFT算法结合三维点云的森林火灾图像识别与森林火灾的蔓延情况实验。

猜你喜欢
尺度空间关键点阈值
聚焦金属关键点
肉兔育肥抓好七个关键点
基于AHP的大尺度空间域矿山地质环境评价研究
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于CS-TWR的动态阈值贪婪算法成像研究
基于自适应阈值和连通域的隧道裂缝提取
居住区园林空间尺度研究
基于迟滞比较器的双阈值稳压供电控制电路
基于降采样归一化割的多尺度分层分割方法研究
机械能守恒定律应用的关键点