引言
- 随着现代科技的发展,图像采集设备已经渗透到生活的方方面面,然而在昏暗场景、低照度或弱光条件下,图像的质量往往受到严重影响,表现为亮度不足、对比度低下、色彩失真以及细节丢失等问题。
- 这类图像对于人眼识别和计算机视觉算法的准确性和稳定性都构成了巨大挑战。因此,低照度图像增强技术的研究与应用日益受到关注,旨在提高图像的视觉质量和有效信息含量。
传统图像增强方法
- 早期的低照度图像增强方法主要包括直方图均衡化、伽马校正、对比度拉伸等
。
- 其中,直方图均衡化通过对像素灰度值分布进行重新分配,提高了图像的整体亮度和动态范围
;
- 伽马校正则利用非线性变换调整图像的亮度曲线;而对比度拉伸则是通过改变图像的灰度级分布,增强图像的明暗对比。
Retinex理论及其应用
Retinex理论作为一种模拟人类视觉系统的图像增强方法,通过分离图像的反射分量和光照分量,有效地消除了光照变化对图像色彩和纹理的影响。其衍生出的单尺度Retinex、多尺度Retinex等算法在低照度图像增强方面取得了一定成效,但也存在噪声放大、边缘模糊等问题。
深度学习在低照度图像增强中的突破
近年来,深度学习在低照度图像增强领域的应用取得了显著成果。基于卷积神经网络(CNN)的端到端学习框架,可以从大量训练样本中学习低照度图像与正常光照条件下的映射关系。如Deep Retinex Network (DRN)、Low-Light Image Enhancement using Deep Learning (LLNet)、Zero-DCE等深度学习模型,不仅能够提升图像的整体亮度,还能较好地保留和恢复图像的细节信息以及色彩真实感。
未来趋势与挑战
虽然深度学习在低照度图像增强方面的表现已取得长足进步,但仍面临一些挑战,如过度增强导致的噪声放大、如何更好地结合先验知识以及实时性需求等。此外,考虑到低照度图像增强在无人驾驶、安防监控、医疗影像等诸多领域的广泛应用前景,未来的研究应继续探索更为高效、鲁棒且适用于嵌入式系统的轻量化模型。
图像增强流程
以下是一个简化的Retinex算法流程概述:
图像处理
对输入图像进行多尺度的高斯模糊处理。
光照估计
计算每个尺度下模糊图像与原图像的比率或者对数差分,以估算各个尺度下的光照强度。
反射分量恢复
通过去除光照分量的影响,得出图像的反射分量,该分量能更好地反映物体本身的固有色和纹理。
图像增强
对得到的反射分量进行适当的调整和量化,以增强图像的对比度和颜色饱和度,同时保持图像整体的平衡和自然。
输出增强图像
将处理后的反射分量图像作为最终增强后的输出
代码
ata_path = 'data'
img_list = os.listdir(data_path)
if len(img_list) == 0:
print('Data directory is empty.')
exit()
with open('config.json', 'r') as f:
config = json.load(f)
for img_name in img_list:
if img_name == '.gitkeep':
continue
img = cv2.imread(os.path.join(data_path, img_name))
img_msrcr = retinex.MSRCR(
img,
config['sigma_list'],
config['G'],
config['b'],
config['alpha'],
config['beta'],
config['low_clip'],
config['high_clip']
)
img_amsrcr = retinex.automatedMSRCR(
img,
config['sigma_list']
)
img_msrcp = retinex.MSRCP(
img,
config['sigma_list'],
config['low_clip'],
config['high_clip']
)
shape = img.shape
cv2.imshow('Image', img)
cv2.imshow('retinex', img_msrcr)
cv2.imshow('Automated retinex', img_amsrcr)
cv2.imshow('MSRCP', img_msrcp)
cv2.waitKey()
总结
总结而言,昏暗场景、低照度及弱光环境下的图像增强是一个持续发展的研究领域,它融合了传统图像处理技术与深度学习方法,致力于在各种光照条件下提供高质量的图像,以满足日益增长的实际应用需求。随着算法和技术的不断演进,我们期待未来的低照度图像增强技术能够带来更加卓越的图像质量提升效果。
最后,见主页左下方推广,👇👇