【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)

简介: 【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)

    💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文内容如下:🎁🎁🎁

⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

    或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

基于融合的水下图像与视频增强研究

摘要

本文提出了一种全新的水下视频与图像增强策略。该方法基于融合原理,所有输入图像与权重均仅从退化后的单幅图像中推导而来。为克服水下介质的固有限制,我们定义了两幅输入:一幅为颜色校正版,另一幅为对比度增强版;同时设计了四幅权重图,旨在提升因介质散射与吸收而退化的远处物体的可见度。该策略为单帧算法,无需专用硬件,也无需预知水下条件或场景结构。融合框架还通过有效的保边降噪策略,保证相邻帧间的时间一致性。增强后的图像与视频噪声更低,暗区曝光更好,全局对比度提升,细节与边缘显著锐化。此外,我们在多个挑战性应用中验证了其有效性。

关键词:水下图像增强;多尺度融合;自适应权重;物理模型约束;视频增强

一、引言

1 引言

水下成像因环境物理特性而极具挑战。与普通图像不同,水下图像因传播光的衰减而可见度差。光随距离和深度呈指数衰减,主因是吸收与散射:吸收显著削弱光能,散射改变光方向。光的随机衰减造成雾状外观,而沿视线被介质反向散射的光进一步降低场景对比度。这些特性使水下场景对比度低,远处物体朦胧不清。在普通海水中,距离超过 10 米的物体几乎无法分辨,颜色也因特征波长被水按深度截断而褪色。

已有多项研究尝试恢复和增强此类退化图像。主要思路包括:多幅图像融合[21]、专用硬件[15]、偏振滤波[25]。尽管这些方法有效,但存在显著局限:硬件方案(如激光距离选通、同步扫描)昂贵且复杂;多幅图像方案需在不同环境条件下拍摄同一场景的多次曝光;偏振法需处理不同偏振度的多幅图像,这对户外雾霾图像可行,对水下场景却难以布置。此外,除硬件方案外,上述方法均无法处理动态场景,因而难以用于视频。

本文提出一种基于单幅图像即可增强水下图像(及动态视频)的新方法。该方法建立在融合原理之上,该原理已在图像合成[14]、多光谱视频增强[6]、去雾[2]、HDR成像[20]等领域展现价值。与现有融合方法不同,本方案无需多幅图像,所有输入与权重均源自原始退化图像。我们追求简洁、计算量低、在普通硬件上即可快速实现的算法。

由于水下场景退化兼具乘性与加性[26],传统增强技术(白平衡、颜色校正、直方图均衡)在此任务中表现受限。我们不再直接滤波输入图像,而是开发一套由原始图像内在属性(即权重图)驱动的融合框架。融合技术的成败高度依赖输入与权重的选择,因此我们设计了一组算子,以克服水下环境的特有局限。

水下成像环境复杂,导致图像存在色偏、对比度低、细节模糊等问题。本文提出基于融合的水下图像与视频增强算法,通过多尺度特征融合、自适应权重分配及物理模型约束,实现单幅图像与视频序列的增强。实验表明,该算法在色彩还原、对比度提升及细节保留方面表现优异,为海洋资源勘探、水下目标检测等应用提供高质量视觉数据支持。

海洋覆盖地球表面约71%,蕴含丰富的生物、矿产和能源资源。随着陆地资源逐渐减少,海洋开发成为推动经济发展和科学进步的重要领域。水下图像作为获取海洋信息的关键手段,在海洋科学研究、海洋工程建设、水下目标探测与识别等领域发挥着不可或缺的作用。然而,水下成像环境复杂,水体对光线的散射和吸收作用强烈,不同波长的光在水中的吸收程度差异显著,导致水下图像存在色偏、对比度低、细节模糊等问题,严重影响了图像中物体真实颜色的还原和目标特征的提取,限制了水下视觉技术的广泛应用。因此,研究高效的水下图像与视频增强算法具有重要的现实意义。

二、国内外研究现状

(一)基于物理模型的方法

基于物理模型的水下图像增强方法试图通过建立水下成像的物理模型,还原图像的真实信息。经典的水下成像模型由Nayar和Narasimhan提出,将水下图像的退化过程描述为直接衰减分量和后向散射分量的叠加。许多基于此模型的方法被提出,如He等提出的暗通道先验(DCP)算法,通过对大量自然图像的统计分析,利用暗通道先验知识估计图像的传输率和环境光,实现去雾和图像增强。但将DCP算法应用于水下图像增强时,由于水下环境的特殊性,如水体中存在大量悬浮颗粒和杂质,导致该算法在估计传输率和环境光时容易出现误差,影响图像增强效果。后续研究对该算法进行了改进,如采用更精确的水下成像模型、结合其他先验知识或采用优化的参数估计方法等。

(二)基于图像优化的方法

基于图像优化的水下图像增强方法直接对图像进行优化操作以改善退化的图像质量。直方图均衡化(HE)是一种经典的基于统计的图像增强方法,通过重新分配图像的灰度值,使图像的灰度分布更加均匀,从而增强图像的对比度。对比度有限自适应直方图均衡化(CLAHE)是对HE的改进,在局部区域内应用直方图均衡化,能够更好地保留图像的细节信息,减少噪声的放大。但CLAHE仍然难以对水下图像的颜色进行有效校正,在实际应用中存在一定的局限性。此外,还有最小颜色损失及局部自适应对比度增强(MLLE)方法、加权小波视觉感知融合(WWPF)方法等,这些方法在一定程度上改善了水下图像的质量,但对严重色偏图像增强效果有限。

(三)基于深度学习的方法

随着深度学习技术的飞速发展,基于深度学习的水下图像增强方法逐渐成为研究的热点。卷积神经网络(CNN)以其强大的特征提取能力,在水下图像增强领域得到了广泛应用。一些基于CNN的水下图像增强方法通过设计特定的网络结构,如U-Net、ResNet等,学习水下图像的退化特征和增强规则,实现图像的增强。生成对抗网络(GAN)的出现为水下图像增强提供了新的思路,通过生成器和判别器的对抗博弈,使生成器学习到真实水下图像的分布,生成高质量的增强图像。但基于深度学习的方法需要大量训练数据,且模型的泛化能力有限,在面对不同场景和条件下的水下图像时,可能会出现性能下降的问题。

三、基于融合的水下图像增强算法

(一)算法总体框架

本文提出的基于融合的水下图像增强算法总体框架包括预处理、多尺度特征提取、自适应权重分配和融合重建四个部分。预处理阶段对原始水下图像进行颜色校正和对比度增强,得到两幅初始增强图像;多尺度特征提取阶段分别对两幅初始增强图像进行多尺度分解,提取不同尺度的特征;自适应权重分配阶段根据图像特征计算两幅图像在不同尺度的权重;融合重建阶段将两幅图像的多尺度特征按照权重进行融合,重建得到最终的增强图像。

(二)预处理

1. 颜色校正

采用改进的灰度世界算法和直方图均衡化相结合的方法进行颜色校正。灰度世界算法基于假设场景中所有颜色的平均值应该为灰色,通过计算图像三个颜色通道的平均值,调整各通道的增益,使图像达到颜色平衡。但传统的灰度世界算法在水下极端恶化的场景中表现较差,会出现红色伪影等问题。本文对其进行改进,考虑到水中绿色信息保存较好,红色信息与绿色信息相反,将一部分红色通道值较小的像素的绿色信息改为红色信息,同时避免在红色通道信息显著的区域进行过度补偿,防止饱和出现。具体公式为:

image.gif 编辑

image.gif 编辑

2. 对比度增强

采用亮通道自适应直方图均衡化方法进行对比度增强。亮通道是指CIElab颜色模型的l通道,自适应直方图均衡化不是针对整幅图像进行处理,而是将图像分成各个块,分别对每个块进行处理,这样可以避免不在一块的暗的地方对亮的地方造成影响,处理完成后再对块直接进行过度。

(三)多尺度特征提取

采用拉普拉斯金字塔对两幅预处理后的图像进行多尺度分解。拉普拉斯金字塔是通过高斯金字塔计算得到的,高斯金字塔上一层尺寸是下一层的1/4,图像经过卷积和下采样操作会丢失部分高频细节信息。拉普拉斯金字塔是高斯金字塔上下两层同一尺寸的差值,这里的同一尺寸指上层图像进行上采样后,尺寸恢复到降采样之前,也就是下层的尺寸。通过拉普拉斯金字塔分解,可以得到图像在不同尺度的细节信息。

(四)自适应权重分配

定义了四种权重图,包括全局对比度权重、局部对比度权重、显著性权重和曝光权重,用于自适应地分配两幅图像在不同尺度的权重。

1. 全局对比度权重

采用拉普拉斯算子计算图像亮通道的全局对比度,拉普拉斯算子可以突出图像中的边缘和细节信息,全局对比度权重反映了图像整体的明暗对比情况。

2. 局部对比度权重

图像亮通道点减去以该点为核心做的低通二项核卷积,最后取平方,用于防止曝光不足或过曝。局部对比度权重关注图像局部区域的对比度变化。

3. 显著性权重

采用基于图论的显著性检测算法计算图像的显著性权重,突出图像中引人注目的区域。

4. 曝光权重

根据图像的曝光情况计算曝光权重,使增强后的图像曝光更加均匀。

对四种权重图进行归一化处理,使得两幅图像的权重之和为1:

image.gif 编辑

(五)融合重建

在每个金字塔层,按照归一化权重将两幅图像的多尺度特征进行融合:

image.gif 编辑

将融合好的多尺度特征按照拉普拉斯金字塔的重建方法恢复回原图:

image.gif 编辑

其中,level为金字塔的层数,G为最终融合重建后的增强图像。

四、基于融合的水下视频增强算法

(一)视频增强总体框架

水下视频增强算法在单幅图像增强算法的基础上,增加了时域一致性处理模块。总体框架包括预处理、多尺度特征提取、自适应权重分配、融合重建和时域一致性处理五个部分。预处理、多尺度特征提取、自适应权重分配和融合重建部分与单幅图像增强算法相同,时域一致性处理模块用于处理相邻帧之间的关系,抑制视频中的闪烁和抖动,提高视频的视觉质量。

(二)时域一致性处理

采用基于边缘保持的降噪算法进行时域一致性处理。该算法在处理相邻帧时,通过计算帧间差异,识别出运动区域和静止区域。对于静止区域,采用加权平均的方法进行融合,减少噪声的影响;对于运动区域,保留其运动信息,同时对边缘进行保持,避免出现模糊和拖影现象。具体实现时,首先计算当前帧与前一帧的差异图像,通过阈值分割将图像分为运动区域和静止区域。对于静止区域,计算当前帧和前一帧对应像素的加权平均值作为当前帧的像素值;对于运动区域,直接采用当前帧的像素值。

五、实验结果与分析

(一)实验数据集

实验采用了公开的水下图像数据集URPC 2018和URPC 2019,以及合成的水下图像数据集。URPC数据集包含大量不同场景、不同水质条件下的水下图像,涵盖了海参、海胆、扇贝和海星等多种目标类别,为实验提供了丰富的测试样本。合成数据集通过基于水下成像模型的方法生成,可以控制不同的参数,如水质类型、深度、光照条件等,用于验证算法在不同条件下的性能。

(二)评价指标

采用主观评价和客观评价相结合的方法对算法性能进行评估。主观评价邀请了多名具有图像处理经验的观察者对增强后的图像和视频进行视觉评估,根据图像的色彩还原、对比度、细节清晰度等方面进行打分。客观评价采用了多种图像质量评价指标,包括峰值信噪比(PSNR)、结构相似性指数(SSIM)、色彩还原指数(CRI)和平均梯度(AG)等。PSNR用于衡量增强图像与真实图像之间的像素误差,值越大表示图像质量越好;SSIM从亮度、对比度和结构三个方面衡量两幅图像的相似性,值越接近1表示相似性越高;CRI用于评估图像的色彩还原能力,值越接近1表示色彩还原越准确;AG用于衡量图像的细节清晰度,值越大表示图像细节越丰富。

(三)实验结果

1. 单幅图像增强实验结果

在URPC 2018和URPC 2019数据集以及合成数据集上进行了单幅图像增强实验,并与多种经典算法进行了对比,包括CLAHE、MLLE、WWPF、基于DCP的算法等。实验结果表明,本文提出的算法在主观评价和客观评价指标上均优于对比算法。在主观评价方面,观察者普遍认为本文算法增强后的图像色彩更加自然、对比度更高、细节更加清晰。在客观评价指标方面,本文算法的PSNR、SSIM、CRI和AG值均高于对比算法,说明本文算法在图像质量提升方面具有显著优势。

2. 视频增强实验结果

在包含不同场景和运动情况的水下视频数据集上进行了视频增强实验。实验结果表明,本文提出的视频增强算法能够有效抑制视频中的闪烁和抖动,提高视频的时域一致性。同时,增强后的视频在色彩还原、对比度和细节清晰度方面也有明显提升,为水下视频的后续处理和分析提供了高质量的数据支持。

六、结论与展望

(一)结论

本文提出了一种基于融合的水下图像与视频增强算法,通过多尺度特征融合、自适应权重分配及物理模型约束,实现了单幅图像与视频序列的有效增强。实验结果表明,该算法在色彩还原、对比度提升及细节保留方面表现优异,能够为海洋资源勘探、水下目标检测等应用提供高质量的视觉数据支持。

(二)展望

未来的研究可以进一步探索更有效的特征提取和融合方法,提高算法的性能和效率。同时,可以结合更多的先验知识和物理模型,进一步提升算法对不同水下环境和场景的适应性。此外,将算法应用于实际的水下机器人系统中,进行实时图像和视频增强,也是未来研究的一个重要方向。

📚2 运行结果

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑 image.gif 编辑

部分代码:

clc;
clear all;
close all;
path = "./images/6.jpg";  %图片自行切换
image = imread(path);
figure,imshow(image),title("origin image");
tic;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% deal with input image for fusion
% input1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
img1 = simple_color_balance(image);
lab1 = rgb_to_lab(img1);    %rgb change to lab
figure,subplot(1,2,1),imshow(img1),title("imupt1 image");
% input2
lab2 = lab1;
% bilateralFilter deal with luminance channel
lab2(:, :, 1) = uint8(bilateralFilter(double(lab2(:, :, 1))));
%lab2(:, :, 1) = uint8(guidedfilter(double(rgb2gray(image)),double(lab2(:, :, 1)), 15*4, 10^-6) );
% adaptive histogram equalization
lab2(:, :, 1) = adapthisteq(lab2(:, :, 1));
img2 = lab_to_rgb(lab2);
subplot(1,2,2),imshow(img2),title("imupt2 image");
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% calculate weight
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
R1 = double(lab1(:, :, 1)/255);
R2 = double(lab2(:, :, 1)/255);
%1. Laplacian contrast weight (Laplacian filiter on input luminance channel)
WL1 = abs(imfilter(R1, fspecial('Laplacian'), 'replicate', 'conv')); 
WL2 = abs(imfilter(R2, fspecial('Laplacian'), 'replicate', 'conv')); 
% 2. Local contrast weight
h = 1/16 * [1, 4, 6, 4, 1];
whc = pi / 2.75;  % high frequency cut-off value
WLC1 = imfilter(R1, h' * h, 'replicate', 'conv');
WLC1(find(WLC1 > whc)) = whc;   
WLC1 = (R1 - WLC1).^2;
WLC2 = imfilter(R2, h' * h, 'replicate', 'conv');
WLC2(find(WLC2 > whc)) = whc;
WLC2 = (R2 - WLC2).^2;
% 3. Saliency weight
WS1 = saliency_detection(img1);
WS2 = saliency_detection(img2);
% 4. Exposedness weight
average = 0.5;
sigma = 0.25;
WE1 = exp(-(R1 - average).^2 / (2 * sigma^2));
WE2 = exp(-(R2 - average).^2 / (2 * sigma^2));
% normalized weight
W1 = (WL1 + WLC1 + WS1 + WE1) ./ (WL1 + WLC1 + WS1 + WE1 + WL2 + WLC2 + WS2 + WE2);
W2 = (WL2 + WLC2 + WS2 + WE2) ./ (WL1 + WLC1 + WS1 + WE1 + WL2 + WLC2 + WS2 + WE2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% image fusion
% R(x,y) = sum G{W} * L{I}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
level = 5;
% weight gaussian pyramid
Weight1 = gaussian_pyramid(W1, level);
Weight2 = gaussian_pyramid(W2, level);
% image laplacian pyramid
% input1
r1 = laplacian_pyramid(double(double(img1(:, :, 1))), level);
g1 = laplacian_pyramid(double(double(img1(:, :, 2))), level);
b1 = laplacian_pyramid(double(double(img1(:, :, 3))), level);
% input2
r2 = laplacian_pyramid(double(double(img2(:, :, 1))), level);
g2 = laplacian_pyramid(double(double(img2(:, :, 2))), level);
b2 = laplacian_pyramid(double(double(img2(:, :, 3))), level);
% fusion
for i = 1 : level
    R_r{i} = Weight1{i} .* r1{i} + Weight2{i} .* r2{i};
    G_g{i} = Weight1{i} .* g1{i} + Weight2{i} .* g2{i};
    B_b{i} = Weight1{i} .* b1{i} + Weight2{i} .* b2{i};
end
% pyramin reconstruct
R = pyramid_reconstruct(R_r);
G = pyramid_reconstruct(G_g);
B = pyramid_reconstruct(B_b);
fusion = cat(3, uint8(R), uint8(G),uint8(B));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
uciqe = UCIQE(fusion)
toc;
figure,imshow(fusion),title("fusion image");

image.gif

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果

相关文章
|
20小时前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
|
21小时前
|
供应链 算法 新能源
高比例可再生能源电力系统的调峰成本量化与分摊模型(Matlab代码实现)
高比例可再生能源电力系统的调峰成本量化与分摊模型(Matlab代码实现)
|
21小时前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
|
21小时前
|
机器学习/深度学习 存储 人工智能
基于双层共识控制的直流微电网优化调度(Matlab代码实现)
基于双层共识控制的直流微电网优化调度(Matlab代码实现)
|
29天前
|
编解码 人工智能 算法
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
124 8
|
1天前
|
机器学习/深度学习 人工智能 JSON
PHP从0到1实现 AI 智能体系统并且训练知识库资料
本文详解如何用PHP从0到1构建AI智能体,涵盖提示词设计、记忆管理、知识库集成与反馈优化四大核心训练维度,结合实战案例与系统架构,助你打造懂业务、会进化的专属AI助手。
36 6
|
1天前
|
Python
LBA-ECO ND-02 巴西塔帕若斯国家森林土壤体积含水量
本数据集包含1999–2001年巴西塔帕若斯国家森林降雨排除实验中土壤体积含水量(VWC)的实测与模拟数据,旨在研究干旱对亚马逊森林的影响。提供实测及STELLA模型模拟的ASCII格式数据,支持通过Python工具访问与分析。
24 5
|
22小时前
|
SQL 人工智能 关系型数据库
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
AI Agent 的核心在于任务规划。本文以阿里云 RDS AI 助手为例,探讨大模型自主规划与人工预设流程的优劣,提出“混合规划”架构:开放场景由模型自主探索,垂直场景依 SOP 执行,实现准确率与灵活性的平衡,推动企业级AI从“能聊”走向“能用”。
|
21小时前
|
机器学习/深度学习 算法 新能源
基于事件触发机制的孤岛微电网二次电压与频率协同控制仿真模型(Simulink仿真实现)
基于事件触发机制的孤岛微电网二次电压与频率协同控制仿真模型(Simulink仿真实现)
|
20小时前
|
算法 机器人 计算机视觉
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)
【图像处理】水下图像增强的颜色平衡与融合技术研究(Matlab代码实现)