计算归一化均方根误差
Calculating Normalized Root Mean Square Error
我正在尝试计算我的光流估计和提供的地面实况之间的归一化均方根误差 (NRMSE)
我想我正确地计算了 RMSE,但是,归一化的总是 INF 值!
这是我的部分代码:
% u , v ==> estimated flow
% cu , cv ==> ground truth flow
du=abs(u-cu);
dv=abs(v-cv);
% To compute Absulet error
AE= sqrt(du.^2+dv.^2);
AE_aver= mean (AE(:));
% To compute End Point Error
EPE=mean(AE(:));
% To Compute Root Mean Square Error
X=AE.^2;
RMSE=sqrt(mean(X(:)));
% To Compute Normalized Root Mean Square Error
Vg=cu.^2+cv.^2;
xx=max(Vg(:));
nn=min(Vg(:));
NRMSE=RMSE./( xx - nn );
你能告诉我我的错误在哪里吗?
谢谢
NRSME
可以是 Inf
的唯一方法是 RMSE
是 Inf
或 (xx-nn) = 0
。
所以,您需要检查您的数据。 cu
和 cv
都是常数(标量常数,或每个元素中具有相同值的向量),这将导致 (xx-nn) = 0
,或至少 u
、v
、cu
或 cv
至少有一个条目是 Inf
,这将导致 RMSE
成为 Inf
。
我正在尝试计算我的光流估计和提供的地面实况之间的归一化均方根误差 (NRMSE) 我想我正确地计算了 RMSE,但是,归一化的总是 INF 值!
这是我的部分代码:
% u , v ==> estimated flow
% cu , cv ==> ground truth flow
du=abs(u-cu);
dv=abs(v-cv);
% To compute Absulet error
AE= sqrt(du.^2+dv.^2);
AE_aver= mean (AE(:));
% To compute End Point Error
EPE=mean(AE(:));
% To Compute Root Mean Square Error
X=AE.^2;
RMSE=sqrt(mean(X(:)));
% To Compute Normalized Root Mean Square Error
Vg=cu.^2+cv.^2;
xx=max(Vg(:));
nn=min(Vg(:));
NRMSE=RMSE./( xx - nn );
你能告诉我我的错误在哪里吗? 谢谢
NRSME
可以是 Inf
的唯一方法是 RMSE
是 Inf
或 (xx-nn) = 0
。
所以,您需要检查您的数据。 cu
和 cv
都是常数(标量常数,或每个元素中具有相同值的向量),这将导致 (xx-nn) = 0
,或至少 u
、v
、cu
或 cv
至少有一个条目是 Inf
,这将导致 RMSE
成为 Inf
。