pmj110119 / RenderOcc

[ICRA 2024] RenderOcc: Vision-Centric 3D Occupancy Prediction with 2D Rendering Supervision. (Former version: UniOcc)
432 stars 24 forks source link

扩大point_cloud_range和occ_size,Nerf相关参数 #20

Closed chenzyhust closed 11 months ago

chenzyhust commented 11 months ago

您好,首先感谢作者的工作,我也在occ3d上成功复现了结果。但是其他数据集中扩大距离和occ 网格尺寸的时候,发现depth收敛会有问题,看到代码中有很多nerf相关的hard code,想知道应该针对性修改哪些参数?

pmj110119 commented 11 months ago

需要修改 NerfHead.__init__() 的以下输入参数:point_cloud_range, voxel_size, radius 同时,有个成员变量 self.world_size 是hardcode,需要修改成occ的voxel_shape

您可以贴一下新数据集的参数来看看?

chenzyhust commented 11 months ago

需要修改 NerfHead.init() 的以下输入参数:point_cloud_range, voxel_size, radius 同时,有个成员变量 self.world_size 是hardcode,需要修改成occ的voxel_shape

您可以贴一下新数据集的参数来看看?

与openoccupancy的参数类似,我尝试下面的设置,发现depth不收敛,改成renderocc里面的参数是能够正常收敛的 point_cloud_range = [-51.2, -51.2, -5.0, 51.2, 51.2, 3.0] voxel_size = 0.4 radius=50.2 world_size=[256, 256, 20]

chenzyhust commented 11 months ago

需要修改 NerfHead.init() 的以下输入参数:point_cloud_range, voxel_size, radius 同时,有个成员变量 self.world_size 是hardcode,需要修改成occ的voxel_shape

您可以贴一下新数据集的参数来看看?

还发现代码中有这个hardcode N_outer = N_inner//15 # hardcode: 15,请问这个值需要配合改变吗?

pmj110119 commented 11 months ago

需要修改 NerfHead.init() 的以下输入参数:point_cloud_range, voxel_size, radius 同时,有个成员变量 self.world_size 是hardcode,需要修改成occ的voxel_shape 您可以贴一下新数据集的参数来看看?

还发现代码中有这个hardcode N_outer = N_inner//15 # hardcode: 15,请问这个值需要配合改变吗?

这个地方无所谓,就算设的不合适也不咋影响收敛。有没有可能是rays生成的不对呢?

(比如Occ-3D是用的ego坐标系、OpenOccupancy用的LiDAR坐标系等,是否能可视化检查下rays、depth label等)

chenzyhust commented 11 months ago

需要修改 NerfHead.init() 的以下输入参数:point_cloud_range, voxel_size, radius 同时,有个成员变量 self.world_size 是hardcode,需要修改成occ的voxel_shape 您可以贴一下新数据集的参数来看看?

还发现代码中有这个hardcode N_outer = N_inner//15 # hardcode: 15,请问这个值需要配合改变吗?

这个地方无所谓,就算设的不合适也不咋影响收敛。有没有可能是rays生成的不对呢?

(比如Occ-3D是用的ego坐标系、OpenOccupancy用的LiDAR坐标系等,是否能可视化检查下rays、depth label等)

我在这个数据集上尝试renderocc默认的参数,depth和semantic是可以收敛的。与此同时我也在renderocc上尝试了以下参数,发现epoch2的depth loss 0.46 vs 0.34,还是差了一些的 point_cloud_range = [-51.2, -51.2, -5.0, 51.2, 51.2, 3.0] voxel_size = 0.4 radius=50.2 world_size=[256, 256, 20]

pmj110119 commented 11 months ago

这里还有个关于depth的hardcode :

gt_depth[gt_depth>52] = 0 

可以把52改大试试(比如60)。除此之外我没有找到别的和depth相关的hardcode了..