立体匹配中的评价指标

立体匹配中的评价指标

记录立体匹配中的评价指标,包括视差估计指标、图像相似度指标、光流估计指标等。

点击这里 查看jupyter notebook

图像相似度指标

PSNR(Peak Signal-to-Noise Ratio)峰值信噪比

skimage-mse接口地址

skimage-psnr接口地址

定义:给定一个大小为 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=0m1j=0n1[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)结构相似性

结构相似性更符合人类评价标准。

SSIM 研究主页

SSIM 论文

skimage-ssim接口地址

定义:对比样本 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=2B1为图片像素的取值范围, B B B为图像位数。

python中可以调用ssim = skimage.metrics.structural_similarity(im1, im2, 255)

每次计算的时候都从图片上取一个的窗口,然后不断滑动窗口进行计算,最后取平均值作为全局的 SSIM。

针对超光谱图像,我们需要针对不同波段分别计算 SSIM,然后取平均值,这个指标称为 MSSIM。

MS-SSIM(Multi-scale Structural SIMilarity)多尺度结构相似性

MS-SSIM 论文

pytorch-msssim源码Github地址

pytorch-msssim包地址

图片按照一定规则,由大到小缩放,下面是MS-SSIM的计算过程图:

立体匹配中的评价指标_第1张图片

计算公式如下:

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}}) MSSSIM(x,y)=[lM(x,y)]αMj=1M([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

TODO …

你可能感兴趣的:(双目立体视觉,python,计算机视觉)