双摄像头的实时视频拼接及目标跟踪(四)

实时视频拼接

本文为CSDN原创文章,转载请注明出处

运动物体检测

对重叠区域进行运动物体检测,来更新拼接模板,目的是为了在不牺牲太多拼接速度的同时保证视频质量。所以检测方法并不需要太复杂,只需实用即可。

检测运动物体采取两种方法,一种是帧差法,一种是直方图统计法。

帧差法的在运动物体检测的思想如下:确定两图像的重合区域,对该区域灰度变换,灰度值范围为[0,255]。再对本帧重合区域各像素点灰度值与前一帧重合区域各像素点灰度值作差,得到两帧拼接图像重合区域的差值diff。再对重叠区域每个像素点的差值diff进行阈值化处理,当差值小于阈值η时,该差值diff被判为0,大于该阈值时,被判为255。如下式所示:
双摄像头的实时视频拼接及目标跟踪(四)_第1张图片

当阈值化处理后,重合区域灰度值为255的像素点的数量大于所设定的阈值时,则判定重合区域内变化较大,有运动物体经过。

直方图统计法,对图像中像素值进行灰度直方图统计。图像直方图是一种基于图像数据分布的图像表示,灰度直方图的灰度值在[0,255]之间,通过统计重叠区域内各像素点的灰度值,得到每个亮度值对应的像素数目从而得到灰度直方图。

实验中,分别统计前后两拼接帧的灰度直方图,然后进行对比,比较两个灰度直方图的相似度similarity,而opencv库中对于直方图相似度的计算有四种方法,分别为相关法(correlation)、卡方法(chi-square)、直方图相交(intersection)、Bhattacharyya距离[,四种计算方法的计算公式如下,其中H1和H2分别表示两个直方图,H1(I)表示直方图1在第I个直条的像素点数量,H2(I)表示直方图2在第I个直条的像素点数量,

双摄像头的实时视频拼接及目标跟踪(四)_第2张图片

实验中,使用相关法进行直方图相似度的计算,其相似度的值在[-1,1]之间。相似度越接近于1,则表明两幅图像的直方图越接近,因此,事先设定一个阈值η,当相似度小于η时,表明两幅图像的直方图相似度不高,即直方图统计区域(重合区域)可能存在运动物体,由此判定需要更新拼接模板。

通过重合区域内运动物体的检测,来自动更新拼接模板以及重新寻找缝合线,来进行基于缝合线的图像融合,以此可以一定程度的消除鬼影。效果如下,
双摄像头的实时视频拼接及目标跟踪(四)_第3张图片
初始化的背景帧

双摄像头的实时视频拼接及目标跟踪(四)_第4张图片

可以发现,当人站在重合区域时,并没有产生鬼影现象,重叠区域得到很自然的过渡,但是帧率得到显著降低。

改进后的流程框图(加入模板更新后)如下,
双摄像头的实时视频拼接及目标跟踪(四)_第5张图片

你可能感兴趣的:(视频实时拼接)