【低光照论文精读】RT-VENet: A Convolutional Network for Real-time Video Enhancement

论文《RT-VENet: 用于实时视频增强的卷积网络》提出了一种新颖的深度学习方法,用于实时增强视频质量。该论文的主要贡献包括:

  1. 实时性能:RT-VENet能够在单个CPU上以45帧每秒(FPS)处理1080p视频,或在Nvidia Tesla P40 GPU上以77 FPS运行。它在速度和质量上都优于现有的最先进方法。

  2. 轻量级网络:网络架构设计非常轻量化,仅使用编码器而无需解码器,使其能够更高效地进行高速处理。网络并不是直接生成像素值,而是预测颜色映射函数来调整光照、色调等属性。

  3. 时序特征聚合:该网络使用时序特征聚合(TFA)模块,确保视频帧之间的时序一致性,解决了视频增强中的闪烁问题。

  4. 多任务通用性:该方法足够通用,能够处理如重新打光、修图和去雾等多种增强任务,并在基准数据集上表现出优异的性能。

  5. 高效性:该方法显著降低了计算复杂性,处理速度比其他实时方法快约10倍,同时保持高质量的输出。

在论文的第3部分 “Approach”(方法) 中,作者详细介绍了RT-VENet的设计和实现,涵盖了问题的具体表述、网络架构的设计以及损失函数的使用。下面是该部分的详细解释:

3.1 Problem Formulation(问题表述)

在这个部分,作者定义了视频增强的问题。他们指出,许多现有的方法使用密集的像素预测(dense pixel-wise prediction),但这些方法通常伴随着高计算开销。因此,RT-VENet采用了颜色映射函数来简化计算。

挑战

  • 单一的全局颜色映射函数无法准确描述复杂的图像处理任务,尤其是局部的颜色变化。
  • 如何在没有参考图像的情况下自动完成图像的颜色调整。

解决方案

  • 受传统基于尺度的图像滤波的启发,RT-VENet通过将图像划分为多个“网格块”来进行局部颜色映射。这些网格块(grid-like tiles)能够捕捉细微的局部细节,同时兼顾全局的上下文信息。
  • 每个网格块都会生成一个分段线性函数,用于将输入像素的颜色值映射到目标像素。这些颜色映射函数以网格的形式分布,适应局部的颜色变化,同时确保生成图像的平滑性。

公式:

  • 颜色映射函数定义为分段线性函数:
    [ ϕ g ( x ) = ∑ l = 0 L − 1 k l g δ l ( x ) ] [ \phi_g(x) = \sum_{l=0}^{L-1} k_l^g \delta_l(x) ] [ϕg(x)=l=0L1klgδl(x)]
    其中,k_l^g是每个线性函数的斜率,L是分段数,x是输入颜色值。

3.2 Video Enhancement Network(视频增强网络)

该部分介绍了RT-VENet的网络架构,分为两个部分:
在这里插入图片描述

Baseline Image Network(基础图像网络)
  • RT-VENet的基础网络是一个轻量级编码器网络,类似于MobileNetV2。
  • 输入的图像首先被缩小到较小的分辨率,然后通过编码器转换为潜在特征表示。编码器的输出是一个特征图,其中每个像素代表网格块中的一个区域。
  • 编码器后面接着一个“小型头部”,由几层1×1卷积组成,用来生成颜色映射函数的参数。
Temporal Feature Aggregation(时序特征聚合,TFA)

为了保持视频帧之间的时序一致性,RT-VENet在基础图像网络中引入了时序特征聚合模块(TFA),其作用是:

  • 特征匹配:相邻帧之间的相似度通过特征匹配来衡量。对于相似度高的静止区域,当前帧和前一帧的特征会被聚合,减少不必要的变化;而对于运动区域,主要依据当前帧的特征。
  • 特征融合:通过对当前帧和前一帧的特征进行加权融合,TFA模块能确保静止区域的输出稳定一致,并能自适应处理运动区域的变化,减少视频中的闪烁问题。

TFA的工作原理基于特征匹配后的加权融合,公式为:
[ f t ∗ = w c o ( f t + f t − 1 ) ⊙ M g + ( 1 − 2 w c o ) f t ] [ f_t^* = w_{co}(f_t + f_{t-1}) \odot M_g + (1 - 2w_{co}) f_t ] [ft=wco(ft+ft1)Mg+(12wco)ft]
其中,f_tf_{t-1}是当前帧和前一帧的特征,M_g是特征匹配的相似度,w_{co}是控制前一帧特征影响权重的参数。

3.3 Loss Function(损失函数)

为了保证增强效果和时序一致性,RT-VENet采用了多种损失函数:

  1. Reconstruction Loss(重建损失)

    • 使用L1损失来衡量生成图像与目标图像的差异,确保增强结果在像素级别上接近目标图像。
      [ L r = ∣ ∣ I t − I ^ t ∣ ∣ 1 ] [ L_r = || I_t - \hat{I}_t ||_1 ] [Lr=∣∣ItI^t1]
  2. Perceptual Loss(感知损失)

    • 基于VGG-19的感知损失,用于衡量生成图像与目标图像在高层次特征上的相似性。这种损失确保增强结果在视觉上更接近人眼的感知。
      [ L p = ∣ ∣ Ω ( I t ) − Ω ( I ^ t ) ∣ ∣ ] [ L_p = || \Omega(I_t) - \Omega(\hat{I}_t) || ] [Lp=∣∣Ω(It)Ω(I^t)∣∣]
  3. Smooth Loss(平滑损失)

    • 由于每个网格块生成的映射函数是独立的,因此可能会在网格边界处产生不平滑的伪影。为了避免这种情况,加入了平滑损失,鼓励相邻像素的增强结果保持一致。
      [ L s = ∑ p ∇ I t 2 / ∣ ∣ ∇ log ⁡ I t ∣ ∣ θ ] [ L_s = \sum_p \nabla I_t^2 / || \nabla \log I_t ||_\theta ] [Ls=pIt2/∣∣∇logItθ]
  4. Temporal-consistency Loss(时序一致性损失)

    • 该损失用于显式约束帧间一致性,减少相邻帧之间的不必要变化,尤其是对于特征高度匹配的区域。
      [ L t e m p = ∑ g ∣ ∣ ( ϕ t g − ϕ t − 1 g ) ⊙ M g ′ ∣ ∣ 1 ] [ L_{temp} = \sum_g || (\phi_t^g - \phi_{t-1}^g) \odot M_g' ||_1 ] [Ltemp=g∣∣(ϕtgϕt1g)Mg1]

小结:

RT-VENet通过轻量级网络架构、高效的颜色映射函数和时序特征聚合模块,实现了在高效条件下的实时视频增强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/140786.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

QT Layout布局,隐藏其中的某些部件后,不影响原来的布局

最近在工作时,被要求,需要将布局中的某些部件隐藏后,但不能影响原来的布局。 现在记录解决方案! 一、水平布局(垂直布局一样) ui中的布局 效果: 按钮可以任意隐藏,都不影响其中布…

基于双PI矢量控制结构和SVPWM的风力发电系统Simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 PMSM数学模型 4.2 双PI控制结构 4.3 SVPWM 5.完整工程文件 1.课题概述 风力发电系统的核心是风力发电机,常见的有永磁同步发电机和感应发电机(IG)。这些发电机通…

电子电气架构 --- 基于ISO 26262的车载电子软件开发流程

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不…

k8s中控制器的使用

目录 一、什么是控制器 二、控制器常用类型 三、replicaset控制器 1、replicaset功能 2、replicaset参数说明 3、replicaset示例 四、deployment控制器 1、deployment控制器的功能 2、deployment控制器示例 (1)版本迭代 (2&#x…

匹配行最大值替换为最小值公式

好的!我们一步一步详细讲解这个公式的作用和如何实现你想要的功能。 ### 数据结构假设: - 你的数据在 A、B、C 列中,每一行都有值。 - 需要在 A 列和 B 列相同的行中,找到 C 列中的最大值,将其替换为最小值,其他值保持不变。 ### 公式: ```excel =IF(C2=MAX(IF(($A$2:$…

后续学习规划 ----含我个人的学习路线,经历及感受

目前的基础 开发相关(最重要) 1.Java SE 从入门到起飞 2.Java Web开发 3.苍穹外卖 以上三个是和开发相关的基础。 我是按照书写的顺序学习的,有需要的朋友可以参考。 计算机相关 其他的话,都是比较久远的了。隔得时间一年半…

计算机二级office操作技巧——Excel篇

文章目录 函数公式总结写在前面五大基本函数sum求和函数average求平均函数max求最大值函数min求最小值函数count求个数函数 rank排名函数if逻辑判断函数条件求个数函数countif单条件求个数函数countifs多条件求个数函数 条件求和函数sumifs多条件求和函数sumproduct乘积求和函数…

Oracle从入门到放弃

Oracle从入门到放弃 左连接和右连接Where子查询单行子查询多行子查询 from子句的子查询select子句的子查询oracle分页序列序列的应用 索引PL/SQL变量声明与赋值select into 赋值变量属性类型 异常循环游标存储函数存储过程不带传出参数的存储过程带传出参数的存储过程 左连接和…

QT模型视图结构2

文章目录 Qt 模型视图结构——模型类(二)1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色 Qt 模型视图结构——模型类(二) ​ 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模型存储数据,视图组件显示模型中的数据&#…

【有啥问啥】自动提示词工程(Automatic Prompt Engineering, APE):深入解析与技术应用

自动提示词工程(Automatic Prompt Engineering, APE):深入解析与技术应用 引言 随着大语言模型(LLM)如 GPT、BERT 等的快速发展,如何高效地与这些模型进行互动成为了重要的研究方向之一。提示词&#xff…

神经网络通俗理解学习笔记(3)注意力神经网络

Tansformer 什么是注意力机制注意力的计算键值对注意力和多头注意力自注意力机制注意力池化及代码实现Transformer模型Transformer代码实现 什么是注意力机制 注意力机制的发展史 Attention Mechanism Mnih V, Heess N, Graves A. Recurrent models of visual attention, 2014…

JavaScript - 异步编程

1. 前言 在 JavaScript 中,异步编程是一种处理需要等待操作(如网络请求、文件读取或计时器)的编程方式。由于 JavaScript 是单线程的,意味着它一次只能执行一个任务。异步编程允许你在等待某些操作完成时,继续执行其他…

【技术调研】三维(4)-ThreeJs阴影投射、光线投射及案例

阴影投射 阴影是灯光经过物体后产生的,几个关键的设置: 灯光属性设置:.castShadow : Boolean 。此属性设置为 true 灯光将投射阴影。注意:这样做的代价比较高,需要通过调整让阴影看起来正确。 查看 DirectionalLight…

CAD_Electrical 2022使用记录

一、CAD软件实用调整 1、如何调节窗口背景颜色 例如:将图中白色的背景色调节为黑色。 步骤:在CAD空白区域点击右键 -> 点击选项 -> 在显示中点击颜色(窗口元素) -> 将二维模型空间统一背景的颜色修改成需要的颜色 2、如何调节关标大小 例如&a…

如何精确统计Pytorch模型推理时间

文章目录 0 背景1 精确统计方法2 手动synchronize和Event适用场景 0 背景 在分析模型性能时需要精确地统计出模型的推理时间,但仅仅通过在模型推理前后打时间戳然后相减得到的时间其实是Host侧向Device侧下发指令的时间。如下图所示,Host侧下发指令与De…

发展与监管协同发力 人工智能算法领域已形成良好生态

发展与监管协同发力 人工智能算法领域已形成良好生态 近日,全国组织机构统一社会信用代码数据服务中心对国家网信办公示的人工智能领域备案信息进行了详尽的分析,揭示了我国人工智能产业的蓬勃景象。据统计,我国人工智能领域的备案主体遍布各…

MySQL之表的约束

目录 前言 一:空属性 二:默认值 三:列描述 四:zerofill 五:主键 六:自增长 七:唯一键 八:外键 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 前言 表中一定要有各种约束,通过约束…

零倾覆力矩点(ZMP)

系列文章目录 前言 在机器人学中,零倾力矩点(ZMP)是一个特征点,主要用于足式运动。在下文的一些假设中,我们将看到,它非正式地代表了一个系统接触反作用力的结果点。例如,下图中的刚体处于静态平…

【深入理解SpringCloud微服务】深入理解nacos配置中心(四)——配置新增或修改源码分析

【深入理解SpringCloud微服务】深入理解nacos配置中心(四)——配置新增或修改源码分析 原理回顾源码分析ConfigController#publishConfig()ConfigOperationService#publishConfig()nacos事件监听机制ConfigChangePublisher#notifyConfigChange()NotifyCe…

在 FlexSim 中使用 OpenUSD 分析、可视化和优化现实世界的流程

对于制造和工业企业而言,效率和精度至关重要。为了简化运营、降低成本和提高生产力,各公司正在转向数字孪生和离散事件模拟。 离散事件模拟使制造商能够通过试验不同的输入和行为来优化流程,这些输入和行为可以逐步进行建模和测试。 FlexSi…