niessner / Matterport

Matterport3D is a pretty awesome dataset for RGB-D machine learning tasks :)
https://niessner.github.io/Matterport/
MIT License
945 stars 154 forks source link

How the calculate the true value of depth and surface normal ? #44

Open Hui-Yao opened 3 years ago

Hui-Yao commented 3 years ago

Respected sir/madam: I found that all of the values in depth maps and surfce normal maps are integers, but values of this form can not be used for training.

For the depth value

The statement in matterport-3d dataset is: Every depth image a 16 bit PNG containing the pixel's distance in the z-direction from the camera center (not the euclidean distance from the camera center), 0.25 mm per value (divide by 4000 to get meters). I want to transform the depth values in meter, if divided the depth value by 4000, a samll value will be got, i think it`s uncorrect.

For the surface normal value

I have got the instance-level plane parameter(a, b, c), but all of the values are integer range from 0 to 255, i dont know how to transform it into [1-, 1]. The statement in matterport-3d is: Normal maps are stored in three 16-bit PNG files (_nx.png, _ny.png, and _nz.png), where the integer values in the file are 32768 x (1 + n), where n is a normal coordinate in range [-1,1]. If let normal value = 32768 x (1 + n), the n is always close to -1, it`s also uncorrect. 2020-11-25 20-23-26 的屏幕截图

Any advice will be grateful !