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

(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.dtcms.com/a/360775.html

相关文章:

  • 第六章 Vue3 + Three.js 实现高质量全景图查看器:从基础到优化
  • 站在巨人的肩膀上:gRPC通过HTTP/2构建云原生时代的通信标准
  • Goframe 框架下HTTP反向代理并支持MCP所需的SSE协议的实现
  • 【深度学习基础】深度学习中的早停法:从理论到实践的全面解析
  • 【php反序列化字符串逃逸】
  • word运行时错误‘53’,文件未找到:MathPage.WLL,更改加载项路径完美解决
  • Android原生HttpURLConnection上传图片方案
  • mysql导出csv中字段里有换行符的处理办法及hive导出处理办法
  • 印度数据源 Java 对接文档
  • 【DeepSeek】蓝耘元生代 | 蓝耘MaaS平台与DeepSeek-V3.1重构智能应用开发
  • 打造智能写作工作流:n8n + 蓝耘MaaS平台完整实战指南
  • 20.30 QLoRA微调终极指南:Hugging Face参数优化实战,24GB显存直降50%性能不减
  • linux centos 忘记开机密码,重置root密码的两种方式
  • 【C++】类型转换详解:显式与隐式转换的艺术
  • MySQL 慢查询 debug:索引没生效的三重陷阱
  • 【STM32】状态机(State Machine)
  • 力扣每日一刷Day 19
  • RK3399内核驱动实战:获取设备号控制LED的四种方法(由浅入深、代码注释详尽)
  • 【CMake】Ctest,Cpack
  • 电子电气架构 --- 智能电动车EEA电子电气架构(上)
  • Linux | 走进网络世界:MAC、IP 与通信的那些事
  • 【macOS】垃圾箱中文件无法清理的--特殊方法
  • 深度学习跨领域应用探索:从技术落地到行业变革
  • 华为eNSP防火墙综合网络结构训练.docx
  • npm 打包上传命令,撤销错误版本
  • 山东省信息技术应用创新开展进程(一)
  • 设计模式13-迭代器模式
  • OS+MySQL+(其他)八股小记
  • 【lucene】 中的impactsenum与impactsdisi有啥区别?
  • 开源npm引导guide组件