【图像融合】基于深度学习的多曝光图像融合附matlab代码

简介: 【图像融合】基于深度学习的多曝光图像融合附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

图像融合,是信息融合的其中一个分支,也是融合问题的热点之一。处理多焦点图像融合的问题中,如何从两幅待融合图像中提取到更多特征来得到更精准的决策图是解决该问题的关键。几十年来,许多研究人员提出了大量图像融合算法。在拍摄照片的过程中,选择不同的光圈和焦距会使很多成像设备在不同景深下难以对画面中的所有对象进行聚焦,仅景深中的物体是清晰的,所以很难得到各个层面上的完整信息。为了解决该问题,出现了多焦点图像融合技术。虽然任何一张图片中的信息都不能说明整个场景,但这些图像中包含的信息又是互补的,所以多焦点图像融合问题可以通过对具有不同焦点的图像进行特征提取,并设计融合规则来合成一幅全焦点图像。在过去几年中,出现了一些多焦点图像融合方法,大致可以分为空间域和变换域两类。除此之外,随着近年来深度学习在计算机视觉和图像处理领域中得到了显著进展,如目标检测、图像分割等,也有一些用于多焦点图像融合的深度学习方法被提出。然而,基于传统图像融合方法需要对图像中的像素做焦点检测,这个过程往往采用基于块和区域的方法,因此融合的质量会受到划分方法影响,常出现边缘不理想的问题。除此之外,还需要设计较为复杂的融合规则来对多焦点图像进行融合。在后续提出的有关深度学习的图像融合方法,其网络结构往往较为单一,在训练过程中没有实现端到端的像素级预测,融合结果在细小的边缘处常出现伪影。

VGG网络

VGG原理

VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。

对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。

简单来说,在VGG中,使用了3个3x3卷积核来代替7x7卷积核,使用了2个3x3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。

比如,3个步长为1的3x3卷积核的一层层叠加作用可看成一个大小为7的感受野(其实就表示3个3x3连续卷积相当于一个7x7卷积),其参数总量为 3x(9xC^2) ,如果直接使用7x7卷积核,其参数总量为 49xC^2 ,这里 C 指的是输入和输出的通道数。很明显,27xC2小于49xC2,即减少了参数;而且3x3卷积核有利于更好地保持图像性质。

这里解释一下为什么使用2个3x3卷积核可以来代替55卷积核:

5x5卷积看做一个小的全连接网络在5x5区域滑动,我们可以先用一个3x3的卷积滤波器卷积,然后再用一个全连接层连接这个3x3卷积输出,这个全连接层我们也可以看做一个3x3卷积层。这样我们就可以用两个3x3卷积级联(叠加)起来代替一个 5x5卷积。

VGG网络结构

⛄ 部分代码

function W_CNN=cnnFeatures_newnew(I)

net=vgg19;

beta=0.2;  % constant used in exposure mask calculation

for ii=1:size(I,4)

   %fetaure extraction from first layer

   features(:,:,:,ii) = activations(net,I(:,:,:,ii),1,'OutputAs','channels');

   features(:,:,:,ii)=double(features(:,:,:,ii));

   %     features(:,:,ii)=(newfeatures(:,:,1,ii)+newfeatures(:,:,2,ii)+newfeatures(:,:,3,ii))/3;

   for jj=1:size(I,3)

       temp=norm(features(:,:,jj,ii),1);

       V(:,:,jj,ii)=(features(:,:,jj,ii)./temp);   %strength of feature vector

%         temp1=norm(features(:,:,jj,ii));

%         sij(:,:,jj,ii)=(features(:,:,jj,ii)./temp1); %temporal consistency

%         S_temp(:,:,jj,ii)=exp(-((sij(:,:,jj,ii)).^2)./(2*0.05^2));

       % exposure mask calculation

       %         grayI(:,:,:,ii)=normalize(rgb2gray(I(:,:,:,ii)));

       for pp=1:size(I,1)

           for qq=1:size(I,2)

               if (beta<I(pp,qq,jj,ii))&&(I(pp,qq,jj,ii)<(1-beta))

                   M(pp,qq,jj,ii)=1;

               else

                   M(pp,qq,jj,ii)=0;

               end

           end

       end

       

       

   end

end

for ii=1:size(I,4)

   for jj=1:size(I,3)

       temp1=norm(features(:,:,jj,ii));

       temp2(:,:,jj,ii)=(features(:,:,jj,ii)./temp1); %temporal consistency

   end

end

S_temp=euclideanDist(temp2); %temporal consistency

S=zeros(size(I,1),size(I,2),size(I,3));

V_imagesum=zeros(size(I,1),size(I,2),size(I,3));

denom=zeros(size(I,1),size(I,2),size(I,3));

for ii=1:size(I,4)

   S=S+S_temp(:,:,:,ii); % temporal consistemcy

   V_imagesum=V_imagesum+V(:,:,:,ii);

%     denom=denom+V(:,:,:,ii).*S_temp(:,:,:,ii).*M(:,:,:,ii);

   denom=denom+V(:,:,:,ii);


end

% weights calculation

for ii=1:size(I,4)

%     W_CNN(:,:,:,ii)=(V(:,:,:,ii).*S.*M(:,:,:,ii))./(denom+10e-5);

     W_CNN(:,:,:,ii)=(V(:,:,:,ii)./(denom));


%     for jj=1:3

%         W_CNN(:,:,jj,ii)=medfilt2(W_CNN(:,:,jj,ii));    

%     end

end


⛄ 运行结果

⛄ 参考文献

[1]陈清江, 李毅, 柴昱洲. 一种基于深度学习的多聚焦图像融合算法[J]. 激光与光电子学进展, 2018, 55(7):9.

[2]李怡. 基于深度学习的多焦点图像融合算法研究[D]. 吉林大学.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
7天前
|
机器学习/深度学习 并行计算 PyTorch
图像检测【YOLOv5】——深度学习
Anaconda的安装配置:(Anaconda是一个开源的Python发行版本,包括Conda、Python以及很多安装好的工具包,比如:numpy,pandas等,其中conda是一个开源包和环境管理器,可以用于在同一个电脑上安装不同版本的软件包,并且可以在不同环境之间切换,是深度学习的必备平台。) 一.Anaconda安装配置. 1.首先进入官网:https://repo.anaconda.com,选择View All Installers. 2.打开看到的界面是Anaconda的所以安装包版本,Anaconda3就代表是Python3版本,后面跟的是发行日期,我选择了最近的2022
42 28
|
6天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习之文本引导的图像编辑
基于深度学习的文本引导的图像编辑(Text-Guided Image Editing)是一种通过自然语言文本指令对图像进行编辑或修改的技术。
23 8
|
8天前
|
机器学习/深度学习 自然语言处理 并行计算
深度学习之图像描述生成
基于深度学习的图像描述生成(Image Captioning)是一种将计算机视觉与自然语言处理结合的任务,其目标是通过自动生成自然语言来描述输入的图像。该技术能够理解图像中的视觉内容,并生成相应的文本描述,广泛应用于视觉问答、辅助盲人、自动视频字幕生成等领域。
24 7
|
17天前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
|
1月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
106 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
23天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真
本项目展示了使用MATLAB 2022a和USB摄像头识别显示器上不同水果图片的算法。通过预览图可见其准确识别效果,完整程序无水印。项目采用GoogleNet(Inception-v1)深度卷积神经网络,利用Inception模块捕捉多尺度特征。代码含详细中文注释及操作视频,便于理解和使用。
|
20天前
|
机器学习/深度学习 人工智能 算法框架/工具
深入浅出:使用深度学习进行图像分类
【8月更文挑战第31天】在本文中,我们将一起探索如何利用深度学习技术对图像进行分类。通过简明的语言和直观的代码示例,我们将了解构建和训练一个简单卷积神经网络(CNN)模型的过程。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供清晰的指导和启发性的见解,帮助你理解并应用深度学习解决实际问题。
|
1月前
|
机器学习/深度学习 人工智能 算法
【深度学习】python之人工智能应用篇——图像生成技术(二)
图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。
37 9
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】深度学习的概述及应用,附带代码示例
深度学习(Deep Learning,简称DL)是机器学习领域中的一个重要分支,其目标是通过模拟人脑神经网络的工作机制,构建多层次的抽象特征表示,使机器能够自动从原始数据中提取关键信息,从而实现高精度的任务执行。深度学习通过多层神经网络结构及其训练方式,实现了从低级像素级别到高级概念级别的递进式知识层次。 深度学习的主要组件包括输入层、隐藏层和输出层。隐藏层的数量和层数决定了模型的复杂度和表达能力。在训练过程中,权重更新和梯度下降法是关键步骤,目的是最小化损失函数,提高预测精度。深度学习主要基于反向传播算法(BP Algorithm)来优化模型参数,通过正向传播、损失计算、反向传播和梯度下降等
71 8
|
29天前
|
机器学习/深度学习 API 计算机视觉
如何使用深度学习实现图像分类
深度学习在图像分类中扮演着核心角色,通过卷积神经网络(CNN)自动提取图像特征并分类。本文介绍深度学习原理及其实现流程,包括数据准备、构建CNN模型、训练与评估模型,并讨论如何在阿里云上部署模型及其实用场景。

热门文章

最新文章