张荣荣,刘晓阳,王金鹏
(中国海洋大学 信息科学与工程学院,山东 青岛 266100)
一种基于图像序列的水下运动目标检测方式
张荣荣,刘晓阳,王金鹏
(中国海洋大学 信息科学与工程学院,山东 青岛 266100)
根据水下运动目标检测的需要,提出改进的Vibe检测算法以适应水下环境中运动目标检测的特点。根据水下成像的特性对图像序列预处理,对于Vibe在首帧建模以及后期背景更新时产生的“鬼影”,在首帧建模时目标区域进行近似的背景填充。针对水下运动目标运动相对缓慢及难以静止的特点在更新方式上采用保守更新与前景计数结合的方式,能较好地适应水下运动目标检测。
图像处理;运动目标检测;Vibe
随着人们对海洋领域的不断探索,对于运动目标检测的关注延伸到水下环境中,这对国防、科研有着重要的意义。运动目标检测[1]是从视频序列中提取出我们想要得到的运动目标,是后期进行目标的识别、分类等行为处理的前提条件,也是目前数字图像处理[2]领域难以很好解决的热点问题。
在目前阶段运动目标检测的常用方法有以下几种:帧间差分法、光流检测法以及背景相减法。光流检测法[3]检测运动目标时会包含目标的三维信息,但是该方法本身计算量非常大,对光照敏感,这就对计算机硬件的运算速度要求很高,很难达到实时检测的效果。帧间差分法[4]运算速度很快,可以很快获得图像帧中的运动区域,但对于运动速度缓慢的目标检测效果差,对于动态场景适应性差,一般情况下差分法可以作为其他检测算法的一种辅助算法,为该种算法提供目标的运动信息。背景相减法[5]是一种有效的检测方法,基于该类方法的算法较多,使用该方法待检测视频帧内的运动目标可以被完整地检测出来,检测速度也相对较快,该类方法的关键是背景模型的建立方式,常见的建模方式有时间平均模型、W4、CodeBook、GMM、SOBS、Vibe等方法,每种方法有其特有的适应性和优缺点。
Vibe[6]是一种基于像素的目标检测方式,由Olivier Barnich等人提出,是一种实用的运动目标检测算法,在不同的视频流、不同的视频场景中都有较好的应用。Vibe在建立模型和更新背景模型[7]上采用领域传播机制以及随机选择机制,这样就可以很快地进行背景的模型建立,从而有效地提高算法的实时性和抵抗噪声的能力。
Vibe的基本思想就是为图像中的每一个像素保存了独有的样本集,其中所有的像素值就是这一个像素在过去的像素值和该像素邻域点的像素值,进而通过对比帧中新的像素值和该像素点对应样本集匹配数目来确定属于目标像素点还是背景点。该算法主要包括模型的基本原理、初始化方式、背景的更新方法三方面内容。
1.1 模型的基本原理
完全可以把运动目标的检测看成一个分类问题,也就是将某一像素点分类为目标还是背景。Vibe检测方法为每个像素点都存储了一个特有的样本集,通过比较帧中新的像素值和该像素点对应样本集匹配数目来判断是否属于目标。
在这里假设v(x)为像素x点的像素值,则x处的背景样本集Q(x)={v1,v2,…vN},其中N为这个样本集的大小;如图1所示,SR(v(x))是以像素点x为中心、半径为R的一个球体,以这个球为标准来比较像素点x与对应的样本集合最近的像素距离。定义#为这个球体中包含样本模型Q(x)中的像素个数,给定一个阈值#min,如果大于或等于#min,该像素点就会被认为是背景。也就是将#min与
#{SRv(x)∩{v1,v2,…vN}}
(1)
进行对比。从图1 可以看出 2-D欧式色彩空间(C1,C2)上,某一个点x的背景模型Q(x)与一个新的像素值v(x)的比较分类过程。
图1 Vibe背景模型
1.2 初始化方式
对一般的检测算法来说,它们的背景模型初始化通常需要一定长度的图像序列来实现,通常要消耗内存和时间,也会导致检测的实时性受影响。Vibe的初始化不需要很多帧,只需要一帧图像就可以完成建模。方法中利用了距离相近的各像素点,它们有着近似的时空分布相关特性,对于某一位置像素点,采用随机选取的方式选择它邻域点的像素值作为该像素的样本值。采用这种初始化的方式,可以较快地检测运动目标,而且计算量很小,运算速度快,当然也存在产生“鬼影”的缺点。
1.3 背景的更新方法
由于光照不会一直不变,因此需要不断地更新背景。通常情况下更新方式有保守的方式,也就是说被判断为前景点的像素始终不会有填充背景的可能性,这种更新方式会产生死锁,比如有一块原本静止的区域如果被错误地检测为运动区域,该区域将始终会被判定为目标,也就不会更新为背景,影响之后的检测结果;还有一种更新方式为盲目策略,不论是目标像素点还是背景像素点都有更新背景的可能,当然如果物体移动得很慢就有可能会融入背景中,从而导致检测出现错误。
对于每一个新的图像帧,没有必要去更新帧中各像素点的模型的样本值,如果一个像素点被检测为背景点,它以1/φ的概率去更新该点对应的背景模型。帧内各被判断为背景的点均有1/φ的概率去更新该背景点对应的模型以及它的邻域点的模型。
对于样本集中样本值的替换方式,这里采取的是随机选取一个样本值的方式,这样某一个样本值在时刻t如果不会被更新,那么概率是(N-1))/N,假定时间是连续的,在dt时间之后,如果样本值仍然保留,那么它的概率就会是
(2)
上式说明一个样本值在背景模型中是不是会被换掉与t没有关系 ,因此随机更新的方式是可行的。
图2 本文方法流程图
传统的Vibe算法在检测速度和检测正确率上都较优,但是算法本身也会有缺点,如第一帧就能进行背景建模,避免了内存的浪费,但是假如首帧中存在检测想要的目标则会产生“鬼影”,之后目标物由静止转为运动状态也会产生“鬼影”。针对水下成像的特点,水下运动目标相对于水上目标来说有运动缓慢且难以静止的特点,本文算法对Vibe算法进行改进以适应水下运动目标的检测,流程如图2。
首先读取视频帧,对该帧进行暗通道先验去雾预处理,对于第一帧进行目标检测,检测到目标则进行目标区域的近似背景填充,检测不到则根据本文Vibe算法进行目标检测,进而输出检测结果。
2.1 水下图像特性分析
图3 图像序列首帧
图3是水下场景中的图像,可以看出,水的复杂成分会对光产生吸收和散射,影响成像质量,使图像的对比度降低,图像有一种雾蒙蒙的感觉,会给检测带来影响。
2.2 水下图像预处理
图像处理算法很多[8],暗原色先验去雾算法[9]是对没有雾的图像数据集进行统计得到规律进而产生的算法,多数情况下没雾的图像中,每个局部区域中有一个特点,有一些像素至少在一个颜色通道上,它们的值很小。可以利用这个先验知识去大体计算图像中雾的浓度,近似将有雾的图片复原从而得到较好的图像。类比水下图像成像的特点,本文将此去雾算法用于水下预处理并进行优化。
2.3 首帧建立模型
针对首帧中存在运行目标的情况,如图3所示,接下来就会产生“鬼影”。需要进行前景区域的近似背景填充,通过帧差法与阈值分割方法结合找到目标区域,然后进行闭运算(先膨胀,再腐蚀)。将目标区域像素用随机选取邻域中是背景的点的像素来填充,图4为填充之后的近似背景图像。
2.4 背景更新方式
水下运动目标具有运动缓慢且难以静止的特点,意味着运动目标更新为背景的机会很小,所以本文在更新方式上采用保守更新方法以及计算前景点连续出现个数M相结合的方式,对运动目标会一直进行检测,同时通过设定阈值M来限制前景更新为背景可能性。
3.1 算法检测效果
本文采用的测试视频Pan.avi为实验室水下摄像机摄制,分辨率为960×576,帧率为30帧/s,视频帧数为1 600帧,Vibe参数设置:N=20,R=20,#min=2,φ=16,M=150。图5、图6为选取视频序列第325、658帧原图像,图7、图8为预处理之后图像,图9、图10为对应两帧的运动目标检测结果,可以看出较好地检测出了目标。
图5 视频第325帧
图6 视频第658帧
图7 视频第325帧预处理
图8 视频第658帧预处理
图9 视频第325帧检测结果
图10 视频第658帧检测结果
3.2 评价指标
评价检测算法优劣的指标有两个:FPS (Number of processed frames per second):每秒能处理的帧数;PCC(Percentages of Correct Classification):像素检测正确率。
表1 算法运行比较
算法检测结果如表1所示。
可以看出本文算法在检测正确率上有一定程度的提升,尽管在检测速度上会有下降,这是由于预处理等操作需要花费时间,但一般摄像机帧率30帧/s可以满足实时检测需求。
本文在Vibe算法基础上进行改进以用于水下运动目标检测,检测正确率有一定的提升,但是检测速率有所下降,下一步工作将考虑进一步优化预处理算法以获得更高的检测速率。
[1] 王亮, 胡卫明, 谭铁牛. 人运动的视觉分析综述[J]. 计算机学报, 2002, 25(3):225-237.
[2] 郭全民, 张海先. 基于图像处理技术的混凝土路面裂缝检测方法[J]. 传感器与微系统, 2013, 32(4):61-64.
[3] LUCAS B D, KANADE T. An iterative image registration technique with an application to stereo vision[C]. International Joint Conference on Artificial Intelligence. Morgan Kaufmann Publishers Inc. 1981:674-679.
[4] LUCAS B D, TAKEO K. An iterative image registration techn-ique with an application to stereo vision[J]. IJCAI, 1981,81(2): 674-679.
[5] CHEUNG S S, KAMATH C. Robust techniques for background subtraction in urban traffic video[J]. Proceedings of SPIE - The International Society for Optical Engineering, 2003, 5308:881-892.
[6] BARNICH O, VAN D M. ViBe: a universal background subtraction algorithm for video sequences.[J]. IEEE Transactions on Image Processing, 2011, 20(6):1709-1724.
[7] 赵光明, 韩光, 李晓飞,等. 基于融合帧间差的改进Vibe方法[J]. 计算机技术与发展, 2015(3):76-80.
[8] 王命全, 张祖莲, 时现伟,等. 数字图片处理算法[J]. 微型机与应用, 2015,34(20):6-8.
[9] 许骏,王直杰. 基于暗通道先验去雾算法的研究与改进[J]. 微型机与应用, 2016, 35(3):53-55.
A method of underwater moving target detection based on image sequences
Zhang Rongrong, Liu Xiaoyang, Wang Jinpeng
(School of Information Science and Engineering, Ocean University of China, Qingdao 266100, China)
For the needs of underwater moving target detection, this paper proposed an improved Vibe detection methods in order to adapt the underwater environment moving target detection features. According to the characteristics of underwater imaging, the preprocessing of the image sequence is carried out. For the "ghost" generated by Vibe during the first frame modeling and the later background update, the target region is filled with approximate background in the first frame. Underwater moving targets move slowly and difficult to stay static, the update mode using conservative updating and foreground counting method. This method can adapt to underwater moving target detection.
image processing; moving objects detecting; Vibe
TP391.41
A
10.19358/j.issn.1674- 7720.2017.13.014
张荣荣,刘晓阳,王金鹏.一种基于图像序列的水下运动目标检测方式[J].微型机与应用,2017,36(13):46-48.
2017-02-11)
张荣荣(1990-),男,硕士研究生,主要研究方向:计算机视觉。
刘晓阳(1992-),女,硕士研究生,主要研究方向:图像处理。
王金鹏(1989-),男,硕士研究生,主要研究方向:图像处理。