在单目深度估计的任务中,评价模型性能的指标是衡量其准确性和可靠性的重要工具。在模型的训练过程中,没有单一的评估指标能够全面评价所有深度估计算法的性能,通常需要结合多个指标,根据具体的应用需求和场景来综合评价算法的好坏。最近正好在模型训练过程中遇到了有的指标表现优异,但别的指标就相对不如人意,就想研究一下每个评估指标所关注的具体内容以及其计算方式。接下来,本文将详细探讨几种常用的评估指标,包括AbsRel(绝对相对误差)、SqRel(平方相对误差)、RMSE(均方根误差)、RMSE Log(对数均方根误差)、Si-Log(尺度不变对数误差)、Accuracy with Threshold(准确率)、PSNR(峰值信噪比)以及SSIM(结构相似性指数)。通过这些指标的解释和公式推导,希望能帮助大家更好地理解如何衡量深度估计模型的表现。
1. AbsRel(Absolute Relative Error)
解释:AbsRel是每个像素位置的绝对相对误差,用于衡量预测深度与真实深度之间的差异。它描述了预测深度与真实深度之间的差异相对于真实深度的大小,因此特别适合用来评估相对误差。
计算:每个像素的预测深度与真实深度之差的绝对值,然后除以真实深度值。
公式: A b s R e l = 1 N ∑ i = 1 N ∣ d i − d i ^ ∣ d i AbsRel=\frac{1}{N}\sum^{N}_{i=1}\frac{|d_i-\widehat{d_i}|}{d_i} AbsRel=N1i=1∑Ndi∣di−di ∣
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值。
关注点:该指标对深度估计的相对误差较为敏感,尤其对那些深度值较小的像素点。其值越小,表示模型估计越准确。
2. SqRel(Squared Relative Error)
解释:SqRel衡量的是每个像素位置的平方相对误差,它加大了对大误差的惩罚。因此,SqRel在误差较大时特别敏感,适用于需要对大误差重点关注的场景。
计算:每个像素的预测深度与真实深度的差值的平方,然后除以真实深度值。
公式: S q R e l = 1 N ∑ i = 1 N ( d i − d i ^ ) 2 d i SqRel=\frac{1}{N}\sum^{N}_{i=1}\frac{(d_i-\widehat{d_i})^2}{d_i} SqRel=N1i=1∑Ndi(di−di )2
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值。
关注点:SqRel更加惩罚大的误差,对与错误较大的预测点,SqRel指标能更明显地反映其误差。其值越小,表示模型整体误差越小。
3. RMSE(Root Mean Squared Error)
解释:RMSE是用于衡量预测深度与真实深度之间误差的均方根值。它是一个常见的误差评估标准,适合用来反映模型整体的误差表现。因为误差项进行了平方处理,RMSE对大误差更为敏感。
计算:计算每个像素预测深度与真实深度之间差异的平方,求均值后开平方得到最终误差。
公式: R M S E = 1 N ∑ i = 1 N ( d i − d i ^ ) 2 RMSE=\sqrt{\frac{1}{N}\sum^N_{i=1}(d_i-\widehat{d_i})^2} RMSE=N1i=1∑N(di−di )2
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值。
关注点:RMSE对较大误差非常敏感,适用于衡量整体深度估计的准确性。其值越小,表示模型的整体误差越低。
4. RMSE Log(Root Mean Squared Logarithmic Error)
解释:RMSE Log是RMSE的变体,它对深度值进行对数变换后再计算误差。这种方式关注预测深度与真实深度的相对误差,适合处理具有不同尺度的深度估计任务。
计算:计算每个像素的预测深度和真实深度的对数差值的平方,求均值后开平方。
公式: R M S E l o g = 1 N ∑ i = 1 N ( l o g ( d i ) − l o g ( d i ^ ) 2 RMSE_{log}=\sqrt{\frac{1}{N}\sum^N_{i=1}(log(d_i)-log(\widehat{d_i})^2} RMSElog=N1i=1∑N(log(di)−log(di )2
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值。
关注点:RMSE Log对相对误差更加敏感,因此适用于不同深度尺度的场景。其值越小,表示模型对深度估计的相对误差较小。
5. Si-Log(Scale-Invariant Logarithmic Error)
解释:Si-Log主要用于评估具有尺度变化的场景中的深度估计效果。它通过对深度值取对数,消除不同尺度间的影响,重点衡量深度估计的相对误差。
计算:计算每个像素的对数差的平方,减去其均值的平方。
公式: s i l o g = 1 N ∑ i = 1 N ( l o g ( d i ) − l o g ( d i ^ ) 2 − 1 N 2 ∑ i = 1 N ( l o g ( d i ) − l o g ( d i ^ ) 2 silog=\frac{1}{N}\sum^N_{i=1}(log(d_i)-log(\widehat{d_i})^2-\frac{1}{N^2}\sum^N_{i=1}(log(d_i)-log(\widehat{d_i})^2 silog=N1i=1∑N(log(di)−log(di )2−N21i=1∑N(log(di)−log(di )2
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值。
关注点:Si-Log对尺度变化不敏感,因此适合处理不同深度范围的任务。其值越小,表示模型的深度估计更稳定且与实际更接近。
6. Accuracy with Threshold(准确率)
解释:该指标衡量的是预测深度与真实深度之间误差小于某个阈值的像素比例。常见的阈值为 1.25 , 1.2 5 2 1.25,1.25^2 1.25,1.252和 1.2 5 3 1.25^3 1.253 。
计算:判断每个像素的预测深度与真实深度的比值是否在指定的阈值范围内。
公式: a c c u r a c y = 1 N ∑ i = 1 N 1 ( m a x ( d i d i ^ , d i ^ d i ) < δ ) accuracy = \frac{1}{N}\sum^N_{i=1}1(max(\frac{d_i}{\widehat{d_i}},\frac{\widehat{d_i}}{d_i})<\delta) accuracy=N1i=1∑N1(max(di di,didi )<δ)
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值;
- δ \delta δ是误差阈值,通常为 1.25 、 1.2 5 2 1.25、1.25^2 1.25、1.252和 1.2 5 3 1.25^3 1.253;
- “1”表示指示函数,它在满足条件时返回1,不满足时返回0,条件是 m a x ( d i d i ^ , d i ^ d i < δ ) max(\frac{d_i}{\widehat{d_i}},\frac{\widehat{d_i}}{d_i}<\delta) max(di di,didi <δ)。
关注点:该指标反映模型预测的准确度,尤其在高精度预测场景中非常实用。其值越大,表示模型的深度估计越精确。
7. MAE(Mean Absolute Error)
解释:MAE是预测深度与真实深度之间的绝对误差均值。该指标用于衡量模型的平均误差,对大误差不如RMSE敏感。
计算:计算每个像素预测深度与真实深度的绝对差值,求均值。
公式:KaTeX parse error: Can't use function '$' in math mode at position 20: …\frac{1}{N}\sum$̲N_{i=1}|d_i-\wi…
其中:
- N N N表示像素总数;
- d i d_i di表示第 i i i个像素的真实深度值;
- d i ^ \widehat{d_i} di 表示第 i i i个像素的预测深度值。
关注点:MAE对较小误差和较大误差的处理较为平衡。其值越小,表示模型预测整体误差越小。
8.PSNR(Peak Signal-to-Noise Ratio)
解释:PSNR是衡量图像质量的常用指标,常用于评估预测图像与真实图像的相似度。在深度估计任务中,PSNR用来衡量预测深度图与真实深度图之间的误差。PSNR值越高,表示误差越小。
计算:首先计算预测深度图与真实深度图支架你的均方根误差(MSE),然后通过信号的最大值除以误差的平方根,取对数得到结果。
公式: P S N R = 20 ⋅ l o g 10 ( M A X I M S E ) PSNR=20·log_{10}(\frac{MAX_I}{\sqrt{MSE}}) PSNR=20⋅log10(MSEMAXI)
其中:
- M A X I MAX_I MAXI表示图像中可能的最大像素值;
- M S E MSE MSE是预测深度图与真实深度图之间的均方误差: M S E = 1 N ∑ i = 1 N ( d i − d i ^ ) 2 MSE=\frac{1}{N}\sum^N_{i=1}(d_i-\widehat{d_i})^2 MSE=N1i=1∑N(di−di )2
关注点:PSNR更适用于图像相似度的评估,值越高表示预测结果和真实深度图的保真度越高。
9. SSIM(Structural Similarity Index Measure)
解释:SSIM是衡量两幅图像之间相似度的一种指标,常用于图像质量评估。与PSNR不同,SSIM更加关注图像的结构信息,即亮度、对比度和结构三方面的相似性。它的值在0到1之间,1表示两幅图像完全相同,0表示完全不同。
计算:SSIM通过亮度、对比度和结构的对比,结合这三者的权重系数,得出整体的相似性。
公式: S S I M ( x , y ) = ( 2 μ x μ y + C 1 ) ( 2 σ x y + C 2 ) ( μ x 2 + μ y 2 + C 1 ) ( σ x 2 + σ y 2 + C 2 ) SSIM(x,y)=\frac{(2\mu_x\mu_y+C1)(2\sigma_{xy}+C2)}{(\mu^2_x+\mu^2_y+C1)(\sigma^2_x+\sigma^2_y+C2)} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)
其中:
- x x x和 y y y分别为两幅图像;
- μ x \mu_x μx和 μ y \mu_y μy分别表示图像 x x x和 y y y的均值;
- σ x 2 \sigma^2_x σx2和 σ y 2 \sigma^2_y σy2分别表示图像 x x x和 y y y的方差;
- σ x y \sigma_{xy} σxy表示两幅图像之间的协方差;
- C 1 C1 C1和 C 2 C2 C2是为了避免分母为零的稳定常数,通常与图像的动态范围有关。
关注点:SSIM强调图像的结构信息,并结合亮度和对比度的相似度来综合评估两幅图像的相似性。他在图像质量评估中表现更为灵敏,尤其适合衡量图像的视觉保真度。值越接近1,表示图像之间的结构相似性越高。
总结
本文深度探讨了单目深度估计中的多种评价指标,并详细说明了他们的公式和关注点。在模型训练过程中,每一种指标都有其独特的应用场景和实用性,在具体的任务中可以选择合适的指标来更好的评估模型的表现。
参考文献
- David Eigen, Christian Puhrsch, and Rob Fergus. 2014. Depth map prediction from a single image using a multi-scale deep network. In Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2 (NIPS’14). MIT Press, Cambridge, MA, USA, 2366–2374.
- V. Arampatzakis, G. Pavlidis, N. Mitianoudis and N. Papamarkos, “Monocular Depth Estimation: A Thorough Review,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 46, no. 4, pp. 2396-2414, April 2024, doi: 10.1109/TPAMI.2023.3330944
- Zhao, C., Sun, Q., Zhang, C. et al. Monocular depth estimation based on deep learning: An overview. Sci. China Technol. Sci. 63, 1612–1627 (2020). https://doi.org/10.1007/s11431-020-1582-8