一种快速建筑夜景照明灯光故障检测方法
技术领域
本发明涉及图像处理和故障检测领域,具体涉及一种快速建筑夜景照明灯光故障检测方法。
背景技术
建筑夜景照明不仅能够为城市居民提供安全的照明功能,还有利于丰富城市夜景文化,传播光文化,提高城市的综合品质。但随着时间的推移以及户外环境的复杂性,建筑夜景照明因产品、电力、通信信号等原因故障逐渐频发。现有建筑夜景照明灯光故障检测仍然是常规巡检人员目测为主,导致检测效率下降而且巡检成本高。
随着Internet的快速发展,利用计算机视觉的方法进行检测已经成为研究的主要方向和发展趋势。由于建筑夜景照明灯光各点的颜色和亮度不同,有无故障灯最本质的区别就是像素值是否为“黑色”。在灰度图像中,各点呈现不同程度的灰色,黑色为0,白色为255。因此,灯光故障检测方法中将彩色视频帧的RGB值转化为灰度值。
由于户外环境因素的干扰,摄像头容易发生抖动,导致系统无法从检测区域提取像素信息进行故障检测,因此图像配准是将其中关键步骤。图像配准是数字图像处理领域的关键技术之一,其目的是对不同时间、不同角度或不同传感器获取的同一场景两幅或多幅图进行空间变化处理,使得同一目标在不同的图像上处于相同的坐标位置。SIFT算法是经典的基于特征的图像配准算法,该算法在图像平移、旋转、缩放、视角变换和光照变化等因素下具有良好的效果,解决了因摄像头抖动而误检测的情况。
发明内容
本发明专利目的在于解决传统建筑夜景照明灯光故障检测方法中巡检成本高、检测效率低等问题,并进一步解决计算机视觉检测方法中摄像头抖动问题和检测精度,提出一种基于图像配准的建筑夜景照明灯光故障检测方法。与传统的故障检测方法相比较,具有较高的准确率,具有较好的应用价值。
为实现上述发明目的,本发明提供以下技术方案:一种快速建筑夜景照明灯光故障检测方法,包括以下步骤:
S1:调用摄像头获取建筑夜景照明开灯后的视频流,截取固定时长的视频流进行存储,间隔固定时长后再对视频流进行截取存储;
S2:截取视频流中建筑夜景照明开灯瞬间的视频帧作为参考图像;
S3:将视频流中每一帧与参考图像进行图像配准;
S4:获取配准后视频帧观察区域中各检测区域的像素信息;
S5:将获取到的像素信息通过灯光故障判别方法判断检测区域是否出现故障灯。
进一步地,上述步骤S3包括如下步骤:
S3.1:利用改进后的限制对比度自适应直方图均衡算法(ICLAHE)对参考图像和视频流中的视频帧进行图像增强;
S3.2:将步骤S3.1中ICLAHE得到的灰度图与高斯函数进行卷积,生成不同的尺度空间L(x,y,σ),再将同一尺度中相邻上下两幅图像相减得到高斯差分尺度空间D(x,y,σ);
灰度图与高斯函数进行卷积,生成不同尺度空间的公式如下:
L(x,y,σ)=G(x,y,v)*I(x,y)
式中:I(x,y)为输入的灰度图像,即ICLAHE得到的灰度图像;*为卷积符号;σ为尺度空间因子;G(x,y,σ)为高斯函数;
生成高斯差分尺度空间的公式如下:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)
=L(x,y,kσ)-L(x,y,σ)
式中,k为两个相邻图像的尺度比;
S3.3:在高斯差分尺度空间内,将每一个像素点与周围26个点进行比较,即同一尺度域的8个点与相邻两个尺度的2×9=18个点,最终判断其是否为极值点,即初步检测的关键点;
S3.4:对高斯差分函数D(x,y,σ)进行二次泰勒公式展开,找到参考图像和视频帧的关键点的位置,计算公式如下:
式中,x是相对于关键点的偏移量,求导后取极值作为关键点的位置;
S3.5:根据以下公式计算参考图像和视频帧的关键点领域像素的梯度模值:
式中,L(x,y)表示每个尺度空间的关键点;
在完成关键点的梯度计算后,使用直方图统计领域内像素的梯度和方向,梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度,以直方图中最大值作为关键点的主方向,峰值大于主方向峰值80%的方向作为关键点的辅方向;
S3.6:确定参考图像和视频帧的关键点的位置、尺度和方向之后,用一组向量描述该关键点,以关键点为中心,将16×16的窗口等间隔划分成4×4个子区域计算8个方向的梯度信息,即描述子采用4×4×8=128维特征向量;
S3.7:在视频帧中找到与参考图像中欧氏距离最近的前两个特征点,计算最近的距离和次近距离的比值,若小于设定的阈值,则匹配成功;
S3.8:随机抽样一致(RANSAC)算法去除匹配点中的误匹配点对:从特征点中随机抽取4组不共线的特征点对作为样本,求出变换矩阵,通过变换矩阵计算所有特征点对与矩阵之间的误差,找出所有小于阈值误差的特征点对。
S3.9:根据步骤3.8的变换矩阵求出参考图像与视频帧中对应点位置,采用最邻近插值法求得视频帧坐标点的灰度值,从而得到最终配准图像。
进一步地,上述步骤S3.1包括如下步骤:
S3.1.1:将视频帧和参考图像各划分为大小相等不重叠的8*8个子区域,计算每个子区域的灰度直方图hi(x),i∈[0,63],x∈[0,255];限制每个灰度级包含的像素数不超过平均值average的N1倍,也不得低于average的N2倍;
S3.1.2:利用公式(1)对灰度直方图hi(x)进行裁剪,利用公式(2)对灰度直方图重新分配数值;
式中,sin gleW、sin gleH和L分别为直方图hi(x)的宽、高和灰度级数量;N1、N2是截取限制系数;Limitl和Limit2是剪裁阈值;
式中,totalE是裁剪的像素总数;avgB是小于Limit2的灰度级得到的像素数;count是像素小于Limit2的灰度级数;h′i(x)为重新分配后的直方图;
S3.1.3:分别对视频帧、参考图像裁剪后的每个子区域h′i(x)分别进行直方图均衡化;
i∈[0,63],k∈[0,L-1]
fi(k)=round((L-1)×cdfi(k))
i∈[0,63],k∈[0,L-1]
式中,cdfi(k)表示图像的累积分布直方图;hi(x)表示为灰度级为x时的像素数;Nall表示灰度图像的像素数;fi(k)表示灰度变换函数。
S3.1.4:对视频帧和参考图像中的每一个像素进行灰度值重构。
进一步地,上述步骤S3.1.4中对像素进行灰度值重构具体包括以下内容:
1)四角区域灰度值通过该像素点所属子块的变换函数进行重构,变换公式如步骤3.1.3中所示;
2)边缘区域灰度值通过相邻两子区域的灰度变换函数进行线性插值实现重构,相邻两子区域的灰度变换函数如以下公式所示:
其中,f(x,y)为所求点的灰度值;f1、f2为相邻两子区域的灰度变换函数;(x1,y1)、(x2,y2)为相邻两子区域的中心像素坐标;
3)剩余部分灰度值通过周围四个子区域的灰度变换函数进行双线性插值实现重构,四个子区域的灰度变换函数如以下公式所示:
式中,f′1、f′2、f′3、f′4分别为周围四个子区域的灰度变换函数;(x′1,y′1)、(x′1,y′2)、(x′2,y′1)、(x′2,y′2)分别为周围四个子区域的中心像素坐标。
进一步地,上述步骤S4中获取配准后视频帧观察区域中各检测区域的像素信息包括如下步骤:
S4.1:将配准后的视频帧中建筑夜景观察区域划分成M×N个检测区域;
S4.2:提取配准后的视频帧中第t个检测区域的RGB平均值,表示为Rtj、Gtj、Btj,然后根据公式进行灰度化,并对其进行归一化处理,记N_Graytj。
式中,j表示当前帧数,k表示检测视频流的总帧数。
S4.3:各个检测区域以帧为单位循环操作步骤4.2,并对其进行累加,计算公式如下:
式中,k表示检测视频的总帧数;
进一步地,上述步骤S5中通过灯光故障判别方法判断检测区域是否出现故障灯具体包括以下内容:
根据无故障点时N_Grayt的变化情况进行曲线拟合,找出最合适的拟合直线公式,利用该公式对之后计算出的N_Grayt进行拟合,计算两者之间的偏差,通过设定的阈值判断各个检测区域是否存在故障灯。
本发明提供了一种基于计算机视觉的建筑夜景照明灯光故障检测方法,利用改进后的限制对比度自适应直方图均衡化和SIFT算法对建筑夜景照明灯光图像进行配准,解决了因摄像头抖动而误检测的情况。将配准好的视频通过灯光故障判别方法进行检测,判断各个检测区域是否出现故障灯。若出现故障,则进行告警。与传统的故障检测方法相比较,本发明具有较高的准确率和检测效率,具有较好的应用价值。
附图说明
图1为本发明中建筑夜景照明灯光故障检测流程图。
图2为本发明中基于SIFT的图像配准算法流程。
图3为通过本发明检测到故障灯的效果图。
图4为灯光故障判别流程图。
具体实施方式
为使本发明的目的和技术方案更加清楚,下面结合实施例对本发明做进一步的详细描述。
本发明提供的基于图像配准的建筑夜景照明灯光故障检测方法流程参见图1,包括如下步骤:
S1:调用摄像头获取建筑夜景照明开灯后的视频流,截取固定时长(比如1分钟)的视频流进行存储,间隔固定时长后再对视频流进行截取存储;作为本发明的优选实施例,本发明中的摄像头优选海康威视SDK。
S2:截取视频流中建筑夜景照明开灯瞬间的视频帧作为参考图像,作为本发明的优选实施例,一般以拍摄角度无误的视频帧作为参考图像,在实际操作中一般以摄像头捕捉到的打开建筑夜景照明瞬间的视频帧作为参考图像;
S3:将视频流中每一帧与参考图像进行图像配准;
S4:获取配准后视频帧观察区域中各检测区域的像素信息;
S5:将获取到的像素信息通过灯光故障判别方法判断检测区域是否出现故障灯,判别结果如图3所示。
作为本发明的优选实施例,本发明中的观察区域是待检测视频流中的视频帧中的特定区域,检测区域是观察区域中的局部区域,如有照明灯光的大楼是观察区域,大楼上又划分MXN个检测区域。
作为本发明的优选实施例,如图2的本发明中基于SIFT的图像配准算法流程所示,本发明步骤S3中的图像配准包括如下步骤:
S3.1:利用改进后的限制对比度自适应直方图均衡算法(ICLAHE)对参考图像和视频流中的视频帧进行图像增强;
S3.2:将步骤S3.1中ICLAHE得到的灰度图与高斯函数进行卷积,生成不同的尺度空间L(x,y,σ),再将同一尺度中相邻上下两幅图像相减得到高斯差分尺度空间D(x,y,σ);
灰度图与高斯函数进行卷积,生成不同尺度空间的公式如下:
L(x,y,σ)=G(x,y,σ)*I(x,y)
式中:I(x,y)为输入的灰度图像,即ICLAHE得到的灰度图像;*为卷积符号;σ为尺度空间因子;G(x,y,σ)为高斯函数;
生成高斯差分尺度空间的公式如下:
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)
=L(x,y,kσ)-L(x,y,σ)
式中,k为两个相邻图像的尺度比;
S3.3:在高斯差分尺度空间内,将每一个像素点与周围26个点进行比较,即同一尺度域的8个点与相邻两个尺度的2×9=18个点,最终判断其是否为极值点,即初步检测的关键点;
S3.4:对高斯差分函数D(x,y,σ)进行二次泰勒公式展开,找到参考图像和视频帧的关键点的位置,计算公式如下:
式中,x是相对于关键点的偏移量,求导后取极值作为关键点的位置;
S3.5:根据以下公式计算参考图像和视频帧的关键点领域像素的梯度模值:
式中,L(x,y)表示每个尺度空间的关键点,由于是同一尺度比较,所以不需要参数σ;
在完成关键点的梯度计算后,使用直方图统计领域内像素的梯度和方向,梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度,以直方图中最大值作为关键点的主方向,峰值大于主方向峰值80%的方向作为关键点的辅方向;
S3.6:确定参考图像和视频帧的关键点的位置、尺度和方向之后,用一组向量描述该关键点,以关键点为中心,将16×16的窗口等间隔划分成4×4个子区域计算8个方向的梯度信息,即描述子采用4×4×8=128维特征向量;
S3.7:在视频帧中找到与参考图像中欧氏距离最近的前两个特征点,计算最近的距离和次近距离的比值,若小于设定的阈值,则匹配成功;
S3.8:随机抽样一致(RANSAC)算法去除匹配点中的误匹配点对:从特征点中随机抽取4组不共线的特征点对作为样本,求出变换矩阵,通过变换矩阵计算所有特征点对与矩阵之间的误差,找出所有小于阈值误差的特征点对。
S3.9:根据步骤3.8的变换矩阵求出参考图像与视频帧中对应点位置,采用最邻近插值法求得视频帧坐标点的灰度值,从而得到最终配准图像。
作为本发明的优选实施例,上述步骤S3.1包括如下步骤:
S3.1.1:将视频帧和参考图像各划分为大小相等不重叠的8*8个子区域,计算每个子区域的灰度直方图hi(x),i∈[0,63],x∈[0,255];限制每个灰度级包含的像素数不超过平均值average的N1倍,也不得低于average的N2倍;
S3.1.2:利用公式(1)对灰度直方图hi(x)进行裁剪,利用公式(2)对灰度直方图重新分配数值;
式中,sin gleW、sin gleH和L分别为直方图hi(x)的宽、高和灰度级数量;N1、N2是截取限制系数;Limitl和Limit2是剪裁阈值;
式中,totalE是裁剪的像素总数;avgB是小于Limit2的灰度级得到的像素数;count是像素小于Limit2的灰度级数;h′i(x)为重新分配后的直方图;
S3.1.3:分别对视频帧、参考图像裁剪后的每个子区域h′i(x)分别进行直方图均衡化;
fi(k)=round((L-1)×cdfi(k))
i∈[0,63],k∈[0,L-1]
式中,cdfi(k)表示图像的累积分布直方图;hi(x)表示为灰度级为x时的像素数;Nall表示灰度图像的像素数;fi(k)表示灰度变换函数。
S3.1.4:对视频帧和参考图像中的每一个像素进行灰度值重构。
作为本发明的优选实施例,上述步骤S3.1.4中对像素进行灰度值重构具体包括以下内容:
1)四角区域灰度值通过该像素点所属子块的变换函数进行重构,变换公式如步骤31.3中所示;
2)边缘区域灰度值通过相邻两子区域的灰度变换函数进行线性插值实现重构,相邻两子区域的灰度变换函数如以下公式所示:
其中,f(x,y)为所求点的灰度值;f1、f2为相邻两子区域的灰度变换函数;(x1,y1)、(x2,y2)为相邻两子区域的中心像素坐标;
3)剩余部分灰度值通过周围四个子区域的灰度变换函数进行双线性插值实现重构,四个子区域的灰度变换函数如以下公式所示:
式中,f′1、f′2、f′3、f′4分别为周围四个子区域的灰度变换函数;(x′1,y′1)、(x′1,y′2)、(x′2,y′1)、(x′2,y′2)分别为周围四个子区域的中心像素坐标。
作为本发明的优选实施例,上述步骤S4中获取配准后视频帧观察区域中各检测区域的像素信息包括如下步骤:
S4.1:将配准后的视频帧中建筑夜景观察区域划分成M×N个检测区域;
S4.2:提取配准后的视频帧中第t个检测区域的RGB平均值,表示为Rtj、Gtj、Btj,然后根据公式进行灰度化,并对其进行归一化处理,记N_Graytj。
式中,j表示当前帧数,k表示检测视频流的总帧数。
S4.3:各个检测区域以帧为单位循环操作步骤4.2,并对其进行累加,计算公式如下:
式中,k表示检测视频的总帧数;
作为本发明的优选实施例,上述步骤S5中通过灯光故障判别方法判断检测区域是否出现故障灯具体包括以下内容:
根据无故障点时N_Grayt的变化情况进行曲线拟合,找出最合适的拟合直线公式,利用该公式对之后计算出的N_Grayt进行拟合,计算两者之间的偏差,通过设定的阈值判断各个检测区域是否存在故障灯,具体判别流程如图4所示。
本发明提供了一种基于计算机视觉的建筑夜景照明灯光故障检测方法,利用改进后的限制对比度自适应直方图均衡化和SIFT算法对建筑夜景照明灯光图像进行配准,解决了因摄像头抖动而误检测的情况。将配准好的视频流通过灯光故障判别方法进行检测,判断各个检测区域是否出现故障灯。若出现故障,则进行告警。与传统的故障检测方法相比较,本发明具有较高的准确率和检测效率,具有较好的应用价值。