深度学习用于图像/视频增强的损失函数(loss)及评价指标

图像/视频增强一般包含去噪、去雾和超分辨率等等,如何来评价经过增强后的图像就需要衡量指标来评定,图像质量评价从方法上可分为主观评价方法和客观评价方法,本文主要介绍客观评价方法中三个重要的评价指标均方误差(MSE,Mean Squared Error)、峰值信噪比(PSNR,Peak Signal to Noise Rate)和结构相似性(SSIM,Structural Similarity)。

在深度学习中选择不同的loss function对模型的训练也有不同的影响,在图像增强领域中常用L1、L2距离。

1.均方误差(MSE,Mean Squared Error)
假设大小为 M × N M \times N M×N的原始图像 I I I和经过处理的图像 K K K,均方误差为
M S E = 1 M N ∑ i = 0 N − 1 ∑ j = 0 M − 1 [ I ( i , j ) − K ( i , j ) ] 2 MSE=\frac{1}{MN}\sum_{i=0}^{N-1}\sum_{j=0}^{M-1}[I(i,j)-K(i,j)]^2 MSE=MN1i=0N1j=0M1[I(i,j)K(i,j)]2
均方误差衡量的是原始图像和经过处理图像像素差值的均方值,通过均方值的大小来确定两个图像之间的差异。MSE越大,两者之间的差异越大;MSE越小,两者之间的差异越小。

2.峰值信噪比(PSNR,Peak Signal to Noise Rate)
数学公式定义如下:
P S N R = 10 l o g 10 ( M A X I 2 M S E ) PSNR=10log_{10}(\frac{MAX_I^2}{MSE}) PSNR=10log10(MSEMAXI2)
其中 M A X I 2 MAX_I^2 MAXI2为原始图像的最大像素值。如果图像像素值是由8位二进制表示,则该值为255;如果图像像素值是由B为二进制表示,则该值为 M A X I 2 = 2 B − 1 MAX_I^2=2^B-1 MAXI2=2B1。一般针对uint8图像,最大像素值为255,浮点型数据的最大像素值为1。PSNR单位是dB。
上述公式是针对灰度图像的计算方法,如果是彩色图像,通常由三种方法来计算:
1.分别计算 RGB 三个通道的 PSNR,然后取平均值。
2.计算 RGB 三通道的 MSE ,然后再除以 3 。
3.将图片转化为 YCbCr 格式,然后只计算 Y 分量也就是亮度分量的 PSNR。
如果是计算视频的PSNR,需要计算整个视频的MSE进行计算,而不是计算每一帧的MSE后加和后作为整个视频的MSE,具体公式如下:
M S E = 1 M N F ∑ f = 0 F − 1 ∑ i = 0 N − 1 ∑ j = 0 M − 1 [ I ( i , j , f ) − K ( i , j , f ) ] 2 MSE=\frac{1}{MNF}\sum_{f=0}^{F-1}\sum_{i=0}^{N-1}\sum_{j=0}^{M-1}[I(i,j,f)-K(i,j,f)]^2 MSE=MNF1f=0F1i=0N1j=0M1[I(i,j,f)K(i,j,f)]2
其中,F为视频的帧数。

3.结构相似性(SSIM,Structural Similarity)

结构相似性基于两个图像的三个指标来比较:亮度 (luminance)、对比度 (contrast) 和结构 (structure)
l ( x , y ) = 2 u x u y + c 1 u x 2 + u y 2 + c 1 c ( x , y ) = 2 σ x σ y + c 2 σ x 2 + σ y 2 + c 2 s ( x , y ) = σ x y + c 3 σ x σ y + c 3 l(x,y)=\frac{2u_{x}u_{y}+c_{1}}{u_{x}^2+u_{y}^2+c_{1}} \\c(x,y)=\frac{2\sigma_{x}\sigma_{y}+c_{2}}{\sigma_{x}^2+\sigma_{y}^2+c_{2}} \\s(x,y)=\frac{\sigma_{xy}+c_{3}}{\sigma_{x}\sigma_{y}+c_{3}} l(x,y)=ux2+uy2+c12uxuy+c1c(x,y)=σx2+σy2+c22σxσy+c2s(x,y)=σxσy+c3σxy+c3
其中, u x u_{x} ux x x x的均值; u y u_{y} uy y y y的均值; σ x 2 \sigma_{x}^2 σx2 x x x的方差; σ y 2 \sigma_{y}^2 σy2 x x x的方差; σ x y \sigma_{xy} σxy x x x y y y的协方差; c 1 、 c 2 和 c 3 c_{1}、c_{2}和c_{3} c1c2c3为常数,防止除零,一般 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, L = 2 B − 1 L=2^B-1 L=2B1, B B B为图像位数。
那么, S S I M ( x , y ) = [ l ( x , y ) α ⋅ c ( x , y ) β ⋅ s ( x , y ) γ ] SSIM(x,y)=[l(x,y)^\alpha\cdot c(x,y)^\beta\cdot s(x,y)^\gamma] SSIM(x,y)=[l(x,y)αc(x,y)βs(x,y)γ]
α , β , γ \alpha,\beta,\gamma α,β,γ为1,得到
S S I M ( x , y ) = ( 2 u x u y + c 1 ) ( 2 σ x y + c 2 ) ( u x 2 + u y 2 + c 1 ) ( σ x 2 + σ y 2 + c 2 ) SSIM(x,y)=\frac{(2u_{x}u_{y}+c_{1})(2\sigma_{xy}+c_{2})}{(u_{x}^2+u_{y}^2+c_{1})(\sigma_{x}^2+\sigma_{y}^2+c_{2})} SSIM(x,y)=(ux2+uy2+c1)(σx2+σy2+c2)(2uxuy+c1)(2σxy+c2)
每次计算的时候都从图片上取一个 N × N N \times N N×N 的窗口,然后不断滑动窗口进行计算,最后取平均值作为全局的 SSIM。

4.图像增强中的loss选择
一般情况下都是使用L2作为损失函数,也就是均方误差。L2和L1的区别在于L2比L1多了平方,以L2为loss的网络会对异常值特别敏感,因为平方放大了异常值,会赋予异常点更大的损失值和梯度,反向传播过程中调整网络参数向减小异常点误差的方向更新,因此容易造成训练的不稳定和发散。以L1为loss的网络则对异常点有较好的适应,具有更好的鲁棒性。

《Loss Functions for Image Restoration With Neural Networks》文章中实验了L1,L2、SSIM和MS-SSIM对图像去马赛克、去噪、超分以及JPEG图像去块化做了研究,实验结果以MS-SSIM+L1的组合作为损失函数最佳。

具体的loss选择还是需要经过实验验证,在不同情况下,loss的选择对模型有一定影响。

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值