飞虫检测方法、装置及终端与流程

文档序号:11654967阅读:697来源:国知局
飞虫检测方法、装置及终端与流程

本发明涉及图像处理技术领域,尤其涉及一种飞虫检测方法、装置及终端。



背景技术:

在图像处理领域,采用移动侦测技术能够自动检测出视频中的运动场景,因而可以降低人工监控成本,提高监控效率和监控力度。移动侦测技术已被作为运动检测录像技术的基础,是智能摄像机的重要组成部分,越来越多的智能摄像机将移动侦测技术嵌入到摄像机固件中。

传统的移动侦测方法主要有三类:光流法、帧间差分法和背景差分法。光流法通过给图像中的每一个像素点赋予一个速度矢量,形成一个图像运动场,在运动的一个特定时刻,图像上的点与三维物体上的点一一对应,这种对应关系可由投影关系得到,根据各个像素点的速度矢量特征,可以对图像进行动态分析;如果图像中没有运动物体,则光流矢量在整个图像区域是连续变化的;当图像中有运动物体时,目标和图像背景存在相对运动,运动物体所形成的速度矢量必然和邻域背景速度矢量不同,从而检测出运动物体及位置。图像差分法比较简单,易于实施,因而成为目前应用最广泛的运动目标检测方法。图像差分法可分类两类:背景差分法和帧间差分法。背景差分法采用图像序列中的当前帧和背景参考模型比较,来检测运动物体的一种方法,其性能依赖于所使用的背景建模技术。帧间差分法是一种通过对视频图像序列中的两个或三个相邻帧做差分运算来获得运动目标轮廓的方法。

但是,图像差分法、背景差分法和帧间差分法对引起的画面变化等干扰因素特别敏感,例如光照、风吹绿植等。在夜视环境下,飞虫在飞行过程中也会导致画面变化。由于传统的移动侦测算法对引起画面变化的干扰因素特别敏感,因此一旦检测到画面变化,就进行移动侦测报警。但是这种报警是不被希望的,即属于误报,所以需要检测并鉴别夜视环境的飞虫以避免误报。



技术实现要素:

本发明解决的技术问题是如何实现图像中的飞虫检测。

为解决上述技术问题,本发明实施例提供一种飞虫检测方法,飞虫检测方法包括:

获取待检测的第一图像和第二图像;对所述第一图像和所述第二图像进行差运算,并对差运算后的结果进行二值化操作,以得到二值图像;统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图;根据所述列像素直方图的统计结果确定是否存在飞虫。

可选的,所述根据所述列像素直方图的统计结果确定是否存在飞虫包括:计算所述列像素直方图的波峰的数量;根据所述波峰的数量确定是否存在飞虫。

可选的,所述列像素直方图的纵坐标为所述二值图像在每列上像素值非零的像素个数,所述列像素直方图的横坐标为所述二值图像的列;所述计算所述列像素直方图的波峰的数量包括:遍历所述列像素直方图的所有列,如果所述列像素直方图中存在纵坐标值大于波峰阈值的列,且所述纵坐标值与设定横坐标间隔数量对应列的纵坐标值的差值大于设定差阈值,则所述波峰的数量加一。

可选的,在所述列像素直方图的设定范围间隔的列数内仅保留一个波峰。

可选的,所述根据所述波峰的数量确定是否存在飞虫包括:所述波峰的数量小于最小数量阈值或大于最大数量阈值时,则确定存在飞虫。

可选的,所述列像素直方图的纵坐标为所述二值图像在每列上像素值非零的像素个数;所述根据所述列像素直方图的统计结果确定是否存在飞虫包括:根据有效列比率确定是否存在飞虫,所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。

可选的,所述根据有效列比率确定是否存在飞虫包括:所述有效列比率小于比率阈值时,则确定存在飞虫。

可选的,所述统计所述二值图像在每列上像素值非零的像素个数之前还包括:对所述二值图像进行腐蚀操作,以得到腐蚀图像;计算所述腐蚀图像中像素值非零的像素总数;所述像素总数大于第一设定阈值时,则统计所述二值图像在每列上像素值非零的像素个数。

可选的,所述飞虫检测方法还包括:所述像素总数小于等于所述第一设定阈值时,则重新获取待检测的图像。

可选的,所述对所述第一图像和所述第二图像进行像素值的差运算,并对差运算后的结果进行二值化操作包括:对所述第一图像和所述第二图像的所有像素做差并取绝对值,以形成差异图像;对于所述差异图像中的每一像素,如果像素值小于像素阈值,则将该像素的像素值赋值为0,否则赋值为预设的非零值,以形成所述二值图像。

可选的,所述第一图像和所述第二图像为红外视频中的相邻两帧图像。

为解决上述技术问题,本发明实施例还公开了一种飞虫检测装置,飞虫检测装置包括:

获取模块,适于获取待检测的第一图像和第二图像;差运算模块,适于对所述第一图像和所述第二图像进行差运算,并对差运算后的结果进行二值化操作,以得到二值图像;统计模块,适于统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图;第一判断模块,适于根据所述列像素直方图的统计结果确定是否存在飞虫。

可选的,所述第一判断模块包括:波峰数量计算单元,适于计算所述列像素直方图的波峰的数量;第一判断单元,适于根据所述波峰的数量确定是否存在飞虫。

可选的,所述列像素直方图的纵坐标为所述二值图像在每列上像素值非零的像素个数,所述列像素直方图的横坐标为所述二值图像的列;所述波峰数量计算单元包括:遍历计算子单元,适于遍历所述列像素直方图的所有列,如果所述列像素直方图中存在纵坐标值大于波峰阈值的列,且所述纵坐标值与设定横坐标间隔数量对应列的纵坐标值的差值大于设定差阈值,则所述波峰的数量加一。

可选的,在所述列像素直方图的设定范围间隔的列数内仅保留一个波峰。

可选的,所述第一判断单元在所述波峰的数量小于最小数量阈值或大于最大数量阈值时,则确定存在飞虫。

可选的,所述列像素直方图的纵坐标为所述二值图像在每列上像素值非零的像素个数;所述第一判断模块包括:第二判断单元,适于根据有效列比率确定是否存在飞虫,所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。

可选的,第二判断单元在所述有效列比率小于比率阈值时,则确定存在飞虫。

可选的,所述飞虫检测装置还包括:腐蚀模块,适于对所述二值图像进行腐蚀操作,以得到腐蚀图像;计算模块,适于计算所述腐蚀图像中像素值非零的像素总数;第二判断模块,适于判断所述像素总数是否大于第一设定阈值,在所述像素总数大于所述第一设定阈值时,则所述统计模块统计所述二值图像在每列上像素值非零的像素个数。

可选的,在所述像素总数小于等于所述第一设定阈值时,则所述获取模块重新获取待检测的图像。

可选的,所述差运算模块包括:差异图像形成单元,适于对所述第一图像和所述第二图像的所有像素做差并取绝对值,以形成差异图像;二值图像形成单元,适于对于所述差异图像中的每一像素,如果像素值小于像素阈值,则将该像素的像素值赋值为0,否则赋值为预设的非零值,以形成所述二值图像。

可选的,所述第一图像和所述第二图像为红外视频中的相邻两帧图像。

为解决上述技术问题,本发明实施例还公开了一种终端,所述终端包括所述飞虫检测装置。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明技术方案获取待检测的第一图像和第二图像;对所述第一图像和所述第二图像进行差运算,并对差运算后的结果进行二值化操作,以得到二值图像;统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图;根据所述列像素直方图的统计结果确定是否存在飞虫。本发明技术方案通过对第一图像和第二图像的像素差异结果进行二值化操作,对二值化操作得到的二值图像进行统计,获取每列上像素值非零的像素个数;然后对统计得到的列像素直方图进行统计,利用列像素直方图的统计结果确定是否存在飞虫。由上,本发明技术方案利用飞虫在第一图像和第二图像形成的像素差异值的统计结果区别于其他物体的独特性,来确定是否存在飞虫,从而实现了对飞虫的检测,进而可以在多领域的应用场景中实现更好的监测效果。

进一步,可以计算所述列像素直方图的波峰的数量;根据所述波峰的数量确定是否存在飞虫;也可以根据有效列比率确定是否存在飞虫,所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。本发明技术方案通过不同方式的统计结果,来确定是否存在飞虫,可以实现飞虫检测的实施方式多样性,进而增加飞虫检测的准确性。

附图说明

图1是本发明实施例一种飞虫检测方法的流程图;

图2是本发明实施例腐蚀操作中像素p及其相邻像素的位置关系示意图;

图3是本发明实施例另一种飞虫检测方法的流程图;

图4是本发明实施例一种二值图像的示意图;

图5是本发明实施例一种列像素直方图图像的示意图;

图6是本发明实施例一种飞虫检测装置的结构示意图;

图7是本发明实施例另一种飞虫检测装置的结构示意图。

具体实施方式

如背景技术中所述,现有技术的背景差分法和帧间差分法对引起的画面变化等干扰因素特别敏感,例如光照、风吹绿植等。在夜视环境下,飞虫在飞行过程中也会导致画面变化。由于传统的移动侦测算法对引起画面变化的干扰因素特别敏感,因此一旦检测到画面变化,就进行移动侦测报警。但是这种报警是不被希望的,即属于误报,所以需要检测并鉴别夜视环境的飞虫以避免误报。

本发明实施例通过对第一图像和第二图像的像素差异结果进行二值化操作,对二值化操作得到的二值图像进行统计,获取每列上像素值非零的像素个数;然后对统计得到的列像素直方图进行统计,利用列像素直方图的统计结果确定是否存在飞虫。也就是说,本发明技术方案利用飞虫在第一图像和第二图像形成的像素差异值的统计结果的独特性,来确定是否存在飞虫,从而实现了对飞虫的检测,以区别于图像中的其他物体,进而可以在多领域的应用场景中实现更好的监测效果。

本领域技术人员应当理解的是,本实施例中所称飞虫是指各种飞行物体,例如可以是室内常见的飞行动物、飞行昆虫等。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例一种飞虫检测方法的流程图。

图1所示的飞虫检测方法可以包括以下步骤:

步骤s101:获取待检测的第一图像和第二图像;

步骤s102:对所述第一图像和所述第二图像进行差运算,并对差运算后的结果进行二值化操作,以得到二值图像;

步骤s103:统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图;

步骤s104:根据所述列像素直方图的统计结果确定是否存在飞虫。

具体实施中,由于飞虫在飞行的过程中会在连续拍摄的两幅图像中形成拖影,因此,可以利用图像中的拖影来检测飞虫。首先在步骤s101中,获取待检测的第一图像和第二图像。具体而言,第一图像和第二图像的拍摄时机可以在时间上连续。例如可以是,第一图像和第二图像的拍摄时机在时间上的差值小于设定阈值;也可以是,第一图像和第二图像是视频中的连续两帧图像。

具体实施中,在步骤s102中,对所述第一图像和所述第二图像进行差运算。具体而言,可以对第一图像和第二图像中所有像素的像素值进行差运算。具体地,定义e0(x,y)和e1(x,y)分别为第一图像和第二图像在像素坐标(x,y)处的像素值,d(x,y)为像素值e0(x,y)和像素值e1(x,y)的差运算结果,即:d(x,y)=|e0(x,y)–e1(x,y)|。对第一图像和第二图像的所有像素做上述差运算操作。

进一步地,对差运算后的结果进行二值化操作,以得到二值图像。具体而言,二值图像中的像素值仅有两种,零和非零值,例如,某一像素的像素值如果超过预设阈值则二值化为预设的非零值,否则二值化为零。本实施例通过二值图像可以将第一图像和第二图像的像素差异以更直观的方式呈现出来。

具体实施中,在步骤s103中,统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图。具体而言,通过对二值图像进行统计,得到二值图像在每列上像素值非零的像素个数,进而得到列像素直方图。也就是说,列像素直方图的纵坐标为所述二值图像在每列上像素值非零的像素个数,所述列像素直方图的横坐标为所述二值图像的列。本实施例通过列像素直方图可以将第一图像和第二图像出现像素差异的分布位置进行了展示。如果列像素直方图在某列的像素值非零的像素个数多,则表示第一图像和第二图像在该列上存在较多的像素的存在差异;反之,如果列像素直方图在某列的像素值非零的像素个数少,则表示第一图像和第二图像在该列上存在较少的像素的存在差异。

具体地,列像素数直方图f_hist以二值图像f_thresh的列为横坐标,以每列上像素值非零的像素个数为纵坐标。假设二值图像f_thresh内坐标(x,y)处的像素值为t(x,y),二值图像f_thresh的高度为height,宽度为width;列像素数直方图f_hist在列x上的纵坐标为hist(x)。首先采用以下公式对列像素数直方图f_hist的纵坐标hist(x)进行初始化hist(x)=0;x=0,…,width-1;然后采用以下公式计算横坐标x对应的纵坐标hist(x):

x=0,…,width-1;y=0,…,height-1;

至此,得到列像素数直方图f_hist。

具体实施中,在步骤s104中,根据所述列像素直方图的统计结果确定是否存在飞虫。在经过步骤s103得到列像素直方图后,可以对列像素直方图进行统计,进而可以利用列像素直方图的统计结果确定第一图像和第二图像中是否存在飞虫。换言之,如果在第一图像和第二图像中存在飞虫,则可以在第一图像和第二图像出现像素差异的分布位置,也即列像素直方图的统计结果中表征出来,故,利用列像素直方图的统计结果可以确定是否存在飞虫。

本发明实施例利用飞虫在第一图像和第二图像形成的像素差异值的统计结果的独特性,来确定是否存在飞虫,从而实现了对飞虫的检测,以区别于图像中的其他物体,进而可以在多领域的应用场景中实现更好的监测效果。

此外,采用本发明实施例的飞虫检测方法来检测飞虫,复杂度低,计算量小,从而可以提高飞虫检测方法的适用性。

优选地,步骤s104可以包括以下步骤:计算所述列像素直方图的波峰的数量;根据所述波峰的数量确定是否存在飞虫。

具体实施中,列像素直方图包括二值图像在每列上像素值非零的像素个数,由于二值图像在每列上像素值非零的像素个数不同,因此,可以统计得到列像素直方图的波峰的数量,也即二值图像在每列上像素值非零的像素个数突出的列的数量。由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以通过波峰的数量确定是否存在飞虫。

进一步地,所述计算所述列像素直方图的波峰的数量可以包括以下步骤:遍历所述列像素直方图的所有列,如果所述列像素直方图中存在纵坐标值大于波峰阈值的列,且所述纵坐标值与设定横坐标间隔数量对应列的纵坐标值的差值大于设定差阈值,则所述波峰的数量加一。

具体实施中,在确定波峰时,不仅波峰所在列的纵坐标值大于波峰阈值,而且波峰所在列的纵坐标值与设定横坐标间隔数量对应列的纵坐标值的差值大于设定差阈值。具体地,假设列像素数直方图f_hist内横坐标x对应的纵坐标为hist(x),横坐标间隔数为δx,设定差阈值为thresh,波峰阈值为ythresh,波峰的数量为crestcount。则同时满足下述条件时,波峰的数量加一,crestcount=crestcount+1:

hist(x)-hist(x-δx)>thresh;

hist(x)-hist(x+δx)>thresh;

hist(x)>ythresh。

通过遍历列像素数直方图f_hist的横坐标,得到波峰的数量crestcount。

在具体实施中,波峰阈值为ythresh取值范围可以是[10,30],优选地,波峰阈值ythresh=20。本领域技术人员应当理解的是,波峰阈值为ythresh根据实际应用环境也可以配置为其他任意可实施的数值,本发明实施例对此不做限制。

优选地,在所述列像素直方图的设定范围间隔的列数内仅保留一个波峰。为了去除噪声对波峰的数量的计算结果的影响,在设定范围间隔的列数内仅保留一个波峰。具体而言,由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以通过波峰的数量确定是否存在飞虫。假设,列像素数直方图f_hist范围间隔为range,已符合上述条件的波峰对应的横坐标为x1,则同时满足下述条件时,波峰的数量加一,也即:crestcount=crestcount+1:

hist(x)-hist(x-δx)>thresh;

hist(x)-hist(x+δx)>thresh;

hist(x)>ythresh;

进一步地,所述波峰的数量小于最小数量阈值或大于最大数量阈值时,则确定存在飞虫。具体地,最小数量阈值为minnum,最大数量阈值为maxnum,则满足下述任一条件时,判断为飞虫:

crestcount<minnum;

crestcount>maxnum。

优选地,步骤s104可以包括以下步骤:根据有效列比率确定是否存在飞虫,所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。具体而言,由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以利用存在像素差异的列与噪声的关系确定是否存在飞虫。

具体地,噪声阈值为noisethresh,列像素数直方图f_hist中大于波峰阈值ythresh的列的数量为filtercrestthreshcount,列像素数直方图f_hist中大于噪声阈值列的数量filternoisethreshcount,有效列比率为ratio。有效列比率可以通过以下公式计算:

进一步地,所述根据有效列比率确定是否存在飞虫可以包括以下步骤:所述有效列比率小于比率阈值时,则确定存在飞虫。具体地,比率阈值为minratio,则满足下述条件时,判断为飞虫:

ratio<minratio。

可以理解的是,通过波峰的数量与最小数量阈值或最大数量阈值的关系,以及有效列比率与比率阈值的关系也可以确定是否存在其他物体,例如,行人。具体地,同时满足下述条件时,判断为行人:

crestcount≥minnum;

crestcount≤maxnum;

ratio≥minratio。

优选地,步骤s103之前还可以包括以下步骤:对所述二值图像进行腐蚀操作,以得到腐蚀图像;计算所述腐蚀图像中像素值非零的像素总数;所述像素总数大于第一设定阈值时,则统计所述二值图像在每列上像素值非零的像素个数。

具体实施中,为了减小噪声对飞虫检测的影响,可以对二值图像进行腐蚀操作。具体而言,定义de(x,y)为腐蚀图像内位于坐标(x,y)处的像素值,计算de(x,y)的过程即为图像腐蚀操作。具体地,位于坐标(x,y)处的像素p的像素值为t(x,y),定义t(x-1,y-1)、t(x,y-1)、t(x+1,y-1)、t(x-1,y)、t(x+1,y)、t(x-1,y+1)、t(x,y+1)、t(x+1,y+1)分别为像素p在左上方、正上方、右上方、左方、右方、左下方、正下方、右下方处的八个相邻像素的像素值。其位置关系如图2所示。腐蚀图像内位于坐标(x,y)处的像素值de(x,y)可以通过以下方式得到:像素p和其相邻八个像素的进行与操作,然后根据与操作的结果value进行赋值。

需要说明的是,腐蚀图像内位于坐标(x,y)处的像素值de(x,y)也可以像素p和其相邻4个像素的进行与操作得到的,本发明实施例对此不做限制。

具体地,采用以下公式进行与操作:

value=t(x-1,y-1)&&t(x,y-1)&&t(x+1,y-1)&&t(x-1,y)&&t(x,y)&&t(x+1,y)&&t(x-1,y+1)&&t(x,y+1)&&t(x+1,y+1)。

那么,可以采用以下公式计算腐蚀图像内位于坐标(x,y)处的像素值de(x,y):

通过遍历二值图像的所有像素点,进行腐蚀操作,可以得到腐蚀图像f_erode。

可以理解的是,腐蚀操作可以采用任意可实施的方式或算法来实现,本发明实施例对此不做限制。

具体实施中,计算所述腐蚀图像中像素值非零的像素总数;所述像素总数大于第一设定阈值时,则继续步骤s103。如果所述像素总数小于等于所述第一设定阈值,则表示第一图像和第二图像的存在像素值差异的像素比较少,也即第一图像和第二图像基本无差异,可以确定不存在飞虫,则可以重新获取待检测的图像,也即重新执行步骤s101。

优选地,步骤s101可以包括以下步骤:对所述第一图像和所述第二图像的所有像素做差并取绝对值,以形成差异图像;对于所述差异图像中的每一像素,如果像素值小于像素阈值,则将该像素的像素值赋值为0,否则赋值为预设的非零值,以形成所述二值图像。

具体而言,对第一图像和第二图像的所有像素做差运算操作得到差异图像f_diff。差运算操作的结果为f_diff的像素值。差异图像f_diff内坐标(x,y)处的像素p的值为d(x,y)。可以采用以下公式对差异图像进行赋值:

对差异图像f_diff的所有像素做以上操作,得到二值图像f_thresh。t(x,y)为二值图像f_thresh在坐标(x,y)处的像素值。

可以理解的是,本实施例中,预设的非零值可以为255;在具体实施中,预设的非零值也可以是其他任意可实施的大于0的数值,例如,511、127、63等,本发明实施例对此不做限制。

图3是本发明实施例另一种飞虫检测方法的流程图。

本实施例中,以所述第一图像和所述第二图像为红外视频中的相邻两帧图像为例,对飞虫检测方法进行详细的说明。具体而言,所述红外视频可以是夜视视频。本实施例对视频中的所有帧图像进行飞虫的检测。

如图3所示,在步骤s301中,获取第一图像;然后在步骤s302中,获取第二图像。具体而言,第二图像可以是第一图像的下一相邻帧图像。也就是说,在确定了第一图像在视频中的位置时,则也可以确定第二图像的位置。例如,第一图像是第一帧图像时,则第二图像是第二帧图像;第一图像是第三帧图像时,第二图像是第四帧图像。

具体实施中,在步骤s303中,对所述第一图像和所述第二图像进行差运算,以形成差异图像。具体而言,可以对第一图像和第二图像中所有像素的像素值进行差运算。

在步骤s304中,对差异图像进行二值化操作,以得到二值图像。具体而言,二值图像中的像素值仅有两种,零和非零值,例如0和255。得到的二值图像可参照图4,图4是本发明实施例一种二值图像的示意图。

本实施例通过二值图像可以将第一图像和第二图像的像素差异以更直观的方式呈现出来。

在步骤s305中,对所述二值图像进行腐蚀操作,以得到腐蚀图像。对二值图像进行腐蚀操作,是为了减小噪声对飞虫检测的影响。具体而言,定义de(x,y)为腐蚀图像内位于坐标(x,y)处的像素值,计算de(x,y)的过程即为图像腐蚀操作。对每一像素和其相邻八个像素的像素值(零和非零值)进行与操作,然后根据与操作的结果value进行赋值。可以采用以下公式计算腐蚀图像内位于坐标(x,y)处的像素值de(x,y):

通过遍历二值图像的所有像素点,进行腐蚀操作,可以得到腐蚀图像f_erode。

在步骤s306中,计算腐蚀图像中所述像素值非零的像素总数。

在步骤s307中,判断像素值非零的像素总数是否大于第一设定阈值,如果是,进入步骤s308;否则,进入步骤s316。也就是说,如果像素值非零的像素总数大于第一设定阈值,表示第一图像和第二图像之间存在差异,可以继续判断该差异是否是飞虫导致的;如果像素值非零的像素总数小于等于第一设定阈值,表示第一图像和第二图像基本无差异,可以确定不存在飞虫,则可以重新获取待检测的图像,因此在步骤s316中,将第二图像赋值给第一图像,并继续步骤s302,直至步骤s314判断第二图像为视频的最后帧,对视频的所有帧图像检测完成。

在步骤s308中,统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图。经过步骤s308得到的列像素直方图可参照图5,图5是本发明实施例一种列像素直方图图像的示意图。

具体而言,通过对二值图像进行统计,得到二值图像在每列上像素值非零的像素个数,进而得到列像素直方图。也就是说,列像素数直方图f_hist以二值图像f_thresh的列为横坐标,以每列上像素值非零的像素个数为纵坐标。

具体地,列像素数直方图f_hist以二值图像f_thresh的列为横坐标,以每列上像素值非零的像素个数为纵坐标。假设,二值图像f_thresh内坐标(x,y)处的像素值为t(x,y),二值图像f_thresh的高度为height,宽度为width;列像素数直方图f_hist在列x上的纵坐标为hist(x)。首先采用以下公式对列像素数直方图f_hist的纵坐标hist(x)进行初始化hist(x)=0;x=0,…,width-1;然后采用以下公式计算横坐标x对应的纵坐标hist(x):

x=0,…,width-1;y=0,…,height-1;

至此,得到列像素数直方图f_hist。

具体实施中,在步骤s309和步骤s310中,分别利用列像素数直方图f_hist的两种统计结果判断是否存在飞虫。

在步骤s309中,计算所述列像素直方图的波峰的数量。

在步骤s311中,判断波峰的数量是否小于最小数量阈值或者大于最大数量阈值,如果是,则进入步骤s312,否则,进入步骤s317。

其中,步骤s312表示检测结果存在飞虫;步骤s317表示检测结果不存在飞虫,图像中可以存在其他物体,例如行人、宠物等。

具体实施中,在确定波峰时,不仅波峰所在列的纵坐标值大于波峰阈值,而且波峰所在列的纵坐标值与设定横坐标间隔数量对应列的纵坐标值的差值大于设定差阈值。具体地,假设列像素数直方图f_hist内横坐标x对应的纵坐标为hist(x),横坐标间隔数为δx,设定差阈值为thresh,波峰阈值为ythresh,波峰的数量为crestcount。则同时满足下述条件时,波峰的数量加一,crestcount=crestcount+1:

hist(x)-hist(x-δx)>thresh;

hist(x)-hist(x+δx)>thresh;

hist(x)>ythresh。

通过遍历列像素数直方图f_hist的横坐标,得到波峰的数量crestcount。

在具体实施中,波峰阈值为ythresh取值范围可以是[10,30],优选地,波峰阈值ythresh=20。本领域技术人员应当理解的是,波峰阈值为ythresh根据实际应用环境也可以配置为其他任意可实施的数值,本发明实施例对此不做限制。

优选地,在所述列像素直方图的设定范围间隔的列数内仅保留一个波峰。为了去除噪声对波峰的数量的计算结果的影响,在设定范围间隔的列数内仅保留一个波峰。具体而言,由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以通过波峰的数量确定是否存在飞虫。假设,列像素数直方图f_hist范围间隔为range,已符合上述条件的波峰对应的横坐标为x1,则同时满足下述条件时,波峰的数量加一,crestcount=crestcount+1:

hist(x)-hist(x-δx)>thresh;

hist(x)-hist(x+δx)>thresh;

hist(x)>ythresh;

进一步地,所述波峰的数量小于最小数量阈值或大于最大数量阈值时,则确定存在飞虫。具体地,最小数量阈值为minnum,最大数量阈值为maxnum,则满足下述任一条件时,判断为飞虫:

crestcount<minnum;

crestcount>maxnum。

在具体实施中,最小数量阈值的取值范围可以是[1,3],优选地,最小数量阈值minnum=2;最大数量阈值的取值范围可以是[3,7],优选地,最大数量阈值maxnum=5;本领域技术人员应当理解的是,最小数量阈值minnum和最大数量阈值maxnum根据实际应用环境也可以配置为其他任意可实施的数值,本发明实施例对此不做限制。

在步骤s310中,计算有效列比率。具体地,噪声阈值为noisethresh,列像素数直方图f_hist中大于波峰阈值ythresh的列的数量为filtercrestthreshcount,列像素数直方图f_hist中大于噪声阈值列的数量filternoisethreshcount,有效列比率为ratio。有效列比率可以通过以下公式计算:

在步骤s313中,判断有效列比率是否小于比率阈值,如果是,则进入步骤s312,否则,进入步骤s317。

其中,步骤s312表示检测结果存在飞虫;步骤s317表示检测结果不存在飞虫,图像中可以存在其他物体,例如行人、宠物等。

具体地,比率阈值为minratio,则满足下述条件时,判断为飞虫:

ratio<minratio。

在具体实施中,噪声阈值的取值范围可以是[3,7],优选地,噪声阈值noisethresh=5;比率阈值的取值范围可以是[0.1,0.2],优选地,比率阈值minratio=0.15;本领域技术人员应当理解的是,噪声阈值noisethresh和比率阈值minratio根据实际应用环境也可以配置为其他任意可实施的数值,本发明实施例对此不做限制。

在步骤s314中,判断第二图像是否为视频的最后帧,如果是,则进入步骤s315,否则进入步骤s316。

其中,步骤s315表示结束检测,也即对该视频的所有帧图像检测完成;步骤s317表示该视频仍存在未检测的帧图像,因此在步骤s316中,将第二图像赋值给第一图像,并继续步骤s302,直至步骤s314判断第二图像为视频的最后帧。

本发明实施例的飞虫检测方法首先求取视频的相邻两帧图像的像素差异,对差异图像进行二值化,接下来利用腐蚀算法对二值图像进行腐蚀,统计腐蚀图像中的像素值非零的像素个数,判断图像中是否存在运动物体;若存在运动物体,对二值图像求取每列像素值不为0的像素个数,得到列像素数直方图,根据列像素数直方图的统计结果,判断是否存在飞虫。

经过在具体应用场景中的测试,将本发明实施例的飞虫检测方法用于大量测试夜视(也即红外)视频的飞虫检测。与现有技术中的检测算法相比,飞虫的识别正确率上升,误报率和漏报率下降。

本实施例中的具体实施方式可以参照图1至图2所示实施例的相关描述,这里不再赘述。

图6是本发明实施例一种飞虫检测装置的结构示意图。

图6所示的飞虫检测装置60可以包括获取模块601、差运算模块602、统计模块603和第一判断模块604。

其中,获取模块601适于获取待检测的第一图像和第二图像;差运算模块602适于对所述第一图像和所述第二图像进行差运算,并对差运算后的结果进行二值化操作,以得到二值图像;统计模块603适于统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图;第一判断模块604适于根据所述列像素直方图的统计结果确定是否存在飞虫。

具体实施中,由于飞虫在飞行的过程中会在连续拍摄的两幅图像中形成拖影,因此,可以利用图像中的拖影来检测飞虫。获取模块601获取到的第一图像和第二图像的拍摄时机可以在时间上连续。

优选地,由于飞虫在飞行的过程中会在利用红外连续拍摄的两幅图像中形成拖影,因此,所述第一图像和所述第二图像可以为红外图像;所述第一图像和所述第二图像还可以为红外视频中的相邻两帧图像。

具体实施中,差运算模块602可以听对差运算后的结果进行二值化操作,以得到二值图像。本实施例通过二值图像可以将第一图像和第二图像的像素差异以更直观的方式呈现出来。

具体实施中,统计模块603通过对二值图像进行统计,得到二值图像在每列上像素值非零的像素个数,进而得到列像素直方图。本实施例通过列像素直方图可以将第一图像和第二图像出现像素差异的分布位置进行了展示。如果列像素直方图在某列的像素值非零的像素个数多,则表示第一图像和第二图像在该列上存在较多的像素的存在差异;反之,如果列像素直方图在某列的像素值非零的像素个数少,则表示第一图像和第二图像在该列上存在较少的像素的存在差异。

具体实施中,第一判断模块604适于根据所述列像素直方图的统计结果确定是否存在飞虫。换言之,如果在第一图像和第二图像中存在飞虫,则可以在第一图像和第二图像出现像素差异的分布位置,也即列像素直方图的统计结果中表征出来,故,利用列像素直方图的统计结果可以确定是否存在飞虫。

本发明实施例利用飞虫在第一图像和第二图像形成的像素差异值的统计结果的独特性,来确定是否存在飞虫,从而实现了对飞虫的检测,以区别于图像中的其他物体,进而可以在多领域的应用场景中实现更好的监测效果。

图7是本发明实施例另一种飞虫检测装置的结构示意图。

图7所示的飞虫检测装置70可以包括获取模块701、差运算模块702、统计模块703和第一判断模块704。

其中,获取模块701适于获取待检测的第一图像和第二图像;差运算模块702适于对所述第一图像和所述第二图像进行差运算,并对差运算后的结果进行二值化操作,以得到二值图像;统计模块703适于统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图;第一判断模块704适于根据所述列像素直方图的统计结果确定是否存在飞虫。

优选地,列像素直方图的统计结果可以包括波峰的数量和有效列比率。

优选地,第一判断模块704可以包括波峰数量计算单元7041和第一判断单元7042。其中,波峰数量计算单元7041适于计算所述列像素直方图的波峰的数量;第一判断单元7042适于根据所述波峰的数量确定是否存在飞虫。

进一步地,波峰数量计算单元7041可以包括遍历计算子单元70411。其中,遍历计算子单元70411适于遍历所述列像素直方图的所有列,如果所述列像素直方图中存在纵坐标值大于波峰阈值的列,且所述纵坐标值与设定横坐标间隔数量对应列的纵坐标值的差值大于设定差阈值,则所述波峰的数量加一。

进一步地,在所述列像素直方图的设定范围间隔的列数内仅保留一个波峰。为了去除噪声对波峰的数量的计算结果的影响,在设定范围间隔的列数内仅保留一个波峰。

优选地,第一判断单元7042在所述波峰的数量小于最小数量阈值或大于最大数量阈值时,则确定存在飞虫。

优选地,第一判断模块704可以包括第二判断单元7043,第二判断单元7043适于根据有效列比率确定是否存在飞虫,所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。具体而言,由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以利用存在像素差异的列与噪声的关系确定是否存在飞虫。

具体而言,由于二值图像在每列上像素值非零的像素个数不同,因此,可以统计得到列像素直方图的波峰的数量,也即二值图像在每列上像素值非零的像素个数突出的列的数量。由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以通过波峰的数量确定是否存在飞虫。

进一步地,第二判断单元7043在所述有效列比率小于比率阈值时,则确定存在飞虫。所述有效列比率为所述列像素直方图中纵坐标值大于波峰阈值的列的数量与纵坐标值大于噪声阈值的列的数量的比值。具体而言,由于飞虫在第一图像和第二图像上形成的像素差异的位置分布具有一定的特征,因此可以利用存在像素差异的列与噪声的关系确定是否存在飞虫。

本发明实施例通过不同方式的统计结果,来确定是否存在飞虫,可以实现飞虫检测的实施方式多样性,进而增加飞虫检测的准确性。

优选地,图7所示的飞虫检测装置70还可以包括腐蚀模块705、计算模块706和第二判断模块707。其中,腐蚀模块705适于对所述二值图像进行腐蚀操作,以得到腐蚀图像;计算模块706适于计算所述腐蚀图像中像素值非零的像素总数;第二判断模块707适于判断所述像素总数是否大于第一设定阈值,在所述像素总数大于所述第一设定阈值时,则所述统计模块统计所述二值图像在每列上像素值非零的像素个数。

具体实施中,为了减小噪声对飞虫检测的影响,可以对二值图像进行腐蚀操作。如果腐蚀图像中像素值非零的像素总数小于等于所述第一设定阈值,则表示第一图像和第二图像的存在像素值差异的像素比较少,也即第一图像和第二图像基本无差异,可以确定不存在飞虫,则获取模块701可以重新获取待检测的图像。像素总数大于第一设定阈值时,统计模块703可以统计所述二值图像在每列上像素值非零的像素个数,以得到列像素直方图。

优选地,差运算模块702可以包括差异图像形成单元7021和二值图像形成单元7022。差异图像形成单元7021适于对所述第一图像和所述第二图像的所有像素做差并取绝对值,以形成差异图像;二值图像形成单元7022适于对于所述差异图像中的每一像素,如果像素值小于像素阈值,则将该像素的像素值赋值为0,否则赋值为预设的非零值,以形成所述二值图像。

可以理解的是,本实施例中,预设的非零值为255;在具体实施中,预设的非零值也可以是其他任意可实施的大于0的数值,例如,250、225、180等,本发明实施例对此不做限制。

本发明实施例利用飞虫在第一图像和第二图像形成的像素差异值的统计结果的独特性,来确定是否存在飞虫,从而实现了对飞虫的检测,以区别于图像中的其他物体,进而可以在多领域的应用场景中实现更好的监测效果。

此外,采用本发明实施例的飞虫检测方法来检测飞虫,复杂度低,计算量小,从而可以提高飞虫检测方法的适用性。

关于所述飞虫检测装置70的工作原理、工作方式的更多内容,可以参照图1至图3中的相关描述,这里不再赘述。

本发明实施例还公开了一种终端,所述终端可以包括图6所示的飞虫检测装置60或图7所示的飞虫检测装置70。具体而言,飞虫检测装置70可以内部集成于或者外部耦接于所述终端,以用于执行图1或图3所示的步骤。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1