基于背景差分的船舶运动检测
2021-05-23王正辉李文华陈先国
王正辉 李文华 陈先国
摘要:针对在内河航道航行的船舶,由于船舶的航行速度和船舶自身运动带来周围水波纹扰动等相关因素,使得像混合高斯模型等一般的物体运动检测算法不能很好的工作,由此提出了一种有效的背景建模策略,并通过最大类间方差法来消除水波纹等噪声的干扰。实验结果显示,该方法可以实时工作,并取得较好的效果。
关键词:背景建模;运动目标检测;水波纹消除;噪声;船舶
中圖分类号:TP391.41 文献标识码:A
文章编号:1009-3044(2021)11-0229-02
Ship Motion Detection Based on Background-difference Method
WANG Zheng-hui1, LI Wen-hua1*, CHEN Xian-guo2
(1.Yangtze University, Jingzhou 434000, China; 2.Hubei Lanyu Navigation Mark Equipment CO.,LTD, Jingzhou 434000, China)
Abstract: For ships sailing in inland waterways, the general object motion detection algorithms such as Gaussian mixture model can't work well due to related factors such as the surrounding water ripple disturbance caused by the ship's sailing speed and the ship's own movement, so an effective background modeling strategy is proposed, and the interference of noise such as water ripples is eliminated by the maximum between-class variance method . Experimental results show that this method can work in real time and achieve better results.
Key words:background modeling; moving target detection; elimination of water ripple; noise; ship
1 引言
近年来,各地提出了智慧公交、智慧城市等概念,在航道建设方面,也提出了建设智慧航道的需求[1],以此更加高效地管理和维护航道。智慧航道的建设不仅仅需要依靠船舶自身的AIS(Automatic Identification System)信息,同时还需要在航道上建立CCTV(Closed Circuit Television)监控网络,通过视频监控来监测航道上船舶上下游的数量、吨位等数据。其中船舶运动检测又是最为基础的一项工作,如何有效的检测船舶运动成为一项重要任务。
对于船舶监控视频的运动目标检测,因摄像头安装位置和角度的不同,在运动检测中会有不同的噪声干扰。当摄像头在桥顶部监控船舶时,船运动产生的水泡和船体阴影是主要噪声,而由于摄像头距离的原因,树叶的摇摆,水面的浅波纹等噪声可以忽略不计。针对水泡和船体阴影的噪声,腾飞[2]等人利用视觉注意机制生成显著图,对显著图进行自适应分割,然后与改进的混合高斯建模背景减除法进行融合,从而检测船体。但由于混合高斯模型自身的原因,当船舶运动速度较慢时,船舶中部的像素值变化相对于稳定,会被识别为背景,造成船体被分割开来,进而影响检测。李双双[3]等人通过码本模型和显著性区域检测相结合的算法生成显著图,通过Otsu(最大类间方差法)对显著图做二值化与码本模型[4]进行运算来得出船舶目标,可以消除噪声干扰,但由于运算量比较大,不能达到实时的效果。
针对这些问题,本文提出了一种简易的背景建模方法,在背景变化不剧烈的情况下可以稳定运行,不会造成误差的累积。同时算法可以检测到缓慢运动的船舶。对于噪声,主要是船舶的水面阴影和船舶运动造成周围水的波动。根据对这些噪声的分析,发现可以通过最大类间方差法来去除。
2 背景建模
背景建模的主要目的是建立一个相对稳定的背景图像,然后使用背景差分[5]来检测运动的物体。实际上,对于船舶监控视频来说,背景通常是大面积的水域,很少有其他干扰的物体,所以背景在大部分时间是不会有较大的变化,最大的变化来自天气,光照。而这些变化一般并不是瞬间完成,除了极少数由于云层的运动导致阳光的忽亮忽暗可能会对背景产生较大的影响。
目前主流的背景建模的方法是混合高斯背景建模算法,混合高斯背景建模的理论基础是每个像素的变化是符合高斯分析。如图1,所以可以使用一个高斯分布来建立背景模型,但是考虑到其他各种情况,比如树的摇摆,会产生各种不同的噪声,实际情况采用来多个高斯分布来建立背景模型,这样模型更具有鲁棒性。但是对于河道监控,大部分时候相机是对准水面,只有少部分岸边景物在图像边缘,并不会对水域区域的背景产生影响,所以本文提出来一个水域面上背景建模的方法。
根据上面理论,每个像素在无运动物体干扰时,像素值的波动是符合高斯分布的,所以可以为每一个像素建立一个类似单高斯模型,均值自适应更新,保证能跟随环境变化而更新背景,方差为人为设定。算法步骤如下:
假如有如下连续帧:
[I(x,y,1),I(x,y,2),...,I(x,y,n)]
(1)每个像素初始化学习率为0;
[A=0]
(2)默认第一帧为背景图像;
[B(x,y)=I(x,y,1)]
(3)计算当前视频帧与背景差的绝对值;
[C(x,y)=|B(x,y)-I(x,y,i)|]
(4)將C(x,y)中像素值代入以下函数计算出学习率;
[a=e-c220]
(5)更新背景。
[B(x,y)=(1-A)B(x,y)+AI(x,y,i)]
3 运动检测
混合高斯背景建模融合了背景建模和运动检测,模型会使用一小段时间的视频帧进行训练,每个像素会以权重的形式将几个不同的高斯分布进行组合,当后续的像素值变化不在这几个高斯分布时,就会被判断成前景,从而可以检测到移动的物体。但这样并不能很好的检测慢速较长物体,比如货船。货船一般从视频下方出现,由于货船的形状和体积导致会在某一块区域形成较为稳定的像素值,而这块区域往往会被错误地识别为背景,导致不能检测整个船体。
在本文的背景建模中,像素值改变超过10的学习率几乎为0,这表明这点像素值并不会进行更新,故当有运动物体经过时,此时存在物体的区域差值会较大,从而可以检测到运动物体,但往往噪声也会导致差值超过10,所以需要区分噪声和运动物体。这里采用Otsu来将噪声和运动物体分割开来。由于在水面上航行的船舶最大的噪声是船体的阴影和船体产生的噪声,而这两者与船舶本身相比,差值会明显小一些,从而可以找到一个阈值将噪声和船体分割开来。算法步骤如下:
(1)初始化阈值T,将差值超过20的像素集分为运动物体像素和噪声像素;
(2)分别计算运动物体像素的占总像素的比值p1和平均灰度值m1,噪声像素占总像素的比值p2和平均灰度值m2;
(3)计算全局平均灰度值;
[m=p1×m1+p2×m2]
(4)计算类间方差;
[g=p1×m-m12+p2×m-m22]
(5)重复1-4直到找到使g最大的T值。
结果如下图所示。
如图2使用了Otsu来进行噪声和船舶主体进行分割,可以把较为准确地分离船和噪声,而图3则没有使用Otsu进行分割,包含了许多噪声。
4 实验结果
如图所示,图5为使用混合高斯背景建模算法进行运动目标的检测,可以发现由于船舶形状的特殊性,造成目标检测时,船的主体被误识别为背景,从而造成识别的目标四分五裂。图6为本文算法所提取的运动目标,虽然船体没有很完整的识别出来,但是仍能保证整个船体的识别和噪声的去除。实验结果表明,本文所提出的方法确实有效,并通过实验可以在实时环境下运行。
5 结论
本文提出了一种简易的背景建模算法和水波纹噪声去除方法,针对缓慢变化的视频帧背景可以有效进行更新,并可以准确提取出航道上缓慢运动的船舶,为后续获取船舶更多数据打下基础。但本文提出的背景建模算法还存在一定缺陷,没有进行初始图像的鬼影消除,这也是后续需要研究的内容。
参考文献:
[1] 汪玚.更科学、更灵活、更安全、更智能 当“新基建”遇上航道:让“智慧”尽其用[J].交通建设与管理,2020(2):39-41.
[2] 滕飞,刘清,朱琳,等.波纹干扰抑制下内河CCTV系统运动船舶检测[J].计算机仿真,2015,32(6):247-250.
[3] 李双双,安居白,李春庚,等.基于背景差分和视觉显著性的运动船舶检测方法[J].物联网技术,2018,8(1):17-20.
[4] Kim K,Chalidabhongse T H,Harwood D,et al.Real-time foreground-background segmentation using codebook model[J].Real-Time Imaging,2005,11(3):172-185.
[5] 张前,赵新雪.运动目标检测方法综述[J].电子世界,2019(4):65.
【通联编辑:梁书】