Closed muzi2045 closed 4 years ago
Hi, the filter_mask
is used to retrieve the pixels which have category vectors like [0, 0, 0, 0, 1]
. That is, we only want the one-hot category vectors. The reason I did this is that not all category vectors have one-hot vectors, a result from data preprocessing. Specifically, for a grid cell, it happens that points from different object categories fall within this same cell. In this case, the category vector associated with this cell will be like [0.1, 0, 0, 0.5, 0.4]
. So in the experiment, I did not consider such cells and just ignored them.
To generate filter_mask
, yes, we need GT-box annotations. This comes naturally because if we want to know the displacement of a cell into the future, we may need to know which object this cell belongs to and the future position of this object. That is why we may need the box annotations. Actually, most of the recent public dataset, such as Argoverse, nuScenes, Lyft etc, come with such box annotations. However, for your own lidar data, if the box annotations are unavailable but you still have an approach to obtaining the future displacement of cells, you may not need filter mask
and the pre-processing code, and could just directly extract the cell displacements.
Hope this helps. Feel free to contact me if you have further questions.
thanks for reply! it mean If I want to use inference it with raw lidar data, I can only classify the cell depends on the category vectors. And I try it in my own data bag, there will have some noise pixel and require really high quality location info between lidar and map to align past 5 frames to newest lidar data. for example: the noise pixel will generate abnormal velo value if there has no GT-boxes infos to filter this noise pixles.
Hi, actually the GT-box annotations are used:
Thus, if you do not conduct performance evaluation (e.g., compute the mean error) and just run the pretrained model, you may not need the GT annotations.
The reason you observed noise pixels in the above picture could be:
Hope this helps.
First, thanks for your work! there has some place in postprocess part make me confused
the tensor cat_pred output by motionnet looks like is the catrgory of per pixel in lidar bev map. but what the filter mask mean in this part ?
cat_pred = (cat_pred * non_empty_map).astype(np.int)
will also output normal resultthe filter_mask tensor related to pixel_cat_map_gt value, but if I test MotionNet on my own lidar data, that means I have no any GT-boxes annotations, and the filter_mask may be can't be compute. I have no idea my understanding is correct, Hope for any reply! @pxiangwu