本文主要是介绍GTF:通过梯度转移和总变异最小化红外和可见图像融合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 📝论文下载地址
- 🔨代码下载地址
- 👨🎓论文作者
- 📦模型讲解
- [论文解读]
- [目标函数]
- [总变化最小进行优化]
- [广义GTF算法]
- [伪代码]
📝论文下载地址
[论文地址]
🔨代码下载地址
[GitHub-official]
👨🎓论文作者
📦模型讲解
[论文解读]
作者首先介绍基于梯度传递的融合公式,然后提供使用总变化最小化的优化方法。
[目标函数]
如果给定一组融合的可见光图像和红外图像,需要生成的图像要从两张图像获得辐射信息和细节信息。假设可见光和红外图像以及融合图像均为 m × n m×n m×n的灰度图像,表示为 v 、 u 、 x v、u、x v、u、x。
首先,红外图像的像素值是由热辐射决定,所以目标与背景的亮度差异巨大,更容易在红外图像中发现目标。这对这一特点,作者将融合图像的亮度更接近与红外图像的亮度,也就i是像素值的大小。例如,可以设定一些 L p \mathcal L^p Lp范数来衡量两者的差异:
L 1 ( x ) = 1 p ∣ ∣ x − u ∣ ∣ p p L_1(x)=\frac{1}{p}||x−u||^p_p L1(x)=p1∣∣x−u∣∣pp
另外,为了获得更详细的外观信息,融合图像的像素值大小同样需要与可见光图像相似。但是,一些情况下可见光图像与红外图像的亮度会有很大的差异,同时优化以下公式往往生成的融合图像 x x x效果并不好。
L 1 ( x ) = 1 p ∣ ∣ x − u ∣ ∣ p p L 2 ( x ) = 1 q ∣ ∣ x − v ∣ ∣ q q L_1(x)=\frac{1}{p}||x−u||^p_p\\L_2(x)=\frac{1}{q}||x−v||^q_q L1(x)=p1∣∣x−u∣∣ppL2(x)=q1∣∣x−v∣∣qq
图像的细节信息更多的体现在纹理上,也就是图像的梯度。可见光图像相对于红外图像有更丰富的纹理梯度信息,所以生成的融合图像的梯度可以继承于了见光图像的梯度:
L 2 ( x ) = 1 q ∣ ∣ ∇ x − ∇ v ∣ ∣ q q L_2(x)=\frac{1}{q}||\nabla x−\nabla v||^q_q L2(x)=q1∣∣∇x−∇v∣∣qq
其中 ∇ \nabla ∇表示求梯度。在 q = 0 q=0 q=0的情况下,就是求 ∇ x − ∇ v \nabla x-\nabla v ∇x−∇v的非零项个数。
那么如果结合两部分公式,得到:
L ( x ) = L 1 ( x ) + L 2 ( x ) = 1 p ∣ ∣ x − u ∣ ∣ p p + λ 1 q ∣ ∣ ∇ x − ∇ v ∣ ∣ q q L(x)=L_1(x)+L_2(x)\\=\frac{1}{p}||x-u||^p_p+\lambda\frac{1}{q}||\nabla x-\nabla v||_q^q L(x)=L1(x)+L2(x)=p1∣∣x−u∣∣pp+λq1∣∣∇x−∇v∣∣qq
其中第一项是约束融合图像在亮度上接近于红外图像,第二项是约束融合图像在梯度上接近于可见光图像的梯度, λ \lambda λ是平衡两项的参数。
[总变化最小进行优化]
接下来作者分析了 p 、 q p、q p、q的选择。
首先,对于 p p p。如果融合图像x和红外u之间的差异为高斯时 p = 2 p=2 p=2,如果是拉普拉斯或者脉冲的情况下 p = 1 p=1 p=1。期望融合图像最大程度继承红外图像,那么 L 1 L_1 L1就要尽可能为0,也就是融合图像的像素值与红外图像尽可能一样,而不同的像素值可能是可见光梯度,也就是第二项 L 2 L_2 L2造成的。因此,作者认为融合图像x和红外u之间的差异为拉普拉斯或者脉冲而不是高斯,所以 p = 1 p=1 p=1。另外,对于 q q q。作者通过几篇相关文献确定 q = 1 q=1 q=1。
L ( x ) = L 1 ( x ) + L 2 ( x ) = ∣ x − u ∣ + λ ∣ ∇ x − ∇ v ∣ L(x)=L_1(x)+L_2(x)\\=|x-u|+\lambda|\nabla x-\nabla v| L(x)=L1(x)+L2(x)=∣x−u∣+λ∣∇x−∇v∣
如果定义 y = x − v y=x-v y=x−v,那么目标函数可以写为:
y ∗ = arg min y { ∑ i = 1 m n ∣ y i − ( u i − v i ) + λ J ( y ) ∣ } J ( y ) = ∑ i = 1 m n ∣ ∇ i y ∣ = ∑ i = 1 m n ( ∇ i h y ) 2 + ( ∇ i v y ) 2 y*=\arg\min_y\{\sum_{i=1}^{mn}|y_i-(u_i-v_i)+\lambda J(y)|\}\\ J(y)=\sum_{i=1}^{mn}|\nabla_iy|=\sum_{i=1}^{mn}\sqrt{(\nabla_i^hy)^2+(\nabla_i^vy)^2} y∗=argymin{i=1∑mn∣yi−(ui−vi)+λJ(y)∣}J(y)=i=1∑mn∣∇iy∣=i=1∑mn(∇ihy)2+(∇ivy)2
其中假如 x = ( x 1 , x 2 ) ∈ R 2 x=(x_1,x_2)\in \mathbb R^2 x=(x1,x2)∈R2,那么 ∣ x ∣ = x 1 2 + x 2 2 |x|=\sqrt{x_1^2+x_2^2} ∣x∣=x12+x22, ∇ i = ( ∇ i h , ∇ i h ) \nabla _i=(\nabla^h_i,\nabla_i^h) ∇i=(∇ih,∇ih), ∇ i h \nabla_i^h ∇ih, ∇ i v \nabla_i^v ∇iv表示纵向和横向的梯度,即:
∇ i h x = x i − x r ( i ) ∇ i v x = x i − x b ( i ) \nabla_i^hx=x_i-x_{r(i)}\\\nabla_i^vx=x_i-x_{b(i)} ∇ihx=xi−xr(i)∇ivx=xi−xb(i)
其中 r ( i ) 、 b ( i ) r(i)、b(i) r(i)、b(i)表示 i i i的右边和下边相邻的像素。对于最后一行或者最后一列, r ( i ) 、 b ( i ) r(i)、b(i) r(i)、b(i)都取 i i i。目标函数是凸优化问题,GTF算法简单有效。最后融合结果是 x = y + v x=y+v x=y+v。
[广义GTF算法]
作者使用 T \mathcal T T表示对可见光图像的空间变换,是可见光图像 v ( T ) v(\mathcal T) v(T)与红外图像 u u u对齐。目标函数可以转换为:
L ( x , T ) = ∣ ∣ x − u ∣ ∣ 1 + λ ∣ ∣ ∇ x − ∇ v ( T ) ∣ ∣ 1 L(x,\mathcal T)=||x-u||_1+\lambda||\nabla x-\nabla v(\mathcal T)||_1 L(x,T)=∣∣x−u∣∣1+λ∣∣∇x−∇v(T)∣∣1
目标函数中有两个未知量,分别是融合图像 u u u与空间变换 T \mathcal T T。当解决一个变量时在另一个变量信息未知情况下是困难的。但是当确定了一个变量解决另一个会相对容易。可以通过固定一个变量收敛另一个来不断迭代来解决问题。例如,可以通过固定 T \mathcal T T来解决获得 x x x。让 y = x − v ( T ) y=x-v(\mathcal T) y=x−v(T):
y ∗ = arg min y { 1 2 ∣ ∣ y − ( u − v ( T ) ) ∣ ∣ 1 + λ J ( y ) } y*=\arg\min_y\{\frac{1}{2}||y-(u-v(\mathcal T))||_1+\lambda J(y)\} y∗=argymin{21∣∣y−(u−v(T))∣∣1+λJ(y)}
固定 x x x解决 T \mathcal T T:
L ( T ) = ∣ ∣ ∇ x − ∇ v ( T ) ∣ ∣ 1 = ∑ i = 1 m n ( ∇ i h x − ∇ i h v ( T ) ) 2 + ( ∇ i v x − ∇ i v v ( T ) ) 2 L(\mathcal T)=||\nabla x-\nabla v(\mathcal T)||_1\\=\sum_{i=1}^{mn}\sqrt{(\nabla_i^hx-\nabla_i^hv(\mathcal T))^2+(\nabla_i^vx-\nabla_i^vv(\mathcal T))^2} L(T)=∣∣∇x−∇v(T)∣∣1=i=1∑mn(∇ihx−∇ihv(T))2+(∇ivx−∇ivv(T))2
计算目标函数及梯度时:
r = ( ∇ h x − ∇ h v ( T ) , ∇ v x − ∇ v v ( T ) ) s = ( ∇ h v ( T ) , ∇ v v ( T ) ) L = t r ( ( r r T ) 1 / 2 ) ∇ L = − 1 2 ( r r T ) − 1 / 2 r ∇ s ∂ T ∂ θ r=(\nabla ^hx-\nabla^hv(\mathcal T),\nabla ^vx-\nabla^vv(\mathcal T))\\s=(\nabla^hv(\mathcal T),\nabla^vv(\mathcal T))\\L=tr((rr^T)^{1/2})\\\nabla L=-\frac{1}{2}(rr^T)^{-1/2}r\nabla s\frac{\partial\mathcal T}{\partial\theta} r=(∇hx−∇hv(T),∇vx−∇vv(T))s=(∇hv(T),∇vv(T))L=tr((rrT)1/2)∇L=−21(rrT)−1/2r∇s∂θ∂T
其中 r 、 s r、s r、s是 m n × 2 mn×2 mn×2的矩阵, t r ( . ) tr(.) tr(.)表示迹, ∇ s \nabla s ∇s可以从水平梯度 ∇ h v ( T ) \nabla ^hv(\mathcal T) ∇hv(T)和垂直梯度 ∇ v v ( T ) \nabla ^vv(\mathcal T) ∇vv(T)得到, θ \theta θ表示仿射变换的参数。
[伪代码]
算法 1:没有预对齐的GTF算法 |
---|
输入: 红外图像 u u u,可见光图像 v v v,参数 λ \lambda λ |
输出: 融合图像 u u u |
1 提取 u 、 v u、v u、v的Canny边缘图,并使用采样方法离散化。 |
2 使用仿射模型的CPD算法对齐两个点集并相应的初始化 T \mathcal T T |
3 重复 |
4 通过提出的算法优化目标函数( T \mathcal T T固定优化 y y y的目标函数)计算 y y y |
5 设置融合图像 x ← y + v ( T ) x←y+v(\mathcal T) x←y+v(T) |
6 使用牛顿法优化慕白哦函数( y y y固定优化 T \mathcal T T的目标函数)以及其梯度计算的公式计算 T \mathcal T T |
7 直至 停止准则 |
8 通过 x = y + v ( T ) x=y+v(\mathcal T) x=y+v(T)计算融合图像 x x x |
这篇关于GTF:通过梯度转移和总变异最小化红外和可见图像融合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!