【LLIE专题】HVI: A New Color Space for Low-light Image Enhancement

专题介绍

在低光照环境下,传统成像设备往往因画面昏暗、细节丢失而受限。LLIE(低照度暗光增强)技术应运而生,它通过提升图像亮度、对比度,减少噪点并恢复色彩细节,让暗夜变得清晰可见。
LLIE技术从传统方法如直方图均衡化、Retinex模型等起步,近年来借助深度学习,尤其是卷积神经网络(CNN),GAN模型,扩散模型实现了质的飞跃。这些算法能自动学习图像特征,精准处理低光照图像,效果显著优于传统技术。
本专题将聚焦LLIE技术的核心原理、应用案例及最新进展,让我们一起见证LLIE如何点亮暗夜,开启视觉新视界!欢迎一起探讨交流!

系列文章如下
【1】ZeroDCE

低光环境下的图像增强:HVI 色彩空间的突破(2025,CVPR)


本文将对 HVI: A New Color Space for Low-light Image Enhancement,这篇暗光增强算法进行讲解。参考资料如下:
[1].[HVI论文地址]
[2].[HVI代码地址]
[3].[Hugging Face Demo]

一、研究背景

低光照图像增强(Low-Light Image Enhancement, LLIE)是计算机视觉领域的一个重要研究方向,旨在从低光照条件下拍摄的图像中恢复清晰的视觉信息。然而,现有的LLIE方法大多基于标准RGB(sRGB)色彩空间,这种色彩空间对颜色变化过于敏感,容易导致图像增强过程中出现颜色偏差和亮度伪影。尽管将图像转换到HSV色彩空间能够在一定程度上解决亮度问题,但会引入显著的红色和黑色噪声伪影。为了解决这些问题,研究者们提出了多种改进方法,但大多未能从根本上解决色彩空间的局限性。因此,开发一种新的色彩空间,以更好地适应低光照图像增强的需求,成为了一个关键的研究方向

二、HVI方法

1.HSV颜色空间问题
I m a x ( x ) = max ⁡ c ∈ { R , G , B } ( I c ( x ) ) {I}_{max}(x)=\max_{\mathbf{c}\in\{R,G,B\}}(\mathbf{I}_{\mathbf{c}}(x)) Imax(x)=c{R,G,B}max(Ic(x))
s = { 0 , I m a x = 0 Δ I m a x , I m a x ≠ 0 s = \begin{cases} 0, & \mathbf{I}_{max} = 0 \\ \frac{\Delta}{\mathbf{I}_{max}}, & \mathbf{I}_{max} \neq 0 \end{cases} s={0,ImaxΔ,Imax=0Imax=0
h = { 0 , if  s = 0 I G − I B Δ   m o d   6 , if  I m a x = I R 2 + I B − I R Δ , if  I m a x = I G 4 + I R − I G Δ , if  I m a x = I B h = \begin{cases} 0, & \text{if } s = 0 \\ \frac{I_G - I_B}{\Delta} \bmod 6, & \text{if } \mathbf{I}_{max} = \mathbf{I}_R \\ 2 + \frac{I_B - I_R}{\Delta}, & \text{if } \mathbf{I}_{max} = \mathbf{I}_G \\ 4 + \frac{I_R - I_G}{\Delta}, & \text{if } \mathbf{I}_{max} = \mathbf{I}_B \end{cases} h= 0,ΔIGIBmod6,2+ΔIBIR,4+ΔIRIG,if s=0if Imax=IRif Imax=IGif Imax=IB
上面的公式是RGB转HSV颜色空间的公式。
在这里插入图片描述
上面这个图说明了HSV颜色空间虽然能把色彩亮度很好分离,但是存在两个问题:

  • 红色间断噪点(Red Discontinuity Noise)
    在HSV颜色空间中,红色色调(Hue)位于色环的两端(0°和360°),虽然它们在视觉上是同一种颜色,但在数学处理上是不连续的。这种不连续性会导致算法在处理红色区域时产生噪点。
  • 黑色平面噪点(Black Plane Noise)
    在低光照条件下,图像中的像素亮度极低。HSV颜色空间在转换过程中会过度放大这些黑暗区域的亮度,从而导致噪声也被放大,使得信噪比极低。这会在增强后的图像中产生明显的黑色伪影,尤其是在极暗的图像中。

2.HVI色彩空间
H = cos ⁡ ( π h 3 ) , V = sin ⁡ ( π h 3 ) {H} = \cos\left(\frac{\pi \mathbf{h}}{3}\right), \quad \mathbf{V} = \sin\left(\frac{\pi \mathbf{h}}{3}\right) H=cos(3πh),V=sin(3πh)
C k ( x ) = sin ⁡ ( π I m a x ( x ) 2 ) + ε k , {C}_k(x) = \sqrt[k]{\sin\left(\frac{\pi \mathbf{I}_{max}(x)}{2}\right) + \varepsilon}, Ck(x)=ksin(2πImax(x))+ε ,
H ^ = C k ⊙ S ⊙ H , V ^ = C k ⊙ S ⊙ V , \begin{align*} \hat{\mathbf{H}} &= \mathbf{C}_k \odot \mathbf{S} \odot H,\\ \hat{\mathbf{V}} &= \mathbf{C}_k \odot \mathbf{S} \odot V, \end{align*} H^V^=CkSH,=CkSV,
其公式如上所述,h为上面HSV公式中的h, I m a x ( x ) {I}_{max}(x) Imax(x)同理为HSV公式中的,其中 k ∈ Q 是可训练参数,使用小 ε = 1 × 1 0 − 8 \varepsilon = 1\times10^{-8} ε=1×108 以避免梯度爆炸。。
为了解决上述HSV的问题,本文提出了一种新的色彩空间——水平/垂直强度(Horizontal/Vertical-Intensity, HVI)色彩空间。HVI色彩空间通过以下两个关键设计来解决现有色彩空间的不足:

  • 极化HS图(Polarized HS Maps):通过将HS平面极化,使得相似的红色坐标之间的欧几里得距离最小化,从而有效消除红色不连续噪声。这种设计确保了红色区域内的信噪比最大化,避免了因颜色空间的不连续性导致的噪声问题。
  • 可学习的强度压缩函数   C k \ {C}_k  Ck(Adaptive Intensity Collapse Function):该函数通过动态压缩低光区域的强度,抑制黑色噪声,同时保留高光细节( I m a x ( x ) {I}_{max}(x) Imax(x)越小对应暗区,压缩越强;越大对应高光,压缩越小)。这种自适应的强度调整机制能够显著提高低光照图像的信噪比,同时避免过度增强导致的细节丢失。

这里我们举个例子来解释极化HS图(Polarized HS Maps)的作用:
假设我们有一个像素点,其RGB值为(1, 0, 0),即纯红色。在HSV颜色空间中,这个颜色对应的H(色调)值为0°或360°(对应论文中的0和6),S(饱和度)值为1,V(亮度)值为1。然而,由于0°和360°在数学上是不连续的,这会导致红色区域在颜色空间中出现不连续性。现在,我们将这个颜色映射到极化的HS映射。极化的HS映射将色调H和饱和度S转换为两个新的坐标分量。具体来说,可以使用以下公式:
H ^ = S × cos ⁡ ( H × π 180 ) , V ^ = S × sin ⁡ ( H × π 180 ) \begin{align*} \hat{H} &= S\times\cos\left(H\times\frac{\pi}{180}\right),\\ \hat{V} &= S\times\sin\left(H\times\frac{\pi}{180}\right) \end{align*} H^V^=S×cos(H×180π),=S×sin(H×180π)
对于这个纯红色像素点,H=0°或者H=360°,S=1,所以:
H ^ = 1 × cos ⁡ ( 0 ) = 1 × 1 = 1 V ^ = 1 × sin ⁡ ( 0 ) = 1 × 0 = 0 \begin{align*} \hat{H} &= 1\times\cos(0) = 1\times1 = 1\\ \hat{V} &= 1\times\sin(0) = 1\times0 = 0 \end{align*} H^V^=1×cos(0)=1×1=1=1×sin(0)=1×0=0

H ^ = 1 × cos ⁡ ( 360 ) = 1 × 1 = 1 V ^ = 1 × sin ⁡ ( 360 ) = 1 × 0 = 0 \begin{align*} \hat{H} &= 1\times\cos(360) = 1\times1 = 1\\ \hat{V} &= 1\times\sin(360) = 1\times0 = 0 \end{align*} H^V^=1×cos(360)=1×1=1=1×sin(360)=1×0=0
因此,这个红色像素点在极化的HS映射中的坐标为(1, 0)。

考虑另一个接近红色的像素点,其RGB值为(1, 0,ε),其中ε是一个非常小的正值(例如ε=0.01)。这个颜色在HSV颜色空间中对应的H值约为359°,S=1,V=1。将这个颜色映射到极化的HS映射中:
H ^ = 1 × cos ⁡ ( 35 9 ∘ × π 180 ) V ^ = 1 × sin ⁡ ( 35 9 ∘ × π 180 ) \begin{align*} \hat{H} &= 1\times\cos\left(359^{\circ}\times\frac{\pi}{180}\right)\\ \hat{V} &= 1\times\sin\left(359^{\circ}\times\frac{\pi}{180}\right) \end{align*} H^V^=1×cos(359×180π)=1×sin(359×180π)
计算结果约为:
H ^ = 1 × cos ⁡ ( 35 9 ∘ ) ≈ 1 × 0.999999 ≈ 0.999999 V ^ = 1 × sin ⁡ ( 35 9 ∘ ) ≈ 1 × ( − 0.000017 ) ≈ − 0.000017 \begin{align*} \hat{H} &= 1\times\cos(359^{\circ}) \approx 1\times0.999999 \approx 0.999999\\ \hat{V} &= 1\times\sin(359^{\circ}) \approx 1\times(-0.000017) \approx - 0.000017 \end{align*} H^V^=1×cos(359)1×0.9999990.999999=1×sin(359)1×(0.000017)0.000017
这个坐标在极化的HS映射中非常接近(1, 0),即原来的纯红色坐标。这表明,通过极化的HS映射,原本在HSV中不连续的红色区域(HSV空间中为0°和359°)在新的坐标系中变得连续了。因此,这种数学变换有效地解决了红色不连续的问题。

3.颜色与强度解耦网络(CIDNet)
在这里插入图片描述

为了充分利用HVI色彩空间中的色彩和强度信息,本文还提出了一种新颖的颜色与强度解耦网络(Color and Intensity Decoupling Network, CIDNet)。CIDNet包含两个分支,分别处理色度(HV)和亮度(I)信息,通过在HVI空间中进行图像增强,能够有效地抑制低光区域的噪声,并优化图像的亮度。

  • HV分支:负责建模颜色不变性,分离噪声与真实纹理。通过极化HS图的处理,HV分支能够有效去除红色噪声,并保留图像的色彩细节。
  • I分支:学习光照分布的物理约束,实现自适应亮度增强。
  • 交叉注意力机制(Lighten Cross-Attention, LCA):通过跨分支特征交互,联合优化噪声抑制与光照恢复过程。LCA网络结构细节如下所示,可以看出应用了自注意力机制。
    在这里插入图片描述

三、实验结果

  1. 定量实验

在这里插入图片描述

如上表,所提出的HVI色彩空间和CIDNet模型在、各个数据集上的表现优于当前最先进的低光图像增强方法。具体来说:PSNR(峰值信噪比)、SSIM(结构相似性)和LPIPS(感知相似性)等指标均显著提升,证明了HVI色彩空间和CIDNet在图像增强效果上的优越性。

  1. 定性实验

在这里插入图片描述

定性比较,HVI-CIDNet增强后的图像在色彩保真度、细节保留和噪声抑制方面均表现出色。

  1. HVI有效性实验

在这里插入图片描述

为了验证HVI颜色空间有效性,作者将HVI作为插件应用在其他网络中,可以看出效果在各个指标上均得到了提升。

  1. 消融实验

在这里插入图片描述

从上表可以看出:

  • HVI颜色空间最优,优于RGB和HSV颜色空间;
  • 颜色和亮度解耦的双分支自注意力网络结构也由于没有自注意力机制的unet以及单分支不解耦自注意力网络结构 ;
  • 而损失函数这块,从表格也可看出,仅仅使用单一颜色空间进行约束效果没有使用两个颜色空间约束效果好。

四、总结

本文通过提出HVI色彩空间和CIDNet模型,为低光照图像增强领域带来了新的突破。HVI色彩空间通过极化HS图和可学习的强度压缩函数,有效解决了传统色彩空间在低光照图像增强中的不足。同时,CIDNet网络的双分支结构和交叉注意力机制进一步提升了图像增强的效果。实验结果表明,HVI色彩空间和CIDNet模型在多个数据集上均取得了优异的性能,证明了其在低光照图像增强中的有效性和实用性

五、思考

1. HVI色彩空间在其他任务的探索
未来可以进一步探索其在其他计算机视觉任务中的应用潜力。例如,HVI色彩空间是否可以应用于图像分割、目标检测等任务,以提升模型在低光照条件下的性能或者可以应用于其他low level图像增强任务。

2. 计算效率与实际应用的平衡
尽管HVI色彩空间和CIDNet模型在低光照图像增强中表现出色,但它们的计算复杂度和模型大小也是需要考虑的重要因素。

3. HVI色彩空间的可学习性与自适应性
HVI色彩空间的一个显著特点是其可学习性,即通过训练数据自动调整色彩空间的映射函数。这种自适应性为色彩空间的设计提供了一种新的思路:

  • 数据驱动的色彩空间设计:传统的色彩空间(如RGB、HSV)大多是基于固定的数学模型设计的,而HVI色彩空间通过引入可学习的参数,使得色彩空间能够根据具体任务和数据进行优化。这种数据驱动的设计思路可能启发未来开发更多自适应的色彩空间,以更好地适应不同的图像处理需求。
  • 跨场景适应性:HVI色彩空间的可学习性也意味着它可以通过不同的训练数据集来适应不同的场景和光照条件。例如,在不同的低光照环境中(如室内、夜间室外、水下等),HVI色彩空间可以通过重新训练来优化其性能,从而实现更好的增强效果。这种跨场景的适应性对于开发通用的图像增强算法具有重要意义。

总之,HVI色彩空间和CIDNet模型为低光照图像增强领域带来了新的希望,未来的研究可以在此基础上进一步探索和优化,以推动该领域的持续发展

代码部分将会单起一篇进行解读。(未完待续)

感谢阅读,欢迎留言或私信,一起探讨和交流。

<think>好的,用户遇到了AssertionError,错误信息指出他们的测试目录路径无效。首先,我需要确认这个错误的具体原因。用户之前运行predict.py时缺少了--dataroot参数,现在可能已经添加了该参数,但路径仍然有问题。 首先,用户提供的路径是C:\Users\omen\anaconda3\opencv\LLIE\now_methods\EnlightenGAN-master\test_dataset\test_A\testA。这可能存在几个问题:路径是否正确,目录是否存在,或者目录结构是否符合要求。 我需要考虑常见的错误原因:比如路径中的拼写错误,目录名称是否正确,是否确实存在testA或testB子目录。另外,用户可能在Windows系统下使用反斜杠,但在代码中可能需要正斜杠或者转义处理。此外,检查是否有隐藏的字符或空格,比如路径中的文件夹名是否有空格,是否需要引号包裹。 然后,我需要回顾之前用户的问题,他们之前因为缺少--dataroot参数而报错,现在可能已经添加了该参数,但路径仍然无效。所以用户可能在纠正了参数缺失的问题后,路径本身又出现了问题。 接下来,我应该分步骤引导用户检查路径是否存在,目录结构是否正确。可能需要用户手动检查路径是否存在,或者使用绝对路径。同时,提醒用户注意操作系统的路径分隔符是否正确,是否需要转义,或者使用原始字符串。 另外,EnlightenGAN这样的项目通常需要特定的数据集结构,比如在dataroot下必须有testA或testB子目录,用户可能没有正确设置这些子目录,或者子目录名称不符合要求。 还需要考虑用户是否在命令行中正确转义了路径,特别是在Windows系统中,反斜杠可能需要双写或者替换为正斜杠。例如,使用双反斜杠或者将路径用引号括起来。 此外,用户可能误将test_A写成了testA,或者目录层级有误。例如,正确的路径可能应该是test_dataset/testA而不是test_A/testA。需要用户确认目录结构是否符合项目要求。 最后,建议用户使用绝对路径来排除相对路径可能带来的问题,并检查是否有权限问题导致无法访问该目录。同时,提醒用户检查是否有隐藏的文件扩展名,比如testA是否实际是一个文件而非目录。 总结起来,我需要逐步引导用户检查路径的每个部分是否存在,结构是否正确,名称是否正确,以及路径的格式是否正确,确保符合EnlightenGAN项目的数据集要求。</think>--- ### **错误分析** 您遇到的 `AssertionError` 表明脚本在指定路径 `C:\Users\omen\...\test_A\testA` 中未找到有效的数据目录。**核心问题**是路径结构或数据目录不符合模型要求。 --- ### **逐步排查与解决** #### 1. **检查路径是否存在** - **手动验证**:打开文件资源管理器,逐级检查路径是否完整: ``` C:\Users\omen\anaconda3\opencv\LLIE\now_methods\EnlightenGAN-master\test_dataset\test_A\testA ``` - **常见错误**: - 目录名拼写错误(如 `test_A` vs `testA`)。 - 路径层级错误(如多一层或少一层文件夹)。 - 路径中的反斜杠 `\` 未转义(建议使用正斜杠 `/` 或双反斜杠 `\\`)。 --- #### 2. **确认数据集结构** EnlightenGAN 要求 `--dataroot` 目录下必须包含 **特定子目录**(如 `testA` 或 `testB`),且子目录中需有输入图像。 **正确结构示例**: ``` EnlightenGAN-master/ ├── test_dataset/ │ ├── testA/ # 必须存在且包含测试图像 │ │ ├── 1.jpg │ │ ├── 2.png │ │ └── ... ``` --- #### 3. **修正路径格式(Windows系统需注意)** - **错误写法**(未转义路径): ```bash --dataroot C:\Users\omen\...\test_A\testA ``` - **正确写法**(使用双反斜杠或正斜杠): ```bash --dataroot C:/Users/omen/.../test_A/testA # 正斜杠 --dataroot "C:\\Users\\omen\\...\\test_A\\testA" # 双反斜杠+引号 ``` --- #### 4. **测试最小化命令** 运行以下命令验证基础功能(假设数据集结构正确): ```bash python predict.py --dataroot C:/Users/omen/.../test_dataset --phase test ``` - **关键参数说明**: - `--phase test`:强制指定测试模式。 - 省略其他非必需参数(如 `--name` 会自动匹配默认模型)。 --- ### **完整解决方案示例** 假设您的数据集实际路径为 `C:\EnlightenGAN\test_dataset\testA`: ```bash python predict.py \ --dataroot C:/EnlightenGAN/test_dataset \ # 指定到父目录(含testA子目录) --name enlightengan_model \ # 模型名称(与训练时一致) --phase test \ # 显式指定测试模式 --batchSize 1 # 避免显存不足 ``` --- ### **高级调试技巧** 1. **打印目录树**(验证结构): ```bash tree C:/Users/omen/.../test_dataset /F ``` - 输出应包含 `testA` 子目录及图像文件。 2. **代码级验证**(可选): 在 `predict.py` 中添加路径检查: ```python print("Current dataroot:", opt.dataroot) # 检查实际读取的路径 assert os.path.isdir(opt.dataroot), f"Invalid path: {opt.dataroot}" ``` --- ### **延伸问题预防** - **数据集规范**:确保图像格式为 `.jpg` 或 `.png`,且直接存放在 `testA` 下(无需嵌套子目录)。 - **环境一致性**:若从其他设备复制数据集,检查文件权限和隐藏后缀(如 `.jpg` vs `.jpg.downloading`)。 --- 通过以上步骤,您应能准确定位路径问题并成功运行预测脚本。若仍报错,请提供 `tree` 命令的输出截图以进一步分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值