最近试了两个低光照增强和图像修复的深度学习模型Zero_DCE和NAFNet,觉得挺好玩的,大家感兴趣的也可以试试。
一、Zero-DCE
1.1 测试效果
- 原图
- 测试结果
可以看到这个效果还是很不错的,特别是对于光线很暗的图像,效果更加的明显。
1.2 核心思想
在PS软件中,我们可以通过调整图像亮度映射曲线来对低亮度像素进行亮度增强,Zero-DCE就是用神经网络来拟合一条亮度映射曲线,再根据曲线和原图像生成提亮图像。整个计算过程是可导的,可以轻松地用梯度下降法优化神经网络。
为了让计算机能自动判断图像的亮度,与原图像的相似度等和图像质量相关的属性,zero-DCE在训练中使用了一些新颖的误差函数,通过这些误差函数约束优化过程,算法既能保证生成出来的图片亮度合理,又能保证图片较为真实,贴近原图。
拟合亮度映射的曲线、不需要标签的误差函数,这两项精巧的设计共同决定了Zero-DCE算法的优势。原论文总结了该工作的三条贡献:
- 这是第一个不需要参考结果的低光照增强网络,直接避免了统计学习中的过拟合问题。算法能够适应不同光照条件下的图片。
- 该工作设计了一种随输入图像而变的映射曲线。该曲线是高阶的。每个像素有一条单独的曲线。曲线能高效地完成映射过程。
- 本作的方法表明,在缺乏参考图像时,可以设计一个与任务相关而与参考图像无关的误差,以完成深度图像增强模型的训练。
详细的算法设计请参考博文 here
1.4 安装使用
- 克隆仓库或者直接下载代码
git clone git@github.com:Li-Chongyi/Zero-DCE.git
- 进入或者切换到文件夹
cd Zero-DCE/Zero-DCE_code
- 安装环境
pip install -r requirements.txt
- 运行
python lowlight_test.py
1.5 存在问题
- 低光图片增强问题要解决两件事:图像去模糊和亮度增强。而Zero-DCE只能完成后者
- 同1,对于本身画质清晰的低光图像,有的在处理之后反而会使画质变得模糊 issue4。
- 原图
- 测试结果
二、 NAFNet(ECCV2022)
该算法可以在线测试,可以在huggingface.co和replicate上找到 here and here
4.1 测试结果
4.2 安装使用
该算法可以实现图像去噪、修复、双目立体图像超分三个功能,在github上提供了对应的预训练权重文件,可以自行下载
git clone https://github.com/megvii-research/NAFNet
cd NAFNet
pip install -r requirements.txt
python setup.py develop --no_cuda_ext
记住在安装的时候一定要运行python setup.py develop --no_cuda_ext
,不然会出现 canot imort name 'create_model’from "basicsr.models’
Traceback (most recent call last):
ile "basicsr/demo_ssr.py", line 8,in <module>
from basicsr.models import create_model
importError: canot imort name 'create_model'from "basicsr.models"(/ss/dy /minicondas/envs/Brclet/lib/python3.8/site-packages/basicsr/models/.init.-.py)
当然,作者提供了colab
上的代码,可以直接在colab进行运行测试!