当前位置: 首页 > backend >正文

(3dnr)多帧视频图像去噪 (一)

一、多帧视频图像去噪 原理

        当摄像机每秒捕捉的图像达到60FPS,除了场景切换或者一些快速运动的场 景外,视频信号中相邻的两帧图像内容大部分是相同的。并且视频信号中的噪 声大部分都是均值为零的随机噪声,因此在时间上对视频信号做帧平均,可以 有效的滤除噪声,提高视频质量。尤其是针对静止图像而言,参与帧平均的帧数越 多,时域去噪效果就越好。但是由于实际视频信号中往往存在着运动目标,直接进 行时域帧平均会引起时域非平稳现象,即运动物体产生“拖尾”。为了解决这一 问题,可以采用运动自适应时域去噪和运动补偿时域去噪方法。 

1.1 运动自适应时域滤波 

        由于做时域帧平均需要多帧图像,硬件实现时存储空间成本较高,故大多时域 去噪算法[21-23]都采用递归的方式进行滤波,只需存储一帧参考帧的数据。运动自适应时域去噪类似一个简单的递归滤波器,其数学表现形式如式(3.12)所示:

        其中F(x,y,n)为当前帧含噪像素点(x,y)的输入, \breve{F}(x,y,n-1)为前一帧的点(x,y)时域预测结果,\alpha为时域滤波系数, \breve{F}(x,y,n)为当前帧像素点的时域预测结果。 
时域滤波示意图如图3.2所示,从图中可见时域递归滤波在迭代更新时需要两帧的图像数据,在实时处理的硬件设计中只需前一帧数据的存储,能够较好的节省硬件资源。滤波系数 大小取决于当前像素点运动强度,即当运动强度增大时,滤波系数 值也会相应增大,滤波结果受到参考帧的影响越小,以避免产生“拖尾” 现象。当前点运动强度越小时,滤波系数 值越小,滤波结果会更多的参考前一帧的信息。不难看出运动自适应时域滤波系数的计算是整个时域滤波算法的核心。 

        帧间差分法是一种经典的运动检测方法,其主要思想是对视频信号的相邻两帧直接进行比较来判断是否存在运动区域。若前后两帧之间对应位置的像素点之间差距较大,则会被判断为运动区域。沿时间方向做帧差计算式如式(3.13)所示:

        其中 g_{t+1}(x,y)g_{t}(x,y)分别表示视频信号中第t+1帧和第t帧点(x,y)处的像素灰度值, \Delta g_{t+1,t}(x,y)则表示第t+1帧和第t帧的差值。

1.2运动补偿时域滤波 

        运动自适应时域滤波对于运动程度较小或者是静止图像的去噪效果十分显著, 但是处理运动程度较大的图像区域时,为了有效抑制“拖尾”现象,去噪性能会相 应下降。基于运动补偿的时域去噪方法首先参考两帧图像内容之间的关联性 进行运动补偿,使参考帧的图像内容与当前帧更加接近,再经过加权平均处理后, 就能够在改善去噪效果的同时减少“拖尾”现象的出现。采用带运动补偿的时域去噪方法,可以有效地使滤波过程沿着运动轨迹进行,其计算过程如式(3.14)所示:


其中(ˆx,ˆy)为当前帧与参考帧之间的像素点偏移。运动补偿时域去噪方法示意图如图3.3所示:

        由于运动补偿时域去噪方法的效果很大程度取决于运动补偿算法的好坏,在一些时域非平稳区域,运动补偿算法精确度变低会对去噪效果有较大的影响。因此 一般会通过一个阈值来自适应地控制运动补偿时域去噪和运动自适应时域去噪之 间切换,如果当前点与参考点差值超过该阈值,则选择启用运动补偿,如果差值低于该阈值,则切换到不启用运动补偿的时域去噪方法处理。 
带运动补偿的时域去噪方法在处理运动拖影的问题上表现较好,但其在遇到 场景切换或者高速运动的物体时,已经较难跟踪到运动块,反而会导致运动“拖尾” 现象。并且带运动补偿的时域去噪方法提高去噪性能的同时计算量也相应增大了, 难以满足实时性要求较高的视频处理系统,因此在实时视频处理系统中,非运动补偿的时域去噪方法能够发挥更大优势。

http://www.xdnf.cn/news/19555.html

相关文章:

  • GDAL 简介
  • C++ multiset数据结构的使用情况说明
  • 基于单片机智能饮水机/智能热水壶
  • 正式发布!2025AI SEO公司哪家专业?
  • 【数据分享】多份土地利用矢量shp数据分享-澳门
  • C# FlaUI win 自动化框架,介绍
  • 员工自愿放弃社保,企业给补贴合法吗?
  • Vue3 中 Proxy 在组件封装中的妙用
  • Windows 使用 Compass 访问MongoDb
  • 【HarmonyOS】一步解决弹框集成-快速弹框QuickDialog使用详解
  • 笔记:现代操作系统:原理与实现(1)
  • 卷积神经网络中的两个重要概念——感受野receptive filed和损失函数loss function
  • 【Element Plus `el-select` 下拉菜单响应式定位问题深度解析】
  • 刘洋洋《一笔相思绘红妆》上线,献给当代痴心人的一封情书
  • CUDA编程11 - CUDA异步执行介绍
  • Java 不支持在非静态内部类中声明静态 Static declarations in inner classes are not supported异常处理
  • elasticsearch中文分词器analysis-ik使用
  • Uniapp 生命周期详解:页面生命周期 vs 应用生命周期(附实战示例)
  • 大模型应用开发面试实录:LLM原理、RAG工程与多Agent场景化落地解析
  • gh-pages部署github page项目
  • DAY 20 奇异值SVD分解-2025.9.1
  • 计组(2)CPU与指令
  • (ssh客户端)远程连接工具windterm使用教程(ssh工具、远程工具)
  • MiniCPM-V-4.5:重新定义边缘设备多模态AI的下一代视觉语言模型
  • 飞腾2000+/64核 PCIE扫描异常问题排查
  • COM组件——ServicedComponent 类
  • 【架构师干货】系统架构设计
  • Vue3 + MQTT + 高德地图 实现车辆在线状态与实时位置更新
  • 云手机和云游戏之间有着哪些区别?
  • qData 数据中台【开源版】发布 1.0.4 版本,全面升级数据清洗与资产管理能力