Comments (4)
Hello, good question.
- This BOX_FILTER filters predicted boxes in inference stage, while
mask_points_and_boxes_outside_range
works on data prepare stage for ground truths.ST3D/pcdet/datasets/kitti/kitti_dataset.py
Line 285 in 7b3ad3a
- Since KITTI dataset only annotates fov objects while other datasets annotate ring view objects, this filter is only applyed on KITTI.
- FOV_POINTS_ONLY can filter the points outside fov. However, since both source labeled data and pseudo labeled target data have full ring view points, I am not sure whether testing model on only fov points would cause some negative transfer. In this regard, this BOX_FILTER works when we set FOV_POINTS_ONLY to False in KITTI. Actually, we found that in some situations, set FOV_POINTS_ONLY to False could even result in better performance (It seems that the provided checkpoint of Waymo -> KITTI has this characteristic).
from st3d.
See following codes, the mask gts will not works during inference.
Since mask gts already solve situations during training, you just need to consider inference time.
In this regard, you should modify following two place:
- Filter predictions outside range similar to our BOX_FILTER configs.
ST3D/pcdet/datasets/kitti/kitti_dataset.py
Line 284 in 7b3ad3a
- Filter gts outside range in following place.
ST3D/pcdet/datasets/kitti/kitti_dataset.py
Line 341 in 7b3ad3a
You can also refer to here since I already implement this function in Lyft dataset.
ST3D/pcdet/datasets/lyft/lyft_dataset.py
Lines 192 to 201 in 7b3ad3a
from st3d.
Thanks for the detailed response. That makes a lot of sense.
Following on from that - in my understanding, when we set mask_points_and_boxes_outside_range and REMOVE_OUTSIDE_BOXES=True, it'll automatically remove the gt_boxes that are outside of the specific POINT_CLOUD_RANGE. E.g. if I set max x = 20m, it'll only keep any ground truth annotations that are less than 20m. My aim is to train on nuscenes and test on kitti within a certain pointcloud range and so I assume that it'll remove any gt_boxes outside this range.
However, when I exported some kitti pcds from the getitem function during evaluation, it was not the case. I show the exported pcds below. The pcd below is with fov=True and POINT_CLOUD_RANGE: [-20, -20, -2, 20, 20, 4]. You can see that the pointcloud was succesfully filtered however the ground truth boxes at around 60m are still present.
For reference, this is what the full fov pointcloud with POINT_CLOUD_RANGE: [-75.2 -75.2, -2, 75.2, 75.2, 4] looks like.
How do I specify the cfg settings for the kitti dataset in test/train to filter the ground truth annotation boxes such that my detection results are only evaluated on gt_boxes that lie within the POINT_CLOUD_RANGE I've defined?
from st3d.
Amazing. Thanks for your prompt response and for giving such helpful direction.
from st3d.
Related Issues (20)
- About pretrained weights for ST3D++ - PVRCNN HOT 1
- Evaluation on Lyft for paper result HOT 2
- Question about pretrained model HOT 1
- Unstable performance HOT 4
- Source Only and SN training HOT 13
- Have you ever tried ST3D on PointPillars? HOT 2
- Can this project be implement in openpdet-v0.6 HOT 10
- AttributeError: 'DataAugmentor' object has no attribute 'random_object_scaling' HOT 9
- AttributeError: 'EasyDict' object has no attribute 'FOV_DEGREE' HOT 4
- The Car [email protected], 0.70, 0.70 IS 0
- The code hangs on during multi GPU training HOT 8
- The cost definition for SASD HOT 1
- Performance of Nuscenes2KITTI HOT 3
- RecursionError: maximum recursion depth exceeded while calling a Python object
- RecursionError: maximum recursion depth exceeded while calling a Python object HOT 2
- what is the purpose of data augmentation in the target domain? HOT 4
- How to set source batch and target batch to fetch data as the data order in ImageSets.
- The config file for multi classes training
- attempt to write config kitti -> nuscenes(mini)
- How to set parameters of ROS
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from st3d.