JiayuYANG / CVP-MVSNet

Cost Volume Pyramid Based Depth Inference for Multi-View Stereo (CVPR 2020 Oral)
238 stars 33 forks source link

Questions about the automatically selected depth search range? #9

Closed ToughStoneX closed 4 years ago

ToughStoneX commented 4 years ago

Hi, @JiayuYANG ! The code works fine on DTU dataset. Recently I am trying to apply the CVP-MVSNet on Tanks and Temples dataset. I have written the dataloader myself based on the preprocessed dataset of MVSNet. However, I found it not working combined with your code. Sometimes it even outputs a depth map with negative values. I tried to print out the depth search range and its related variables, and found it wierd. For example, in DTU dataset, in default depth_min=425, depth_max=1065:

level 0:
nhypothesis_init = 48
depth_interval_mean: 13.617020606994629
level 1:
value of interval_maps: 9.305537227260542
level 2:
value of interval_maps: 4.637211586944452
level 3:
value of interval_maps: 2.31558094108701
level 4:
value of interval_maps: 1.1571272050767465

However, in Tanks and Temples dataset, we take the Train scene as example, depth_min=0.7208, depth_max=2.7420.

level 0:
nhypothesis_init = 48
depth_interval_mean: 0.043003734201192856
level 1:
value of interval_maps: 0.1490792499588456
level 2:
value of interval_maps: 0.07300084890942911
level 3:
value of interval_maps: 0.0361162031170659
level 4:
value of interval_maps: 0.017939026685205597

I am confused about the reason why the value of interval_maps 0.1490792499588456 even becomes larger than the initial depth interval 0.043003734201192856. The Tanks and Temples dataloader works fine combined with MVSNet. Am I missing something about the code or the paper? How did you test your model on Tanks and Temples dataset? Do you have any suggestions how to solve this problem? Thank You!

JiayuYANG commented 4 years ago

Hi @ToughStoneX

The initial interval settings and level settings are chosen for DTU dataset. You might want to change them to get better results on Tanks and Temples dataset.

For our public results on the benchmark, if I remember correctly, we chose something like nhypothesis_init = 48 and nscale=3 empirically for all scenes and just report the results from the first evaluation submission. There should be better settings for that dataset.

Btw, your final interval 0.017939026685205597 seems a bit large. You might want to check that your dataloader load intrinsic & extrinsic parameters correctly.

Another thing is, if you are not using it already, you might want to use the limited depth range to get best evaluation results. The short_range_cameras_for_mvsnet.zip in Yaoyao's version of Tanks and Temples test set.

Jiayu.

ToughStoneX commented 4 years ago

Thanks for the suggestions. I have recently found that I was using the original split of Tanks dataset provided by Yaoyao's version. The original depth range is too large. short_range_cameras_for_mvsnet.zip should be the correct one.