TUI-NICR / ESANet

ESANet: Efficient RGB-D Semantic Segmentation for Indoor Scene Analysis
Other
231 stars 49 forks source link

How to pre-process depth when the train and test data are taken from different distance? #50

Open amokame opened 1 year ago

amokame commented 1 year ago

The train and test data I am using was taken from different distance. Say the train data is taken from 30m, and test data is taken from 60m.

Do I need to pre-processing the test data (eg. depth/60*30) to make it has the approximate same depth range with the train data? Thanks.

isHuKai commented 1 year ago

Maybe changing this parameter ''depth_scale'' would help? How to confirm the value of ''depth_scale''?

amokame commented 1 year ago

Maybe changing this parameter ''depth_scale'' would help? How to confirm the value of ''depth_scale''?

Sorry, I don't know what this parameter is, also didnot find it in args.py

amokame commented 1 year ago

I tried pre-processed depth and non-pre-processed depth, and it didnot work well for non-pre-processed depth.

So at least for my situation, I think pre-processing is necessary.

LeZheng-x commented 2 weeks ago

Any new progress? Usually the depth map is normalized to [0,1]. I can't understand why the depth_mean in the code is a large number.

LeZheng-x commented 2 weeks ago

Any new progress? Usually the depth map is normalized to [0,1]. I can't understand why the depth_mean in the code is a large number.

I noticed that the depth map read in the sample is uint16, and the maximum value is 65535. Here is my method: Assuming the depth map is in uint8 format and the maximum value is 255, then new_depth_mean = depth_mean\65535 * 255 ≈ 74.0272. Similarly, calculate new_depth_std≈38.4435. The actual effect is basically satisfactory.(I use the SUN-RGBD model) Hope it helps you