Calculating Normalized Root Mean Square Error
Date: 2022-12-14 12:20:22
I am trying to calculate normalized root square error (NRMSE) between my optical flow estimation and the provided ground truth I think I calculated the RMSE correctly, However, the normalized always INF values !
Here is part of my code:
% 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 );
Could you please show me where is my mistake? thank you
Answer:
The only way that NRSME
can be Inf
is if either RMSE
is Inf
or (xx-nn) = 0
.
So, you need to check your data. Either cu
and cv
are both constant (either scalar constants, or vectors with the same value in every element), which would lead to (xx-nn) = 0
, or at least one of u
, v
, cu
or cv
has at least one entry that is Inf
, which would lead to RMSE
being Inf
.