单高斯模型检测运动目标

单高斯模型

定义

单高斯模型是一种图像处理背景提取的处理方法,适用于背景单一不变的场合。可以使用单高斯模型对背景进行建模,然后通过背景减除提取出运动目标。

数学定义

单高斯模型认为,对一个背景图像,特定像素点灰度值的分布满足高斯分布,即对背景图像B,每一个点(x,y)的亮度满足B ( x , y ) ~ N ( μ , σ 2 ) B(x,y)\text{\textasciitilde} N(\mu,{\sigma}^2)B (x ,y )~N (μ,σ2 ),即:
I ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 I(x)=\frac 1 {\sqrt{2\pi}\sigma}e^{-{\frac {(x-\mu)^2} {2\sigma^2}}}I (x )=2 π​σ1 ​e −2 σ2 (x −μ)2 ​
也就是说,每一个像素点都包含两个属性,均值μ \mu μ和方差σ \sigma σ。在提取目标的过程中,首先计算一段时间内的视频序列中图像每一个点的均值和方差,作为背景模型,然后对于一幅包含前景的任意图像G,对G上每一个点(x,y)计算,若:
1 2 π σ e − ( I G ( x , y ) − I B ( x , y ) ) 2 2 σ 2 > T \frac 1 {\sqrt{2\pi}\sigma}e^{-{\frac {(IG(x,y)-IB(x,y))^2} {2\sigma^2}}} > T 2 π​σ1 ​e −2 σ2 (I G (x ,y )−I B (x ,y ))2 ​>T
则认为该点是背景点,否则是前景点,其中T为一个常数阈值,IG(x,y)表示图G中点(x,y)的灰度值,IB(x,y)同理。

随着时间的变化,背景图像也会发生变化,因此需要调整每个像素点的参数:

μ ( x , y , t ) = l r ∗ μ ( x , y , t − 1 ) + ( 1 − l r ) ∗ I ( x , y , t ) \mu(x,y,t)=lr\mu(x,y,t-1)+(1-lr)I(x,y,t)μ(x ,y ,t )=l r ∗μ(x ,y ,t −1 )+(1 −l r )∗I (x ,y ,t )
σ ( x , y , t ) = l r ∗ σ ( x , y , t − 1 ) + ( 1 − l r ) ∗ ( I ( x , y , t ) − μ ( x , y , t ) ) 2 \sigma(x,y,t)=lr\sigma(x,y,t-1)+(1-lr)(I(x,y,t)-\mu(x,y,t))^2 σ(x ,y ,t )=l r ∗σ(x ,y ,t −1 )+(1 −l r )∗(I (x ,y ,t )−μ(x ,y ,t ))2
其中lr是一个常数,表示更新率,lr越大,背景更新的越慢。

Python编码实现

import cv2
import numpy as np

"""
使用单高斯模型检测静止相机下的运动目标
"""
np.set_printoptions(precision=2,suppress=True)

T=3
lr=0.3

cap=cv2.VideoCapture('video.gif')
isFirst=True

while cap.isOpened():
    ret,frame=cap.read()
    if frame is not None:
        gray=cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)

        if isFirst:
            mean=np.zeros(gray.shape)
            var=np.zeros(gray.shape)
            isFirst=False
        else:

            frame[(gray-mean)**2 > T*var,2]=255
            cv2.imshow('tracking',frame)

            mean=lr*mean+(1-lr)*gray
            var=lr*var+(1-lr)*(gray-mean)**2
            if cv2.waitKey(50) and 0xFF ==ord('q'):
                break
    else:
        break

检测效果

静止相机:

单高斯模型检测运动目标

; 非静止相机:

单高斯模型检测运动目标

单高斯模型检测静止相机效果还行,非静止相机完全不能用

Original: https://blog.csdn.net/HuaBother/article/details/121939956
Author: WAChiZhou
Title: 单高斯模型检测运动目标

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/645323/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球