【MATLAB图像融合】[18]双通道PCNN模型实现图像融合

article/2025/7/20 10:19:34

引言

简单回顾一下以往的单通道PCNN模型,原理与实现步骤:
13、单通道PCNN原理
14、单通道PCNN融合代码实现

一、单通道PCNN

图1 单通道PCNN:
在这里插入图片描述在单通道PCNN中,对于一个神经元的一次迭代过程正如图1描述:
①、F(i,j)代表外部刺激,在传统模型中这一刺激都是由I(i,j)提供,像素的灰度值直接作为神经元的刺激,在后来的研究中逐渐发现这样做不利于表达像素空间关系,从而使用各种算子代替I(i,j)成为外部刺激,在接收部分中除了外部刺激,还有“内部刺激”,这一刺激来自于上一次迭代的结果以及其他神经元上次迭代的结果,根据一定的权重共同组成“内部刺激”,注意,这一名词并不通用,仅用于理解。
②、调制部分是PCNN内部最重要思想体现,通过接收到的外部刺激与内部刺激,神经元产生了内部活动,内部活动在公式中被命名为U,它实质上是一个计算,将内部刺激视为权值,再结合β这个链接强度决定内部刺激这一权值在内部活动中的重要性,完后一个计算,将外部刺激转换为内部活动值F(i,j)→U(i,j)。
在这里插入图片描述③、设定一个阈值,当内部活动的值大于这个阈值,就产生一个脉冲信号,这一部分就叫做脉冲产生部分,在离散的计算中,产生的脉冲信号就是1。阈值并不是一成不变的,通常选定一个初始阈值,如果内部活动U迟迟不能大于阈值,已经预先选择好的线性衰减系数或指数衰减系数令这个阈值衰减,阈值越来越小,终于U可以大于阈值T了,当产生脉冲信号后,阈值T立刻增大到这个值(初始阈值T加上上次U大于T时的T值),显然此时T>=初始T。
在这里插入图片描述综上所述,我们还是喜欢数学表达式:
在这里插入图片描述

二、双通道PCNN

双通道PCNN其原理与单通道其实类似,我们在使用单通道PCNN进行图像融合时,需要对两幅图像分别进行PCNN的点火,得到点火图之后通常根据极大值原则便确立融合决策图。此时我们的PCNN模型需要独立运行两次–PCNN本身就是迭代计算的,所以运行2次会产生较大的计算开销,这是第一点。第二点就是两个PCNN各自点各自的火,耦合性质只体现在每幅图像内部像素点之间,而图像之间并不存在耦合性。
说了这么多就是为了引出本文的双通道PCNN,它主要是针对上述两点问题而提出的一种“新型”PCNN模型,且提出很久了,分析它的结构,我们还可以做出三通道、四通道PCNN。

图2 双通道PCNN:在这里插入图片描述与单通道一样,双通道同样有3个部分来描述单个神经元的单次运行,如图2。
①、我们在一种定义了外部刺激与内部刺激。在接收部分中,双通道与单通道在内部刺激的接收中是没有区别的,区别在于外部刺激同时接收双线信号:I1与I2,分别表示2个不同的外部刺激,在后面的调制部分中,也将变成两条并行的线路同时计算,增加I的数量,可以类似定义三通道、四通道PCNN。
②、在①中,我们将外部刺激I1与内部刺激结合,可以形成路线1;将外部刺激I2与内部刺激结合,可以形成路线2。这两路同时做U内部活动的计算,但是内部活动U向第三部分脉冲部分进行的时候,只输出一个值,两路产生2个内部活动值,此时,取最大值流入第三部分是它与单通道最大的不同。
在这里插入图片描述③、在经过步骤①②之后,第三部分的工作原理与单通道也是完全一致的。
④、需要注意的是,大体框架虽然没有区别,但是根据用法的不同,实际上的PCNN模型可以做许多微调,比如内部刺激,我们通常采用窗口内神经元的上次迭代值来辅助决策内部刺激,但是有许多成功的dual-PCNN并不采用窗口,而是简单地定义为0或1,。这是出于这样的考虑:
在这里插入图片描述观察这两行公式,L是一个只与前次L和前次Y相关的一个变量,它并不受外部刺激的影响,而在U中,L作为一个数字,还要和β相乘。β的值要么是固定值,要么是自适应,分开讨论:当β是定值,β相当于常数可以直接乘在第一行的L公式里面,L不具备自适应特性,对于单次计算来说,L也是一个固定值,此时β对机制的调节作用要明显于L,此时应当维持原公式不变化;当β是自适应的时候,βL反而会变成一个不确定的值,既然L对机制的调节作用不如β重要,确定了一个β,但是βL整体是不可控的,这对机制的把握其实是不利的,在β不能自适应的时候,我们要依赖L,但是现在β自适应了,L的不确定反而会影响β,因此在很多案例中,把βL作为一个整体去优化,而不单单优化β,因为只优化β依然无法完全控制机制。
基于上面的分析,在双通道PCNN中,既然强调的是2个外部刺激之间的耦合性,那也可以舍弃一定的神经元之间的耦合性,这相当于强化d-PCNN的特性,最终,L被简化为了一个0/1的常数。
这只是一个举例,我们分别给出一个常规双通道PCNN的数学定义,和一个流行的双通道PCNN的数学定义:
常规PCNN

在这里插入图片描述
流行PCNN

在这里插入图片描述在这里插入图片描述在这里插入图片描述
三、代码及分析

clc;clear;close all;
A=imread('05A.jpg');A=double(A);
B=imread('05B.jpg');B=double(B);C=dual_PCNN(A,B);
figure;imshow(A,[]);
figure;imshow(B,[]);
figure;imshow(C,[]);function R=dual_PCNN(matrixA,matrixB)L1=[-1,-1,-1;-1,8,-1;-1,-1,-1];AA=conv2(matrixA,L1,'same');BB=conv2(matrixB,L1,'same');[p,q]=size(matrixA);F_NA=Normalized(matrixA);F_NB=Normalized(matrixB);L=zeros(p,q);U=zeros(p,q);Y=zeros(p,q);Y0=zeros(p,q);Theta=zeros(p,q);betaA=AA;betaB=BB;con=ones(p,q);fuse=zeros(p,q);np=200;alpha_Theta=0.2;vTheta=20;for n=1:npif sum(sum(Y))<=0L=zeros(p,q);else  L=ones(p,q);endTheta=exp(-alpha_Theta)*Theta+vTheta*Y;U=max(F_NA.*(con+betaA.*L),F_NB.*(con+betaB.*L));Y=im2double(U>Theta);Y0=Y0+Y;   endfor i = 1:pfor j = 1:qif(F_NA(i,j)*(1+betaA(i,j)*L(i,j)) == U(i,j ))fuse(i,j) = matrixA(i,j);elseif(F_NB(i,j)*(1+betaB(i,j)*L(i,j)) == U(i,j))fuse(i,j) = matrixB(i,j);endendendend
R=fuse;
endfunction normalized_matrix=Normalized(matrix)input_matrix=abs(matrix);Max_input=max(input_matrix(:));Min_input=min(input_matrix(:));min_matrix=ones(size(input_matrix)).*Min_input;normalized_matrix=(input_matrix-min_matrix)./(Max_input-Min_input+eps);
end

在这里插入图片描述
可以看到,效果还不错,下面补一个单通道的测试结果:


clc;clear;close all;im=imread('05A.jpg');
im=double(im);im2=imread('05B.jpg');
im2=double(im2);
link_arrange=3;
iteration_times=300;firing_times1=PCNN_large_arrange(im,link_arrange,iteration_times);
firing_times2=PCNN_large_arrange(im2,link_arrange,iteration_times);
[m,n]=size(im2);
for i=1:mfor j=1:nif firing_times1>=firing_times2fuse(i,j)=im(i,j);elsefuse(i,j)=im2(i,j);endend
end
figure;imshow(im,[]);
figure;imshow(im2,[]);
figure;imshow(fuse,[]);function R=PCNN_large_arrange(matrix,link_arrange,np)
F_NA=Normalized(matrix);
disp('PCNN is processing...')
[p,q]=size(matrix);alpha_L=1;
alpha_Theta=0.2;beta=3;
vL=1.00;
vTheta=10;
% Generate the null matrix that could be used
L=zeros(p,q);
U=zeros(p,q);
Y=zeros(p,q);
Y0=zeros(p,q);
Theta=zeros(p,q);
% Compute the linking strength.
center_x=round(link_arrange/2);
center_y=round(link_arrange/2);
W=zeros(link_arrange,link_arrange);
for i=1:link_arrangefor j=1:link_arrangeif (i==center_x)&&(j==center_y)W(i,j)=0;elseW(i,j)=1./sqrt((i-center_x).^2+(j-center_y).^2);endend
endF=F_NA;
for n=1:npK=conv2(Y,W,'same');L=exp(-alpha_L)*L+vL*K;Theta=exp(-alpha_Theta)*Theta+vTheta*Y;U=F.*(1+beta*L);Y=im2double(U>Theta);Y0=Y0+Y;   
end
R=Y0;
endfunction [normalized_matrix,cmin,cmax]=Normalized(matrix)
input_matrix=abs(matrix);
Max_input=max(input_matrix(:));
Min_input=min(input_matrix(:));
min_matrix=ones(size(input_matrix)).*Min_input;
normalized_matrix=(input_matrix-min_matrix)./(Max_input-Min_input+eps);
cmin=Min_input;
cmax=Max_input;
end

在这里插入图片描述


http://chatgpt.dhexx.cn/article/u1F7Lpwl.shtml

相关文章

PCNN

Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks 1. 关键字 关系抽取&#xff0c;远程监督 2. 摘要 本文提出了PCNNs&#xff0c;用来解决远程监督关系抽取中的两个问题&#xff1a;一个是在对齐知识图谱时的错误标注问题&#xff0…

【NLP】基于神经网络PCNN(Piece-Wise-CNN)的关系抽取模型

背景 关系抽取是信息抽取的基本任务之一&#xff0c;对于知识库的构建以及文本的理解十分重要&#xff0c;在自然语言处理的一些任务&#xff0c;如问答&#xff0c;文本理解等得到了广泛的应用。 这里介绍的关系抽取主要指的是实体之间的关系抽取&#xff0c;实体是之前NER任…

PCNN 脉冲耦合神经网络整理

PCNN 脉冲耦合神经网络 脉冲耦合神经元模型 神经元的输入有哪些&#xff1f; 首先来看看这个神经元的图示的左边&#xff0c;有 Y Y Y和 F F F。 Y Y Y为这个神经元之前输出的数值&#xff0c;就是说这个模型需要进行多次的运算&#xff0c;每次的运算需要上一次运算的值来做…

关系抽取之分段卷积神经网络(PCNN)

文章目录 远程监督PCNN关系抽取PCNN方法论向量表达卷积层分段最大池化层Softmax层多实例学习 Reference Tensorflow2.2实现&#xff0c;见github仓库。 远程监督 关系抽取训练集标注成本高&#xff0c;一般使用远程监督方法&#xff08;半监督&#xff09;自动标注数据。远程监…

脉冲耦合神经网络(PCNN)阅读笔记

摘要 本文采用高级视觉模型来描述灵长类视觉系统中的信息传递和连接。信息链接方案&#xff0c;如状态相关模块化和时间同步&#xff0c;被视为视觉系统使用期望组合信息的方法&#xff0c;以填充缺失信息和删除不需要的信息。研究了使用基于生理学理论模型的链接方法结合当前…

PCNN的知识抽取

PCNN是一个结构简单的CNN网络, 它最初被用于在已知实体对位置时, 辨别实体对关系的网络. 上图是论文里带的PCNN结构图. PCNN的输入由两部分构成, 一部分是词本身的词向量word, 另一部分是词相对于实体词的位置信息position. PCNN优秀的地方就在于加入了位置信息, 具体如下: 1.…

基于PCNN脉冲耦合神经网络的图像分割

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 脉冲耦合神经网络&#xff08;PCNN-Pulse Coupled Neural Network&#xff09;与传统神经网络相比&#xff0c;有着根本的不同。PCNN有生物学的背景&#xff0c;它是依据猫、猴等动物的大脑皮层上…

【MATLAB图像融合】[13]PCNN脉冲耦合神经网络基本原理

→这是一篇学习笔记。 →但考虑要发出来&#xff0c;还是排版了&#xff0c;请放心食用。 PCNN在图像融合中应用广泛 1、脉冲耦合的神经元之间有有耦合和无耦合两种形式。&#xff0c;有耦合的神经元之间存在能量传播&#xff0c;产生同步脉冲发放&#xff0c;从而将输入相似的…

【图像特征提取】基于matlab脉冲耦合神经网络(PCNN)图像特征提取【含Matlab源码 1868期】

⛄一、脉冲耦合神经网络&#xff08;PCNN&#xff09;图像特征提取简介 1 引言 随这生物神经学的迅速发展及其研究的进一步深入&#xff0c;国外对一种叫做第三代人工神经网络的模型——脉冲耦合神经网络模型——PCNN&#xff08;Pulse Coupled Neural Network&#xff09;模型…

脉冲耦合神经网络(PCNN)-pulse coupled neural network

摘要 本文采用高级视觉模型来描述灵长类视觉系统中的信息传递和连接。信息链接方案&#xff0c;如状态相关模块化和时间同步&#xff0c;被视为视觉系统使用期望组合信息的方法&#xff0c;以填充缺失信息和删除不需要的信息。研究了使用基于生理学理论模型的链接方法结合当前图…

NTFS 数据流隐写学习

NTFS 数据流隐写学习 —— 概念学习&#xff1a; NTFS文件系统中存在NTFS数据流文件也被称为 Alternate data streams&#xff08;ADS&#xff09;&#xff0c; 是NTFS磁盘格式的一个特性之一每个文件都有主文件流和非主文件流&#xff0c;主文件流能够直接看到&#xff1b;…

CTF隐写知识

通用知识 通用软件 010或winhex或HxD或HexEditXP 一.在文件中加入字符 jpg文件头 FF D8 jpg 文件尾 FF D9 FF D9后面的都是增加的内容; 增加的可能是字符串&#xff0c;也可能是另一个文件&#xff08;就是把多个文件的十六进制放在一起&#xff09; 二.ZIP格式文件分离 十…

图片隐写术总结

0x00 前言 之前还没有见到drops上有关于隐写术的总结&#xff0c;我之前对于隐写术比较有兴趣&#xff0c;感觉隐写术比较的好玩。所以就打算总结总结一些隐写术方面的东西。写的时候&#xff0c;可能会有错误的地方&#xff0c;请不吝赐教&#xff0c;谢谢。 本篇章中用到的隐…

图像隐写分析——生成含密图像 Stego Image

文章目录 一 图像隐写分析的数据集二 含密图像展示三 结语 一 图像隐写分析的数据集 小编本科毕设的题目是《基于深度学习的图像隐写分析》&#xff0c;图像隐写分析问题本质上是一个二分类&#xff08;binary classifier&#xff09;问题&#xff0c;即判断一张图片中是否含有…

图片LSB信息隐写

LSB&#xff08;全大写&#xff09;有时也指Least Significant Byte&#xff0c;指多字节序列中最小权重的字节。指的是一个二进制数字中的第0位&#xff08;即最低位&#xff09; RGB色彩模式是工业界的一种颜色标准&#xff0c;是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化…

F3隐写

F3隐写 文章目录 F3隐写1. 引言2. 实验环境3. 实现使用的现有外部库4. 实现思路> **预处理**> **DCT量化**>**秘密信息嵌入**> **Z字形序列化**>**Huffman编码**>**反Z字形序列化**>**提取秘密信息** 5.验证6. 总结 1. 引言 数字隐写技术是一种在数字媒体…

TTL隐写

#拿到一个长成这样的文件&#xff0c;里面是意义不明的数字 63 63 63 255 63 63 63 255 63 63 63 255 63 63 63 255 63 63 63 255 63 63 63 255 63 127 63 255 63转换为2进制&#xff0c;并设置为8位数的2进制&#xff0c;就会有很神奇的事情发生 with open(C:/Users/brighten…

深度学习之图像隐写去除(DDSP模型 Steganography Removal)

文章目录 一 前言二 论文内容2.1 Abstract2.2 Introduction2.3 Background2.3.1 Prior Work2.3.2 Super Resolution GAN 超分辨率GAN 2.4 Data2.5 Deep Digital Steganography Puricication (重头戏)2.5.1 Autoencoder Architecture2.5.1 GAN Training 2.6 Result 三 训练结果四…

SRNet隐写分析网络模型 (pytorch实现)

文章目录 一 SRNet隐写分析模型介绍二 SRNet网络概述三 训练结果展示 一 SRNet隐写分析模型介绍 SRNet模型是宾汉姆顿大学(Binghamton University)Jessica教授团队于2018年提出的图像隐写分析网络模型&#xff0c;应该说是当时SOTA(state-of-the-art)的隐写分析网络模型了&…

GIF隐写

CTF DAY1的倒数第二题&#xff1a; 首先 打开图片 发现打不开 用010 Editor 发现图片开头少了文件头 添加文件头 使得图片能够看到 这时候打开图片 发现 密码一闪而过 这时候 用到另一个软件 Namo_Gif 打开刚刚已经恢复好的GIF 可以清楚的看到每一帧 对于每一帧 修改他…