ABSTRACT
近年来,微光视频增强技术受到了越来越多的关注.LLVE的关键要求之一是帧间亮度一致性,这对于保持增强视频的时间相干性至关重要。然而,现有的基于单幅图像的图像增强方法大多无法解决这一问题,导致图像增强后的闪烁效应降低了图像的整体质量。此外,基于3D卷积神经网络(CNN)的方法(其被设计用于视频以保持帧间一致性)在计算上是昂贵的,使得它们对于实时应用是不切实际的。为此提出了一种利用查找表(Look-Up-Table,LUT)技术有效保持帧间亮度一致性的流水线FastLLVE算法。具体地说,我们设计了一个可学习的亮度感知查找表(IA-LUT)模块,用于自适应增强,以解决低光照场景下的低动态问题。这使FastLLVE能够执行低延迟和低复杂度的增强操作,同时保持高质量的结果。在一系列标准数据集上的实验结果表明,采用该方法得到的图像质量和帧间亮度一致性均达到了SOTA(State Of The-Art)的要求.更重要的是,我们的FastLLVE能够以每秒50+帧(FPS)的速度处理1, 080 p视频,这比基于SOTA CNN的方法在推理时间上快2倍,使其成为一个有前途的实时应用解决方案。该代码可在https://github.com/Wenhao-Li777/FastLLVE上获得。
1 INTRODUCTION
弱光视频增强(LLVE)是一项长期以来的研究课题,旨在将弱光视频转换为具有更好可视性的正常光视频,近年来受到了广泛的关注。在低光照条件下,视频经常会出现纹理退化和对比度低的问题,导致能见度差,高级视觉任务严重降级。与基于较高ISO和曝光的传统方法(可能导致噪声和运动模糊)不同[4],LLVE提供了一种有效的解决方案,可提高在极低光照条件下拍摄的视频的视觉质量。此外,它可以作为一个基本的增强模块,用于广泛的应用,视觉监控[46]、自动驾驶[18]和无人机[31]。
像其它典型的视频任务,例如视频帧插值[33,34,42]和视频超分辨率[8,19-21,32,48]一样,LLVE也需要时间稳定性。此外,LLVE固有的不适定性质使其成为一项更具挑战性的任务。因此,尽管弱光图像增强(LLIE)已经表现出显著的性能,但是将这些基于图像的方法递归地应用于视频帧是不可行的。因为它是耗时的,并可能导致闪烁的效果,在增强的视频。如[10]中所揭示的,闪烁问题是由相邻帧之间的亮度不一致引起的。为了解决这个问题,最近的LLVE方法利用时间对准[38]和3D卷积(3D-Conv)[10,23]来建立视频中的空间-时间关系。他们还采用了自一致性[2,51]作为辅助损耗来指导网络保持亮度一致性。然而,基于对齐的方法,其目的是估计相邻帧之间的对应像素,容易产生误差,并且会导致增强视频中的对象失真。相比之下,3D-Conv能够捕获全面的空间-时间信息,但是以更大的计算复杂度为代价。因此,先前的方法已经发现在效率和性能之间取得平衡是具有挑战性的。总之,一个考虑周全的LLVE方法应该解决以下挑战性问题:
·病态问题。在弱光视频中,颜色空间的低动态范围可导致对于不同目标颜色出现相似的颜色输入。这一现象导致了一对多映射问题,在复杂场景下很难解决。为了解决这个问题,先前的方法[10,23,38]已经利用了全局上下文信息和局部一致性来增强不同的颜色。尽管它们各自有效,但是由于它们严重依赖于上下文提取的精度和可靠性,这些方法受到关于颜色处理的不稳定性的困扰。
·亮度一致性。在输出视频中保持亮度一致性对于在LLVE中实现高感知质量至关重要。然而,当前的基于对齐的方法[38]经常无法实现相邻帧之间的精确对齐,导致LLVE的输出不稳定。另外,用于提高这些方法的稳定性的自洽损失函数[2,51]也不能解决基本不稳定性问题。这种限制妨碍了它们有效地提高其整体视觉质量的能力。
·效率。尽管3D-Conv方法已经通过利用综合的空间-时间信息[10,23]在视频增强任务中显示出显著的改进,但是它们与繁重的计算复杂度相关联。这使得它们对于需要实时增强的真实世界应用是不切实际的。
为了解决上述问题,本文提出了一种新的框架--FastLLVE。我们的方法建立了一个稳定和自适应的查找表(LUT),以实现实时LLVE。特别地,我们设计了一个亮度感知LUT(IA-LUT)来将RGB颜色从一个颜色空间转换到另一个颜色空间,它可以处理LLVE中常见的一对多映射问题。与存储颜色值的一对一映射关系的传统LUT不同,我们的IA-LUT存储关于每个像素的可学习增强强度的一对多映射关系。为了提高我们的方法的泛化能力,我们遵循参数化方法[50],并将一组基本LUT与动态权重相结合。重要的是,我们的方法本质上保持了帧间亮度的一致性,因为基于LUT的逐像素变换与具有相同RGB值和增强强度的所有像素一致。此外,该方法计算效率高,适用于实时视频增强。为了解决LUT可能无法处理的噪声问题,尤其是在极低光照条件下,我们简化了一种常见的去噪方法[3],以整合一个插件式去噪细化模块FastLLVE-dn,该模块以牺牲一定效率为代价进一步提高了性能。值得注意的是,其他去噪方法可以很容易地取代所使用的方法。如图1所示,我们的两种模型在峰值信噪比(PSNR)方面均显著优于现有方法,而FastLLVE的实时处理速度超过了50帧/秒(FPS)。
本文的贡献可以概括如下:
我们提出了一种新的基于LUT的框架,命名为FastLLVE,用于实时低光照视频增强。
我们设计了一个新颖的轻量级的亮度感知查找表,它解决了LLVE中的一对多映射问题。
大量的实验表明,FastLLVE在大多数情况下都达到了SOTA的结果,推理速度超过50 FPS。
2 RELATEDWORKS
2.1 Low-light Image Enhancement
弱光增强的研究始于传统的LLIE方法,包括直方图均衡化[9,27,37]和Retinex理论[5,6,16,40]。然后,深度学习方法[15,23,26,28,39,47,53]在有效性,效率和泛化能力方面表现出巨大的优势。Lv等人[23]提出了一种多分支网络,该网络从不同层次提取丰富的特征,通过多个子网增强弱光图像。Wang等人[39]引入了中间照明,而不是直接学习图像到图像映射。Pan等人[28]提出了一种新的模型学习方法,用于估计逐像素调整曲线并递归地重建输出。Zhou等人[53]专门设计了一个网络,用于联合低光增强和去模糊。
2.2 Low-light Video Enhancement
LLVE是LLIE的扩展,对亮度一致性提出了额外的要求,如[15]所述。现有的LLVE方法通过三种常见的解决方案来解决这一挑战,即3D卷积,特征对齐和自一致性。Lv等人[23]将他们提出的LLIE网络的所有2D-Conv层交换为3D-Conv层,以实现弱光视频的处理。Jiang等人[10]基于3D U-Net训练了一个LLVE网络。Wang等人[38]根据Retinex理论[16]将相邻帧对齐到中间帧中,以增强照明和降噪,而不是3D-Conv。为了提高效率,一些方法使用具有自一致性的2D-Conv作为辅助损失。Chen等人[2]从同一低光视频中随机选择两帧来训练深度孪生网络,使用自一致性损失使网络对噪声和场景中的微小变化具有鲁棒性。Zhang等人[51]选择通过基于预测的光流扭曲输入图像及其相应的地面实况来模拟相邻帧和地面实况,而不是选择相似的帧,以便人为地合成相似的数据对以实现自一致性损失。然而,自一致性是一个弱的和不稳定的约束,不能解决亮度一致性的根本问题。
2.3 LUT for Image Enhancement
3D-LUT是值的三维网格,其将输入颜色值映射到对应的输出颜色值。通过将这种变换应用于图像或视频,可以实现从细微的颜色渐变到引人注目的颜色变换的广泛的颜色和色调效果。LUT已经成为ISP系统[11]和图像编辑软件中常用的经典像素调整工具,因为它对颜色变换建模的效率很高。近年来,基于查找表的深度学习方法被广泛应用于图像增强领域。Zeng等人[50]首先利用轻量级CNN来预测用于集成多个基LUT的权重,并利用所构造的图像自适应LUT来实现图像增强。Wang等人[41]进一步提出了一种考虑全局场景和局部空间信息的可学习的空间感知LUT。Yang等人[44]认识到采样策略的重要性,因此他们设计了一种基于可学习自适应采样间隔的非均匀采样策略来代替次优均匀采样策略。同时,Yang等人[45]也尝试将一维LUT和三维LUT结合起来,相互促进,实现更轻量化、性能更好的三维LUT。据我们所知,在LLVE任务中尚未采用LUT。本文将介绍查找表是如何自然地适用于LLVE并实现实时应用的。该查找表是一个很好的例子。
3 METHOD
本节概述FastLLVE的复杂结构,如图2所示。输入视频帧首先通过轻量级编码器网络编码成潜在特征。然后,将潜在特征并行输入两个模块,即查找表生成模块和视频转换模块。具体地,通过LUT生成模块生成视频自适应LUT,同时生成用于视频变换的强度图。然后,每个像素通过IA-LUT变换增强其RGB值和增强强度作为指标。最后,将变换后的视频馈送到去噪模块以进行进一步增强。第3.1节和第3.2节将分别关注LUT生成模块和视频转换模块。关于特征编码器网络和去噪模块的更多结构细节可以在附录中找到。
3.1 LUT Generation Module
定义.尽管来自各个区域的低亮度像素在RGB中可能看起来相似,但是它们在低亮度增强处理期间对应于不同的增强强度。在图3中,我们看到了几个强度图,其中即使是来自极低光照视频的像素也具有不同的增强强度。传统的Basis LUT Fusion三维LUT仅保存一对一的映射关系进行颜色变换,无法解决颜色相近的弱光像素的不适定问题。为了解决这个问题,我们添加了表示增强强度的新维度,并且将对应的LUT表示为强度感知LUT。它可以存储多个颜色空间,实现一对多的映射关系,为LLVE的更精细的颜色变换提供了方便。值得注意的是,IA-LUT中仅保存了一个采样的稀疏离散输入空间,以避免引入大量的参数,从而导致沉重的存储负担和较大的训练难度。并且由于稀疏离散的4D输入空间,IA-LUT的LUT变换应当使用四线性插值来实现。
在图4中,我们说明了四线性插值过程,系数的详细公式见附录。
一代为了自动生成视频自适应IALUT,如图2所示,我们学习了个可学习的基本IA-LUT,并基于个视频相关权重将其融合,其中是基本LUT的数量。与通过CNN直接生成视频自适应IA-LUT的所有元素相比,融合几个基本LUT更有效且计算量更小。更具体地说,假设以具有分辨率W×H的帧的弱光视频∈ R N×H×W×3作为输入,首先,使用具有5个3D卷积层的轻量级编码器,每个卷积层具有3×3×3的核大小,以捕获输入视频的粗略理解和一些全局属性。编码器的输出被调整为紧凑的特征向量r∈R P×Q,该特征向量作为构造视频内容相关的LUT参数的指导。r特征向量的大小取决于两个超参数P和Q,这两个超参数分别表示调整大小之前的像素数和通道数。𝛾在本文中,我们根据编码器的结构(可在附录中找到),将设置P为16,并将设置Q为64。在共享编码器之后,基于全连接层的权重预测器将紧凑特征向量r映射到T动态视频相关权重,其可以用公式表示为:
其中𝐿×𝐿×𝐿×𝐿× 3 = 3 ×𝐿4为生成的视频自适应IA-LUT的元素总数,数字3表示IA-LUT分别存储映射的红、绿、蓝颜色值。基于ia - lut的元素可以在端到端训练过程中更新,因为它们作为全连接层的参数,这使得基础lut是可学习的。
一般来说,除了共享编码器外,两个完全连接的层实现了特征向量r到生成的视频自适应IA-LUT的主要映射,如下图所示:
3.2 Video Transformation
如图2所示,我们首先估计强度图,然后根据RGB视频和相应的强度图进行查找。为了构建该地图,我们使用了一个具有5个反卷积层的轻量级解码器[49],大小为3 × 3 × 3,利用编码器的潜在特征,得到强度图𝐼∈R𝑁×𝐻×𝑊×1。通过连接强度图和输入视频,我们可以执行3.1节中介绍的查找和插值。我们递归地对视频序列的每一帧进行变换,得到亮度稳定一致的视频输出。
此外,由于LUT变换是独立应用于每个像素,并且可以并行处理四线性插值,因此我们通过CUDA实现IA-LUT变换,以加速变换并实现方便的端到端训练。具体来说,我们将查找和插值操作合并到单个CUDA内核中,以最大限度地提高并行性。在Adaint[44]之后,我们在查找操作中也采用二分搜索算法,因为对数的时间复杂度可以使计算成本可以忽略不计,除非将𝐿设置为一个意外的大值。需要强调的是,逐像素变换是IA-LUT自然保持帧间亮度一致性的关键,逐像素变换仅以每个输入像素的红、绿、蓝颜色和增强强度为索引。
虽然FastLLVE框架可以自然地保持帧间亮度的一致性,同时取得了很好的性能,但需要指出的是,LUT容易受到噪声的影响。在现实世界中,在弱光条件下拍摄的图像和视频不可避免地包含噪音。因此,我们牺牲了一些效率,增加了一个简单的去噪模块作为后处理,对增强的正光视频进行细化,以获得更好的性能。具体来说,在本文中,我们选择遵循[3]的做法来设计附加去噪模块。然而,值得注意的是,几乎所有现有的去噪方法,如[24,30,35,52],都可以作为后处理的替代方法。
4 EXPERIMENTS
4.1 Implementation Details
我们基于PyTorch b[29]实现了我们的方法,并在NVIDIA GeForce RTX 3090 GPU上对框架进行了训练。采用标准的Adam优化器[12]对整个网络进行训练,batch size设置为8。初始学习率设置为4×10−4,按照余弦退火[7],重启设置为10−7的方案逐渐衰减。
对于损失函数,由于之前基于lut的方法[44,45,50]已经证明了平滑正则化和单调正则化的有效性,我们在损失函数中加入了适应IA-LUT的4D平滑正则化和4D单调正则化。如果我们添加额外的去噪模块,去噪结果和真实值之间的成对损失将包含在损失函数中。因此,总损失函数定义为:
对于超参数,在损失函数中,我们分别将其设置为0.0001和10。对于𝐿和𝑇,虽然更高的值有助于LUT建模的颜色转换精度,但它们会显著增加整个框架中使用的所有LUT的参数。因此,我们遵循这两个数字中最广泛使用的设置[44,45,50],这是为了平衡精度和参数大小而提出的。因此,每个维度上的采样网格点的个数设置为33,基础ia - lut的个数设置为3。
4.2 Experiment Setup
我们将我们提出的方法与八种SOTA低光增强方法进行了全面的比较,包括基于图像和基于视频的方法。我们评估的基于图像的方法是MBLLEN[23]、Cheby[28]和LEDNet[53],而SMID[2]、SMOID[10]、StableLLVE[51]、SALVE[1]和SDSDNet[38]是完全基于视频的方法。我们使用他们发布的代码并遵循相同的训练策略在两个现实世界的低光视频数据集上训练这些网络,即SDSD[38]数据集和SMID[2]数据集。SDSD数据集分为SDSD训练和测试数据集,分别包含23,542和750个视频帧,而SMID训练和测试数据集包含18,278和1470个视频帧。然后,我们在SDSD和SMID测试数据集上对FastLLVE和比较方法的性能进行了评估,以证明我们的方法的优越性。值得注意的是,我们实验中使用的SMID数据集已经进行了预处理,通过SMID中自己提出的预处理方法将RAW数据转换为sRGB数据。
我们使用峰值信噪比(PSNR)和结构相似性(SSIM)的常见评估指标来评估增强视频的质量。此外,借鉴前人的研究[10,23,51],我们考虑了平均亮度(AB (Var))和平均绝对亮度差(MABD)的方差来评估帧间亮度一致性的维持能力,值越小表示一致性越好。此外,我们还记录了每种方法在NVIDIA GeForce RTX 3090 GPU上1080p低光帧的平均处理时间。
4.3 Comparisons of Brightness Consistency
如表1所示,我们使用AB (Var)和MABD来评估帧间亮度一致性的维持情况。FastLLVE+dn在两个测试数据集(包括当前SOTA的SDSDNet)上的亮度一致性优于比较方法。值得注意的是,SDSDNet还包含了一个基于Retinex理论的去噪模块[16]。此外,我们还计算了SDSD测试数据集相邻帧之间的平均亮度均值差异(MD-AB),如图5所示。很明显,FastLLVE+dn在亮度一致性方面达到了最好的性能,并且表现得与真实值最相似。
除了定量比较,我们还在图6中提供了定性比较。SDSDNet会在相邻帧之间产生不正确的光点,这在处理局部亮度不一致时体现了它的局限性。相比之下,FastLLVE+dn具有更好的抑制局部帧间亮度不一致的能力,这得益于IA-LUT的精心设计。
4.4 Comparisons of Enhanced Performance
在表1中,我们给出了SDSD和SMID测试数据集上PSNR和SSIM的性能比较。与StableLLVE相比,我们的FastLLVE实现了近3倍的推理速度,并且在PSNR方面优于StableLLVE。同时,FastLLVE+dn在两个数据集的PSNR和SSIM上都达到了SOTA的性能,并且大大优于StableLLVE。值得注意的是,SDSD测试数据集中的PSNR值普遍较高,这表明由于SDSD测试数据集中的大多数视频都是在极低光照的情况下拍摄的,因此从极低动态范围的色彩空间中恢复颜色是困难的。
我们进一步对图7-8中的两个数据集进行定性比较。在图7中,我们给出了SDSD测试数据集中极弱光照视频的结果。除SMOID和SDSDNet外,以往的颜色还原方法存在明显的不正确。SMOID产生模糊的结果和缺乏纹理细节。由于噪声图估计的偏差,SDSDNet会产生一定程度的噪声。此外,在其他方法的结果中出现了较暗的区域和明亮区域的彩色边界,这表明亮度增强不正确。与这些方法相比,我们的FastLLVE+dn解决了色彩恢复、亮度增强和噪声抑制的困难,在视觉上取得了很好的性能。在图8中,恢复具有严重色彩偏差的低光视频具有挑战性。例如,来自SDSDNet的增强弱光视频呈现出比真实值更暗的图像,StableLLVE的结果存在颜色失真。这背后的原因可能是对颜色变换的估计不准确。相比之下,FastLLVE和FastLLVE+dn都可以很好地增强弱光视频,并且具有与真实值相似的色彩空间,即使存在颜色偏差。
4.5 Ablation Study
为了评估IA-LUT的有效性并探索更好地利用去噪模块,我们进行了消融研究,并将结果显示在图9和表5中。
LUT的结构:我们将IA-LUT变为常见的3D LUT并去除了解码器,从而构建基于3D LUT的弱光视频增强网络,并与IA-LUT的FastLLVE进行对比。如表5所示,FastLLVE完全优于基于3D LUT的网络,这说明增强强度的额外维度大大提高了普通3D LUT在弱光条件下建模颜色变换的能力。
除了定量比较之外,我们还在图9中可视化了常见的3D LUT和IA-LUT。由于4维IA-LUT难以简洁地说明,我们选择了三个具有代表性的增强强度𝑒并将它们固定在IA-LUT中绘制3D余数。从可视化中可以看出,IA-LUT的剩余部分比3D LUT更平滑、更正确地模拟了颜色变换。更重要的是,随着𝑒的增加,存储颜色映射关系的IA-LUT的3D剩余部分倾向于更亮。这个观察验证了增强强度对确定相对最优的颜色变换的影响,这与我们的总体设计是一致的。
去噪:正如我们指出的,LUT容易受到噪声的影响。然而,在低光条件下拍摄的真实视频通常会受到噪声的影响。为此,期望通过增加去噪模块来抑制噪声,从而提高网络性能。在FastLLVE和FastLLVE+dn的比较中,一个简单的去噪模块能够补充LUT的性能,在所有指标上都有明显的改进。注意,去噪模块也有利于亮度一致性的评估。一个可能的原因是AB (Var)和MABD对噪声也很敏感。
去噪模块位置:除设置去噪模块作为后处理外,在整个框架的开头构建去噪模块作为预处理也是可行的。忽略噪声增强的可能性,预处理去噪模块似乎更为合理。然而,值得注意的是,在现实世界中没有可行的方法来收集干净的低光视频,这导致作为预处理的去噪模块的监督训练缺乏ground truth。因此,没有监督的去噪模块会影响视频自适应IA-LUT通过整个框架的端到端训练来学习错误映射。此外,尽管训练原理[17,25]是专门针对未配对噪声数据的监督训练而设计的,但由于很难找到可靠的噪声模型来实现各种弱光条件下的模拟,因此可能仍然不能完全解决这一问题。
为了比较,我们按照训练原理Noiser2Noise[25]对去噪模块进行自监督作为预处理,[22]中的弱光噪声模型模拟弱光条件下的噪声。如表5所示,FastLLVE+dn在所有指标上的表现都比dn+FastLLVE好得多,它支持去噪模块作为后处理。否则,由于低光噪声模型不可靠,基于Noiser2Noise的dn+FastLLVE训练不稳定,容易失败。因此,在我们的方法中,我们使用去噪模块作为后处理。
5 LIMITATIONS AND BROADER IMPACT
在本文中,我们提出了一种用于lve的强度感知LUT,并验证了其高效和自然保持帧间亮度一致性的优点。然而,由于基于lut的方法通常容易受到噪声的影响,因此利用现成的去噪模块来进一步提高增强的正光视频的视觉质量,从而影响整个框架的效率。因此,一种适合于LUT的新型去噪策略是有希望的,我们将其作为未来的工作。
实时lve在许多方面都有可能带来重大影响。一方面,它可以应用于摄像机监控系统,通过增加关键区域的能见度来改善公共安全,例如街道,停车场和交通,特别是在夜间。另一方面,它可以提高在弱光条件下制作的视觉媒体的质量,如纪录片和家庭视频。这将提高这种视觉媒体的整体质量,使其更吸引人,提供更多信息。
6 CONCLUSION
我们首先将LUT引入到LLVE任务中,并提出了一种新的基于LUT的框架,称为FastLLVE,用于实时低光视频增强。为了将LUT引入到lve中,我们设计了具有增强强度新维度的强度感知LUT (IA-LUT)来解决一对多映射问题。对于增强视频中的闪烁效果,我们指出IA-LUT可以自然地保持视频帧之间的亮度一致性。大量的实验验证了该方法与LLVE SOTAs相比的优越性。我们设想这项工作可以促进LLVE在实际应用中的发展。