Tsinghua-MARS-Lab / Occ3D

MIT License
407 stars 26 forks source link

About unobserved voxel in camera view #16

Closed ZhihaoWang1997 closed 1 year ago

ZhihaoWang1997 commented 1 year ago

thanks for your outstanding work.

I have a question about Occ3D(v2). According to Algorithm 1 and 3, when performing camera ray casting, the camera ray stops only when cur_voxel goes out of spatial_shape or reaches the last voxel. This seems not to produce the occlusion effect shown in Fig.8. Because the ray casting does not stop when the camera ray reaches an observed voxel (occupied or free voxel). According to subsection 3.3.2, if the camera ray only sets the first encountered voxel as occupied, then there should be much more voxels labeled as unobserved. Therefore, I am very curious about the details for generating the camera visibility mask, especially when the camera ray stops casting.

I'd appreciate it if you could answer my questions.

waveleaf27 commented 1 year ago

The update_voxel_state is initialized to 'NOT_OBSERVED', and only the traversed voxels are marked as OCCUPIED or FREE. So when when the camera ray stops casting, the remained voxels are still marked as 'NOT_OBSERVED'.

ZhihaoWang1997 commented 1 year ago

Thanks, I got what you mean. But I'm still confused about when the camera ray stop casting. According to Algorithm 1 and 3, the camera ray stops only when cur_voxel goes out of spatial_shape. Beacause the init depth for each pixel is set to DEPTH_MAX(1e3). Under this condition, if a camera ray traverses two occupied voxels, the second occupied voxel which should be occluded seems to still be labeled as occupied since the camera ray does not reach the boundary.

waveleaf27 commented 1 year ago

If the camera ray already hits the nearest occupied voxel, the traversing will stop since the ‘for ’ loop will break. The remaining voxels are still marked as 'NOT_OBSERVED'.

ZhihaoWang1997 commented 1 year ago

In this way, a closer occupied voxel may block several camera rays. It seems that there would be much more voxels labeled as ‘NOT_OBSERVED’ than expected, including those should have been observed in camera view?

waveleaf27 commented 1 year ago

After performing camera ray casting, there would be much more voxels labeled as ‘NOT_OBSERVED’.

ZhihaoWang1997 commented 1 year ago

Thanks a lot ! By the way, when will the code be released?

waveleaf27 commented 1 year ago

At present, the code used for ground-truth (GT) construction will not be released. This decision was made to prevent challenge participants from using scripts to generate their submissions.