RaymondWang987 / NVDS

ICCV 2023 "Neural Video Depth Stabilizer" (NVDS) & TPAMI 2024 "NVDS+: Towards Efficient and Versatile Neural Stabilizer for Video Depth Estimation" (NVDS+)
MIT License
491 stars 24 forks source link

question on evaluation on NYUD2 #15

Closed cvtype closed 1 year ago

cvtype commented 1 year ago

Thanks for sharing the great work! I saw you normalized the NYUD2's depth with https://github.com/RaymondWang987/NVDS/blob/8030e99291ff448aac045f0531e150e7dbbbed32/test_NYU_depth_metrics.py#L58 but the original depth of NYUD2 is in meters, could you please share more about your data preparation on NYUD2? I am trying to evaluate it on other NYUD2 dataset. Thanks very much.

RaymondWang987 commented 1 year ago

Thanks for sharing the great work! I saw you normalized the NYUD2's depth with

https://github.com/RaymondWang987/NVDS/blob/8030e99291ff448aac045f0531e150e7dbbbed32/test_NYU_depth_metrics.py#L58

but the original depth of NYUD2 is in meters, could you please share more about your data preparation on NYUD2? I am trying to evaluate it on other NYUD2 dataset. Thanks very much.

Hi! We just follow the official processing toolkits of NYUDV2. In our case, following previous work such as BTS, we save NYUDV2 depth ground truth with the maximum value of 10000. Thus, we conduct depth / 1000.0 to load ground truth with the real depth range of 0-10 meters. Saving with 0-10000 and dividing the depth by 1000 is a common practice in prior arts. This does not influence the results. You can also save the NYUDV2 ground truth with other ranges. This can be simply changed by running the NYUDV2 Matlab toolkits with different parameters. If you save the ground truth in a different range of values, you need to modify the depth / 1000.0 to make sure that the dataloader can load ground truth in the range of 0-10 meters for quantitative evaluations.

cvtype commented 1 year ago

@RaymondWang987 Do you mean normalize the depth to 0~10000 firstly for each frame? If a frame's min depth is 2, max depth is 32, then we normalize it to (d-2)/(32-2)*10000?

RaymondWang987 commented 1 year ago

@RaymondWang987 Do you mean normalize the depth to 0~10000 firstly for each frame? If a frame's min depth is 2, max depth is 32, then we normalize it to (d-2)/(32-2)*10000?

Refer to BTS:

imgDepthProj = uint16(imgDepthProj * 1000.0);
sync_depth_dst = sprintf('%s/sync_depth_%05d.png', saveDir, ind);                        
imwrite(imgDepthProj, sync_depth_dst);