立体匹配中的评价指标
记录立体匹配中的评价指标,包括视差估计指标、图像相似度指标、光流估计指标等。
点击这里 查看jupyter notebook
🖼 图像相似度指标
PSNR(Peak Signal-to-Noise Ratio)峰值信噪比
定义:给定一个大小为 m × n m \times n m×n的干净图像I和噪声图像K
- 均方误差MSE定义为:
M S E = 1 m n ∑ i = 0 m − 1 ∑ j = 0 n − 1 [ I ( i , j ) − K ( i , j ) ] 2 MSE = \frac{1}{mn}\sum^{m-1}_{i=0}\sum^{n-1}_{j=0}[I(i,j)-K(i,j)]^{2} MSE=mn1i=0∑m−1j=0∑n−1[I(i,j)−K(i,j)]2
- 峰值信噪比PSNR定义为:
P S N R = 10 l ˙ o g 10 ( M A X I 2 M S E ) PSNR = 10 \dot log_{10}(\frac{MAX^{2}_{I}}{MSE}) PSNR=10l˙og10(MSEMAXI2)
像素值取0-255时 M A X I = 255 MAX_{I}=255 MAXI=255,像素值取0-1时 M A X I = 1 MAX_{I}=1 MAXI=1
python中可以调用
psnr = skimage.metrics.peak_signal_noise_ratio(im1, im2, 255)
SSIM(Structural SIMilarity)结构相似性
结构相似性更符合人类评价标准。
定义:对比样本 x x x和 y y y的亮度(luminance)、对比度(contrast)和结构(structure)。
- 亮度、对比度和结构三个分量对比计算公式:
l ( x , y ) = 2 μ x μ y + c 1 μ x 2 + μ y 2 + c 1 l(x,y) = \frac{2\mu_{x}\mu_{y}+c_{1}}{\mu^{2}_{x}+\mu^{2}_{y}+c_{1}} l(x,y)=μx2+μy2+c12μxμy+c1
c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 c(x,y) = \frac{2\sigma_{x}\sigma_{y}+c_{2}}{\sigma^{2}_{x}+\sigma^{2}_{y}+c_{2}} c(x,y)=σx2+σy2+c22σxσy+c2
s ( x , y ) = σ x y + c 3 σ x σ y + c 3 s(x,y) = \frac{\sigma_{xy}+c_{3}}{\sigma_{x}\sigma_{y}+c_{3}} s(x,y)=σxσy+c3σxy+c3
- 结构相似性SSIM计算公式:
S S I M = [ l ( x , y ) α c ( x , y ) β s ˙ ( x , y ) γ ] SSIM = [l(x,y)^{\alpha} c(x,y)^{\beta} \dot s(x,y)^{\gamma}] SSIM=[l(x,y)αc(x,y)βs˙(x,y)γ]
取 α = β = γ = 1 \alpha=\beta=\gamma=1 α=β=γ=1
S S I M = ( 2 μ x μ y + c 1 ) ( 2 σ x y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 ) SSIM=\frac{(2\mu_{x}\mu_{y}+c_{1})(2\sigma_{xy}+c_{2})}{(\mu^{2}_{x}+\mu^{2}_{y}+c_{1})(\sigma^{2}_{x}+\sigma^{2}_{y}+c_{2})} SSIM=(μx2+μy2+c1)(σx2+σy2+c2)(2μxμy+c1)(2σxy+c2)
SSIM最大值为1
c 3 c_{3} c3、 α \alpha α、 β \beta β和 γ \gamma γ是超参数,经验参考值如: c 3 = c 2 / 2 、 α = β = γ = 1 c_{3}=c_{2}/2、\alpha=\beta=\gamma=1 c3=c2/2、α=β=γ=1
μ x 、 μ y \mu_{x}、\mu_{y} μx、μy为 x x x和 y y y的均值, σ x y \sigma_{xy} σxy为 x x x和 y y y的协方差, σ x 2 、 σ x 2 \sigma^{2}_{x}、\sigma^{2}_{x} σx2、σx2为 x x x和 y y y的方差
常数 c 1 = ( k 1 L ) 2 , c 2 = ( k 2 L ) 2 c_{1}=(k_{1}L)^{2},c_{2}=(k_{2}L)^{2} c1=(k1L)2,c2=(k2L)2可以避免分母为0, k 1 = 0.01 , k 2 = 0.03 k_{1}=0.01,k_{2}=0.03 k1=0.01,k2=0.03为默认值, L = 2 B − 1 L=2^{B}-1 L=2B−1为图片像素的取值范围, B B B为图像位数。
python中可以调用
ssim = skimage.metrics.structural_similarity(im1, im2, 255)
每次计算的时候都从图片上取一个的窗口,然后不断滑动窗口进行计算,最后取平均值作为全局的 SSIM。
针对超光谱图像,我们需要针对不同波段分别计算 SSIM,然后取平均值,这个指标称为 MSSIM。
MS-SSIM(Multi-scale Structural SIMilarity)多尺度结构相似性
图片按照一定规则,由大到小缩放,下面是MS-SSIM的计算过程图:
![](https://i-blog.csdnimg.cn/blog_migrate/8b070f951bf9d9a9d077ac0c8b6cd99f.png)
计算公式如下:
M S − S S I M ( x , y ) = [ l M ( x , y ) ] α M ∗ ∏ j = 1 M ( [ c j ( x , y ) ] β j ∗ [ s j ( x , y ) ] γ j ) MS-SSIM(x,y) = [l_{M}(x,y)]^{\alpha_{M}} * \prod \limits_{j = 1}^{M}([c_{j}(x,y)]^{\beta_{j}} * [s_{j}(x,y)]^{\gamma_{j}}) MS−SSIM(x,y)=[lM(x,y)]αM∗j=1∏M([cj(x,y)]βj∗[sj(x,y)]γj)
M一般取5,也就是缩小4次的尺度加上原始尺度,共5个尺度
α M , β j , γ j \alpha_{M},\beta_{j},\gamma_{j} αM,βj,γj为相关重要性权重:
α M \alpha_{M} αM表示最后一个尺度的亮度相关重要性权重
β j \beta{j} βj表示第j个尺度的对比度相关重要性权重
γ j \gamma{j} γj表示第j个尺度的结构相关重要性权重
论文中这些参数标定为: β 1 = γ 1 = 0.0448 , β 2 = γ 2 = 0.2856 , β 3 = γ 3 = 0.3001 , β 4 = γ 4 = 0.2363 , α 5 = β 5 = γ 5 = 0.1333 \beta_{1}=\gamma_{1}=0.0448,\beta_{2}=\gamma_{2}=0.2856,\beta_{3}=\gamma_{3}=0.3001,\beta_{4}=\gamma_{4}=0.2363,\alpha_{5}=\beta_{5}=\gamma_{5}=0.1333 β1=γ1=0.0448,β2=γ2=0.2856,β3=γ3=0.3001,β4=γ4=0.2363,α5=β5=γ5=0.1333