ethz-asl / panoptic_mapping

A flexible submap-based framework towards spatio-temporally consistent volumetric mapping and scene understanding.
BSD 3-Clause "New" or "Revised" License
275 stars 31 forks source link

Semantic Temporal Decay rate #51

Closed marcokat81 closed 1 year ago

marcokat81 commented 2 years ago

Hit @Schmluk .... Is there a parameter which will enable us to semantically control the temporal decay rate for the mesh generation ? like slowly decay the maps for specific class and rapid decay rates for some others.

I experimented with max_weight param inside the tsdf_integrator I had to drastically lower it down to 100 to get faster decay rate. is it possible to control this semantically ? I noticed that mesh of smaller objects with less pixel coverage in the input image are rapidly eaten up by the mesh of its surrounding semantic class ? is it possible to custom control this behavior ? like providing ground truth segmentation for specific semantic classes so it stays within the map for longer period and providing higher uncertainty to other segmentation classes ?

weight_dropoff_epsilon did not seem to do anything I did not understand how that is used ?

Schmluk commented 2 years ago

Hi @marcokat81

There is currently no parameter for that but it is easily addable. During the map update (in the ClassTsdfIntegartor) for every voxel also the corresponding class voxel is found. You can use that information to change the update rule or update weights.

Are your questions for the single or multi TSDF case? In the latter, it could be that small objects are mostly harder to detect and therefore their probabilities are decreased.

weight_dropoff_epsilon was introduced in voxblox, it reduces the weight for the part of the TSDF that is inside the object.

Hope this helps!

marcokat81 commented 2 years ago

@Schmluk where is the corresponding voxel found ? is it this

My question is regarding the Multi-TSDF case. Yes Some smaller objects like poles are harder to semantically detect but I still see many pixels show up .... I decreased the min_allocation_size on the id_tracker so that they are always considered as well ... in the single TSDF case is it possible to account for such things ?

may be we can have a higher prior for detections for certain class probabilities ? where are the class probabilities calculated ? is it the classification used within the id_tracker ?

Schmluk commented 2 years ago

Yes that is it. Notice that class_voxel can be nullptr if no class voxel exists there.

The class probabilities are estimated by the network. They are fused in the ClassProjectiveIntegrator L152.

Thin objects are generally hard to reconstruct, this is an inherent limitation of TSDFs. Yes, the same logic as above can also be used in the single TSDF case.

Schmluk commented 1 year ago

Closed due to inactivity.