弱小目标运动检测算法

    静态背景下运动目标检测方法主要有帧间差分法、高斯背景建模(GMM)、光流法、Vibe算法等。但上述几种方法对于弱小目标的检测效果比较有限。帧差法无法有效区分噪声和运动目标,且对阈值选取非常敏感,在进行开闭运算时会将背景噪声去除的同时将弱小目标滤除。背景建模方法以及光流法计算量大,无法满足大尺寸图像实时检测的要求。

    通过研究图像序列发现,弱小运动目标在相邻两帧中的位置不会有突变。即在空间和时间上有连续性。如果第k帧图像fk在(x,y)处存在弱小目标,则弱小目标会出现在第 k+1帧图像fk+1 中 (x,y)小邻域内。即在上一帧目标出现的位置,在当前帧的位置邻域内仍然会出现。而噪声在图像中往往是随机分布的,上一帧中出现噪声的位置在当前帧中很可能消失。

弱小目标运动检测算法_第1张图片

    上图场景中包含无人机、广场中步行的7个行人、以及树叶抖动的噪声。左图为原图像,右图为图像帧差法进行二值化后的图像,二值化后的图像其绝大部分灰度值为0,少部分灰度值为1。灰度值为1的像素点可能是真实目标,同时也可能噪声点。白色矩形框为目标区域,存在无人机飞行,粉色矩形框内存在树叶抖动区域,即噪声区域。为对目标和噪声的时空特性清晰表示,对整幅图像进行截取放大。

弱小目标运动检测算法_第2张图片

弱小目标运动检测算法_第3张图片

    经过上述对比,可以看出运动目标在图像中存在时空连续性,而噪声点不具备该特征。

    利用目标运动的时空连续性,构建目标短时运动轨迹,将目标与噪声进行区分,从而提高目标检测准确性。

    首先对图像序列进行帧差操作,即前后两帧图像相减,选取适当阈值进行二值化,得到候选目标图像Dk 。候选目标图像为二值化序列,其中可能包含运动目标和噪声点,下一步将对候选目标图像进行时空连续性判别,以对运动目标和噪声进行区分。

    保存最近n帧候选目标图像结果建立FIFO(First In First Out)先进先出通道,当新的一帧图像到来时,与前一帧图像进行帧差运算,然后将差值后二值化结果加入到FIFO通道中,同时,通道头部的一帧候选目标图像会被舍去。

弱小目标运动检测算法_第4张图片

    记录通道中第k帧图像灰度值为1的点为候选目标点xi,以第k帧每个候选目标为中心建立m*m的窗口Wi,计算单幅图像单个窗口贡献度Qi


    对通道内图像每个窗口位置贡献度进行累加,计算候选目标置信度P(xi)

弱小目标运动检测算法_第5张图片

    由于运动目标时间和空间的连续性,在真实目标所处的窗口位置必然会有多帧图像存在灰度值为1的像素点,而孤立的噪声点由于分布随机,窗口内灰度值累加较少,因此可以给窗口贡献度设定门限(T=n/2),超过这一门限则认为该窗口中存在目标,记录第k帧图像该窗口内灰度值为1的位置即为目标所在的位置。通过这一操作,可以去除大部分的孤立噪声点,保留真实目标。

    但在真实目标窗口内,仍然可能会存在噪声,如上图通道中第k帧二值化图像中真实目标窗口内存在噪声点会导致无法对目标和噪声进行区分。通过对序列进一步分析,两帧图像之间目标运动位移一般不超过两个像素点,对通道内窗口区域灰度值进行适当“膨胀”操作,随后相邻两帧差分图像进行“与”运算,可去除窗口内的噪声。

    但需要注意的是,在目标存在运动的前提下,通道中部分二值化图像中可能未检测出目标,如上图通道内第k-1帧二值化图像中,相邻图像帧直接进行“与”操作可能会导致真实目标的丢失。因此,首先对像素灰度值累加为0的窗口进行剔除,随后相邻两帧进行“与”运算,记录运算结果,超过一定阈值的才被认为是目标,后续可以转入实时目标跟踪算法。有关实时跟踪算法可以参考:https://download.csdn.net/download/u010205478/10480352

    将帧差法、高斯背景建模、Vibe算法以及本文的目标检测方法含弱小目标的图像序列进行测试,将检测结果分别进行定性和定量分析,图中包含1个无人机目标以及7个广场行人目标:

弱小目标运动检测算法_第6张图片

弱小目标运动检测算法_第7张图片

定义精确度(precision)为检测出的正确目标数量/检测出的所有目标的数量,定义召回率(recall)为检测出的正确目标数量/真实目标数量。

本文算法相较于帧差法、GMM、Vibe能够更有效地区分噪声和弱小目标,从而有较高的精确度以及召回率。


你可能感兴趣的:(弱小目标运动检测算法)