基于单高斯视频背景估计的运动目标分割

这篇具有很好参考价值的文章主要介绍了基于单高斯视频背景估计的运动目标分割。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于单高斯视频背景估计的运动目标分割

原理

基于单高斯视频背景估计的运动目标分割,图像处理与计算机视觉,音视频,opencv,人工智能

上图为单高斯视频背景估计的运动目标分割流程图,主要包括以下步骤:
(1)单高斯背景模型的初始化。
将背景模型初始化为均值 μ ( x , y ) \mu(x,y) μ(x,y)和方差 σ 2 ( x , y ) = 1 \sigma^2(x,y)=1 σ2(x,y)=1的高斯分布。

(2)运动目标分割
利用如下公式对当前帧的每个像素点 I t ( x , y ) I^t(x,y) It(x,y)进行判断,如果像素点的概率值大于阈值 T T
P [ I t ( x , y ) ] = 1 2 π [ σ ′ ( x , y ) ] 2 exp ⁡ { − [ I t ( x , y ) − μ t ( x , y ) ] 2 2 [ σ ′ ( x , y ) ] 2 } > T P\left[I^{t}(x, y)\right]=\frac{1}{\sqrt{2 \pi\left[\sigma^{\prime}(x, y)\right]^{2}}} \exp \left\{-\frac{\left[I^{t}(x, y)-\mu^{t}(x, y)\right]^{2}}{2\left[\sigma^{\prime}(x, y)\right]^{2}}\right\}>T P[It(x,y)]=2π[σ(x,y)]2 1exp{2[σ(x,y)]2[It(x,y)μt(x,y)]2}>T

则判定该像素点为背景点,否则为前景点。实际实现中,可以用以下公式代替判断:
∣ I ( x , y ) − μ t ( x , y ) ∣ < β σ t ( x , y ) \left|I(x, y)-\mu^{t}(x, y)\right|<\beta \sigma^{t}(x, y) I(x,y)μt(x,y) <βσt(x,y)

表示认为正态分布离均值中心 ± β σ t ( x , y ) \pm \beta \sigma^{t}(x, y) ±βσt(x,y)范围内的像素点属于背景。在掩码中将属于背景的像素点置零,其他置1,得到运动目标的分割掩码。用掩码对当前帧分割,即可得到运动目标。

(3) 单高斯背景模型的更新
μ t ( x , y ) = ( 1 − α ) μ t − 1 ( x , y ) + α I t ( x , y ) [ σ t ( x , y ) ] 2 = ( 1 − α ) [ σ t − 1 ( x , y ) ] 2 + α [ I t ( x , y ) − μ t ( x , y ) ] 2 \begin{array}{c} \mu^{t}(x, y)=(1-\alpha) \mu^{t-1}(x, y)+\alpha I^{t}(x, y) \\ {\left[\sigma^{t}(x, y)\right]^{2}=(1-\alpha)\left[\sigma^{t-1}(x, y)\right]^{2}+\alpha\left[I^{t}(x, y)- \mu^{t}(x, y)\right]^{2}} \end{array} μt(x,y)=(1α)μt1(x,y)+αIt(x,y)[σt(x,y)]2=(1α)[σt1(x,y)]2+α[It(x,y)μt(x,y)]2

式中 α \alpha α为更新参数,表示背景更新的速度快慢,取值范围为0~1。 t − 1 t-1 t1表 示 前一 帧, t t t表示当前帧。可以指定到达一定帧数时停止更新。

改进

针对单高斯背景估计算法容易误判背景(将背景点判定为运动目标)的问题,对其进行改进:
(1) 使用形态学方法对掩码进行处理,填补掩码的各个非零区域。
(2) 对输入进行高斯滤波,平滑输入的图像,从而减少因为形态学处理导致的更明显的掩码误判。
(3) 帧差法:将连续两帧的图像数据进行差分法,即进行相减操作, 如果其相减后的绝对值小于阈值,则认为其为背景点,令像素点变为0。 通过帧差法减少背景点的误判。

代码

import cv2
import numpy as np

np.set_printoptions(precision=2, suppress=True)
beta = 1.5  # 前后景区分常数
alpha = 0.015  # 学习率

# 读取视频
cap = cv2.VideoCapture('高速公路.AVI')
isFirst = True
i = 0
while cap.isOpened():
    ret, frame = cap.read()
    if frame is not None:
        i += 1
        print(i)
        gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
        if i == 1:
            mu = np.zeros(gray.shape)
            var = np.ones(gray.shape)
            last = np.zeros(gray.shape)
        else:
            # 标识目标
            gray = cv2.GaussianBlur(gray, (3, 3), 0, 1)
            gray1 = gray.copy()
            gray1[np.abs(gray - mu) > beta * np.sqrt(var)] = 1  
            gray1[np.abs(gray - mu) < beta * np.sqrt(var)] = 0

            gray2 = gray1.copy()
            kernel = np.ones((3, 3), np.uint8)
            kernel2 = np.ones((5, 5), np.uint8)
            gray2 = cv2.dilate(gray2, kernel, iterations=3)
            gray2 = cv2.erode(gray2, kernel2, iterations=1)
            gray2[np.abs(gray - last) < 10] = 0
            gray2 = cv2.dilate(gray2, kernel, iterations=1)
            # 更新参数
            if i<200:
                mu = (1 - alpha) * mu + alpha * gray
                var = (1 - alpha) * var + alpha * (gray - mu) ** 2
            cv2.imshow('RGB', frame)
            cv2.imshow('tracking_gray', gray1 * 255)
            cv2.imshow('tracking2_gray', gray2 * 255)
            cv2.imshow('tracking', np.expand_dims(gray1, -1).repeat(3, axis=2) * frame)
            cv2.imshow('tracking2', np.expand_dims(gray2, -1).repeat(3, axis=2) * frame)

            cv2.waitKey(0)
            last = gray.copy()

            if 0xFF == ord('q'):
                break
    else:
        cap = cv2.VideoCapture('高速公路.AVI')

结果

基于单高斯视频背景估计的运动目标分割,图像处理与计算机视觉,音视频,opencv,人工智能文章来源地址https://www.toymoban.com/news/detail-788567.html

到了这里,关于基于单高斯视频背景估计的运动目标分割的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ZYNQ图像处理项目——帧差法运动目标跟踪

    帧差法顾名思义就是对输入的前后两帧图像做差值,然后检测出两帧图像不同的地方,并且可以实时跟踪运动的目标轮廓。 本设计是基于ZYNQ7010和VIVADO2018.3实现的帧差法运动目标检测,针对运动目标检测算法在传统 PC端上实时性较差的问题,设计了一种基于 ZYNQ 硬件加速的运

    2024年02月07日
    浏览(72)
  • opencv运动目标检测-背景建模

    背景建模 帧差法 由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。 帧差法非常

    2024年02月12日
    浏览(41)
  • yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计

    YOLOv8是一种先进的目标检测算法,结合多种算法实现多目标追踪、实例分割和姿态估计功能。该算法在计算机视觉领域具有广泛的应用。 首先,YOLOv8算法采用了You Only Look Once(YOLO)的思想,通过单次前向传递将目标检测问题转化为回归问题。它使用了深度卷积神经网络,能

    2024年02月20日
    浏览(44)
  • yolov8的目标检测、实例分割、关节点估计的原理解析

    1 YOLO时间线 这里简单列下yolo的发展时间线,对每个版本的提出有个时间概念。 2 yolov8 的简介 工程链接:https://github.com/ultralytics/ultralytics 2.1 yolov8的特点 采用了anchor free方式,去除了先验设置可能不佳带来的影响 借鉴Generalized Focal Loss,使用任务解耦,分别学习box,class。并将

    2024年01月19日
    浏览(44)
  • YOLOv8的目标对象的分类,分割,跟踪和姿态估计的多任务检测实践(Netron模型可视化)

    YOLOv8是目前最新版本,在以前YOLO版本基础上建立并加入了一些新的功能,以进一步提高性能和灵活性,是目前最先进的模型。YOLOv8旨在快速,准确,易于使用,使其成为广泛的 目标检测和跟踪,实例分割,图像分类和姿态估计任务 的绝佳选择。 YOLOv8的安装条件 Python=3.8 Py

    2024年02月11日
    浏览(39)
  • OpenCV开发实战 --(C++/Python) 进行视频中的简单背景估计-附源码

    在许多计算机视觉应用中,您可以使用的处理能力较低。在这种情况下,我们必须使用简单但有效的技术。 在这篇文章中,我们将介绍一种这样的技术,用于在相机静态且场景中存在一些移动物体时估计场景的背景。这种情况并不少见。例如,许多交通和监控摄像头都是固定

    2024年02月16日
    浏览(36)
  • LLM量化、高保真图生视频、多模态肢体运动生成、高分辨率图像合成、低光图像/视频增强、相机相对姿态估计

    本文首发于公众号:机器感知 LLM量化、高保真图生视频、多模态肢体运动生成、高分辨率图像合成、低光图像/视频增强、相机相对姿态估计 EasyQuant: An Efficient Data-free Quantization Algorithm for LLMs Large language models (LLMs) have proven to be very superior to conventional methods in various tasks. Howev

    2024年03月12日
    浏览(57)
  • Python实现视频运动目标检测——帧差法

    Python实现视频运动目标检测——帧差法 在许多场景中,我们需要对视频中的运动目标进行检测。而在这个过程中,帧差法是一种常用的方法。本文将详细阐述Python如何利用帧差法实现视频运动目标检测。 首先,我们需要导入OpenCV库,它是一个强大的计算机视觉库,可以用于

    2024年02月15日
    浏览(40)
  • 【超详细】【YOLOV8使用说明】一套框架解决CV的5大任务:目标检测、分割、姿势估计、跟踪和分类任务【含源码】

    YOLOv8 是Ultralytics的最新版本YOLO。作为最先进的 SOTA 模型,YOLOv8 建立在以前版本成功的基础上,引入了新功能和改进,以增强性能、灵活性和效率。YOLOv8 支持全方位的视觉 AI 任务,包括 检测 、 分割 、 姿势估计 、 跟踪 和 分类 。这种多功能性使用户能够在不同的应用程序

    2024年02月06日
    浏览(40)
  • python 图像处理——图像分割及经典案例篇之基于颜色的图像分割

    前言 作者在第一部分向大家介绍了图像处理的基础知识,第二部分介绍了图像运算和图像增强,接下来第三部分我们将详细讲解图像分割及图像处理经典案例,该部分属于高阶图像处理知识,能进一步加深我们的理解和实践能力。图像分割是将图像分成若干具有独特性质的区

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包