Giter Club home page Giter Club logo

open3dsot's Introduction

Open3DSOT

A general python framework for single object tracking in LiDAR point clouds, based on PyTorch Lightning.

The official code release of BAT and M2 Track.

Features

  • Modular design. It is easy to config the model and training/testing behaviors through just a .yaml file.
  • DDP support for both training and testing.
  • Support all common tracking datasets (KITTI, NuScenes, Waymo Open Dataset).

๐Ÿ“ฃ The extension of M2-Track is accepted by TPAMI! ๐Ÿ‘‡

๐Ÿ“ฃ One tracking paper is accepted by CVPR2022 (Oral)! ๐Ÿ‘‡

๐Ÿ“ฃ The codes for M2-Track is now available.

  • The checkpoints we provide here achieve better performances than those reported in our main paper. Check below for more details.
  • The supplementary material is now out. Please check this for more implementation details.

Trackers

This repository includes the implementation of the following models:

M2-Track (CVPR2022 Oral)

[Paper] [Project Page]

M2-Track is the first motion-centric tracker in LiDAR SOT, which robustly handles distractors and drastic appearance changes in complex driving scenes. Unlike previous methods, M2-Track is a matching-free two-stage tracker which localizes the targets by explicitly modeling the "relative target motion" among frames.

BAT (ICCV2021)

[Paper] [Results]

Official implementation of BAT. BAT uses the BBox information to compensate the information loss of incomplete scans. It augments the target template with box-aware features that efficiently and effectively improve appearance matching.

P2B (CVPR2020)

[Paper] [Official implementation]

Third party implementation of P2B. Our implementation achieves better results than the official code release. P2B adapts SiamRPN to 3D point clouds by integrating a pointwise correlation operator with a point-based RPN (VoteNet).

Setup

Installation

  • Create the environment

    git clone https://github.com/Ghostish/Open3DSOT.git
    cd Open3DSOT
    conda create -n Open3DSOT  python=3.8
    conda activate Open3DSOT
    
  • Install pytorch

    conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
    

    Our code is compatible with other PyTorch/CUDA versions. You can follow this to install another version of pytorch. Note: In order to reproduce the reported results with the provided checkpoints of BAT, please use CUDA 10.x.

  • Install other dependencies:

    pip install -r requirement.txt
    

KITTI dataset

  • Download the data for velodyne, calib and label_02 from KITTI Tracking.
  • Unzip the downloaded files.
  • Put the unzipped files under the same folder as following.
    [Parent Folder]
    --> [calib]
        --> {0000-0020}.txt
    --> [label_02]
        --> {0000-0020}.txt
    --> [velodyne]
        --> [0000-0020] folders with velodynes .bin files
    

NuScenes dataset

  • Download the dataset from the download page
  • Extract the downloaded files and make sure you have the following structure:
    [Parent Folder]
      samples	-	Sensor data for keyframes.
      sweeps	-	Sensor data for intermediate frames.
      maps	        -	Folder for all map files: rasterized .png images and vectorized .json files.
      v1.0-*	-	JSON tables that include all the meta data and annotations. Each split (trainval, test, mini) is provided in a separate folder.
    

Note: We use the train_track split to train our model and test it with the val split. Both splits are officially provided by NuScenes. During testing, we ignore the sequences where there is no point in the first given bbox.

Waymo dataset

  • Download and prepare dataset by the instruction of CenterPoint.
    [Parent Folder]
      tfrecord_training	                    
      tfrecord_validation	                 
      train 	                                    -	all training frames and annotations 
      val   	                                    -	all validation frames and annotations 
      infos_train_01sweeps_filter_zero_gt.pkl
      infos_val_01sweeps_filter_zero_gt.pkl
    
  • Prepare SOT dataset. Data from specific category and split will be merged (e.g., sot_infos_vehicle_train.pkl).
  python datasets/generate_waymo_sot.py

Quick Start

Training

To train a model, you must specify the .yaml file with --cfg argument. The .yaml file contains all the configurations of the dataset and the model. We provide .yaml files under the cfgs directory. Note: Before running the code, you will need to edit the .yaml file by setting the path argument as the correct root of the dataset.

CUDA_VISIBLE_DEVICES=0,1 python main.py  --cfg cfgs/M2_track_kitti.yaml  --batch_size 64 --epoch 60 --preloading

For M2-Track, we use the same configuration for all categories. By default, the .yaml is used to trained a Car tracker. You need to change the category_name in the .yaml file to train for another category.

In this version, we remove the --gpus flag. And all the available GPUs will be used by default. You can use CUDA_VISIBLE_DEVICES to select specific GPUs.

After you start training, you can start Tensorboard to monitor the training process:

tensorboard --logdir=./ --port=6006

By default, the trainer runs a full evaluation on the full test split after training every epoch. You can set --check_val_every_n_epoch to a larger number to speed up the training. The --preloading flag is used to preload the training samples into the memory to save traning time. Remove this flag if you don't have enough memory.

Testing

To test a trained model, specify the checkpoint location with --checkpoint argument and send the --test flag to the command.

python main.py  --cfg cfgs/M2_track_kitti.yaml  --checkpoint /path/to/checkpoint/xxx.ckpt --test

Reproduction

Model Category Success Precision Checkpoint
BAT-KITTI Car 65.37 78.88 pretrained_models/bat_kitti_car.ckpt
BAT-NuScenes Car 40.73 43.29 pretrained_models/bat_nuscenes_car.ckpt
BAT-KITTI Pedestrian 45.74 74.53 pretrained_models/bat_kitti_pedestrian.ckpt
M2Track-KITTI Car 67.43 81.04 pretrained_models/mmtrack_kitti_car.ckpt
M2Track-KITTI Pedestrian 60.61 89.39 pretrained_models/mmtrack_kitti_pedestrian.ckpt
M2Track-NuScenes Car 57.22 65.72 pretrained_models/mmtrack_nuscenes_car.ckpt

Trained models are provided in the pretrained_models directory. To reproduce the results, simply run the code with the corresponding .yaml file and checkpoint. For example, to reproduce the tracking results on KITTI Car of M2-Track, just run:

python main.py  --cfg cfgs/M2_track_kitti.yaml  --checkpoint ./pretrained_models/mmtrack_kitti_car.ckpt --test

The reported results of M2-Track checkpoints are produced on 3090/3080ti GPUs. Due to the precision issues, there could be minor differences if you test them with other GPUs.

Acknowledgment

  • This repo is built upon P2B and SC3D.
  • Thank Erik Wijmans for his pytorch implementation of PointNet++

License

This repository is released under MIT License (see LICENSE file for details).

open3dsot's People

Contributors

ghostish avatar iliiliiliili avatar yanx27 avatar zhanghm1995 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

open3dsot's Issues

The settings of dataset

In m2track's configuration file, you've set the validation set and test set to be the same, is this a convention? This seems to have a significant impact on the results.

Predict or Inference using BAT model

Nice work!
I wonder how I can achieve a simple inference step using your model since you used Pytorch_Lighting and your current configuration is aimed to train a model and validate it.
I think sampling process [here] is required in all modes even in inference mode, right?

Thanks

Tracking all objects

Nice work!
Can we use this method to track all the objects in the scene?. I mean generate IDs for all the bboxes that we feed to the network.
Could you please share your visualization script?

Thanks!

RuntimeError: DataLoader worker (pid(s) 28643) exited unexpectedly

Hi, thanks for your work!
When i train the BAT model in kitti dataset(class Car/Pedestrian), it exited unexpectedly. But when i change the tracking class to Van/Cyclist, it works well. I don't know how to solve it, so looking forward to your reply!
25a296f3217dab196c70b4804069e57
my environment:
python 3.7
cuda 10.1
pytorch 1.4.0

Reproduce Van in kitti dataset

Hello author,I found that the Van in kitti dataset was extremely unstable when I reproduced it. I would be very grateful if you could give me some suggestions.I'm looking forward to you reply!

About the running speed of M2Track

Hi,thank you for your contribution. In your paper, you report the running speed of M2Track is 57 FPS. However, i run your model on a single 3090 GPU, it only takes 92s to test all 6424 frames in the Car category. It achieves 69.8fps. I want to know how do you compute the Speed metric, thank you!
image

Testing on NuScenes Validation

Hi authors,

Great work!

I have a question about the testing results on NuScenes. In the paper "V2B", they also evaluate the trackers using the keyframes of the validation set, but you have a different number of the final testing frames. For example, you have 64159 cars, V2B has only 15578 cars. Could you give some tips if you know the reason behind it?

Thanks!

Error when running the code

Hi, I'm trying running your code, but I get the following error. I'm not familiar with pytorch_lightning. Can you help me?

Traceback (most recent call last):
File "/home/weizhenhuan/code/Open3DSOT/main.py", line 87, in
else:
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 460, in fit
self._run(model)
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py", line 717, in _run
self.accelerator.setup(self, model) # note: this sets up self.lightning_module
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/accelerators/gpu.py", line 41, in setup
return super().setup(trainer, model)
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/accelerators/accelerator.py", line 92, in setup
self.setup_optimizers(trainer)
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/accelerators/accelerator.py", line 374, in setup_optimizers
optimizers, lr_schedulers, optimizer_frequencies = self.training_type_plugin.init_optimizers(
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py", line 190, in init_optimizers
return trainer.init_optimizers(model)
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/trainer/optimizers.py", line 97, in init_optimizers
lr_schedulers = self.configure_schedulers(lr_schedulers, monitor, is_manual_optimization)
File "/data01/weizhenhuan/conda_envs/torch/lib/python3.9/site-packages/pytorch_lightning/trainer/optimizers.py", line 175, in configure_schedulers
raise ValueError(f'The provided lr scheduler "{scheduler}" is invalid')
ValueError: The provided lr scheduler "<torch.optim.lr_scheduler.StepLR object at 0x7eff28bf67f0>" is invalid

Training time and computation resources

Congratulations to you on this ICCV paper. Thanks for your contribution to this community.

As you mentioned in your paper, ``All experiments are conducted using NVIDIA RTX-2080 GPUs'', so how many 2080 GPUs do you use for training and how long does it take to train the model?

Look forward to your reply.

Target tracking confidence

Dear author:
Hello, I have reproduced your experimental results, and its performance is excellent.
But I have a question: your work mentioned that it is mainly target tracking based on the motion relationship between the front and back frames. If my target disappears for several frames, it cannot continue to track the target.
I know it is difficult for radar to deal with this situation, so can your code output a confidence level to remind users that the target may be lost.
thank you.

Questions about mean result?

Dear authors,

Thanks for your work, I suffer from a question when following your work.

The paper reports result for multi-category and reports a mean result.

I wonder if the result for per-category is obtained by training the model on the data of the specified category.

Thanks!

nuscenes dataset

I've been following your work for a long time. Thank you very much for your generous sharing of code. The code is about Kitti dataset. I don't know if the relevant code of Nuscenes dataset will be published

Integration with ROS

Hi,
Thank you for your great work:)

I want to use the trained model to detect pedestrian in ROS with VLP-16 lidar sensor.
Would you like to tell me how to integrate BAT model in ROS?

I would be grateful if you could give me some suggestions to achieve it.

Best wishes,
Yicheng

BAT้…็ฝฎไธญ็š„use_search_feature้—ฎ้ข˜

ไฝ ๅฅฝ๏ผŒๆˆ‘ๅ‘็ŽฐๅœจBAT็š„ๆ‰€ๆœ‰้…็ฝฎๆ–‡ไปถ้‡Œuse_search_feature้ƒฝ่ขซ่ฎพ็ฝฎไธบFalse
ไฝ†ๆ˜ฏๅœจ่ฎบๆ–‡ไธญ็š„3.4.2่Š‚ๅด่กจ็คบไฝฟ็”จไบ†search_feature๏ผˆthe extracted feature of the corresponding search point๏ผ‰
่ฏท้—ฎๆ˜ฏ่ฎพ็ฝฎไธบFalseๆ›ดๅฅฝๅ—๏ผŸๆˆ–่€…ๆ˜ฏๆˆ‘ๅ“ช้‡Œ็†่งฃ้”™ไบ†

Reproduction of M2track

Dear authors,

I am not able to reproduce the results reported in the paper using the given config at M2_track_kitti.yaml

The paper reports 61.5/88.2 for the pedestrian class on KITTI but I have 52.1/76.5.

I wonder if the same config used for generating the results in the paper is provided. Or is there anything else we can take note of to reproduce the results?

Thanks!

Memory problem while testing nuscences

Hi๏ผŒwhile testing in nuscenes dataset,my memory usage keeping rising to 100% and the process will bekilled.My memory is 64 GB.I want to know your memory size.And how can I modify the code to make it run normally๏ผŸLooking forward to your reply!Thank you.
image

Unstable training results

For BAT:
I have run two groups of training exps on Kitti Cars with the same given config(only changing the directory) under the same platform (given conda env and Cuda 11.0).

When testing, the results of two exps are quite different, evey model are tested two times (almost the same for the two times):
(1) {'precision/test': 68.40597534179688,
'precision/test_epoch': 68.40597534179688,
'success/test': 54.71745681762695,
'success/test_epoch': 54.71745681762695}
(2){'precision/test': 73.75078582763672,
'precision/test_epoch': 73.75078582763672,
'success/test': 59.293277740478516,
'success/test_epoch': 59.293277740478516}

When testing your given pretrained model (./pretrained_models/bat_kitti_car.ckpt) with two times also, your listed results could be achieved:
{'precision/test': 78.87997436523438,
'precision/test_epoch': 78.87997436523438,
'success/test': 65.37126159667969,
'success/test_epoch': 65.37126159667969}

So, why does the training process be so unstable? One reason maybe that the training and testing samples are too little to obtain stable results?

Do you also meet with such a phenomenon? How do you do the exps? One time or multiple time to choose a best result?
Otherwise the method is so unstable. We need a explanation about this. Looking forward about this issue.

The Results between testing and validation phase is inconsistent.

Hi Authors,

Thanks for your excellent work.
I have a question when running your code. During the training phase, the validation set is equal to the testing set. But during the testing phase, when using "--test" to evaluate the trained network, the performances (succ./prec.) are inconsistent with the validation's performance. Maybe not the reason of "model.eval()". Have you noticed this problem? Thanks.

Excuse me, about the reproducing of Pedstrian and Van on Kitti.

Dear authors,

Great work and paper!
I am a postgraduate student and my research project is 3D SOT.
Regarding the result of reproducing on the KITTI dataset, I found that the results I reproduced on the Car and Cyclist data sets were basically the same, but the results on Pedestrian and Van were very different.

The reproducing success/precision on Pedestrians are near 50/75, much lower than the results in the paper 60/89.

I just change the dataset name in the yaml cfg file (Car to Pedestrian) and then train it. I would be appreciated if you can share me more details on the model parameter setting if i fogot to set.

Thank you very much!

How to encoder the time (frame id) information?

How do you set the time information to construct the point cloud (Nx4) in the final temporal dimension as you said in your paper?
There may be several choices:
(1) The true frame id like 400 for the 400-th frame;
(2) Normalized frame id like 0-1 for all frame ids, then 0.5 will indidate the half frames (200-th frame for a 400-frame video)
(3) just use 0 for all the templates and 1 for all search frames.

Cannot reproduce results on KITTI pedestrian

Hi,
Thanks for your contribution to 3D SOT research area. However, I met some problems when I used your code. It's so weird that I can reproduce the result of KITTI car while I cannot reproduce the result of KITTI pedestrian using pretrained models.

CUDA_VISIBLE_DEVICES=2,3 python main.py --gpu 0 1 --cfg cfgs/BAT_Car.yaml  --checkpoint ./pretrained_models/bat_kitti_car.ckpt --test
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/2
initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2
----------------------------------------------------------------------------------------------------
distributed_backend=nccl
All distributed processes registered. Starting with 2 processes
----------------------------------------------------------------------------------------------------

LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [2,3]
LOCAL_RANK: 1 - CUDA_VISIBLE_DEVICES: [2,3]
Validating: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 60/60 [02:55<00:00,  1.43s/it]-
--------------------------------------------------------------------------------
DATALOADER:0 VALIDATE RESULTS
{'precision/test': 78.87921142578125,
 'precision/test_epoch': 78.87921142578125,
 'success/test': 65.34402370452881,
 'success/test_epoch': 65.34402370452881}
CUDA_VISIBLE_DEVICES=2,3 python main.py --gpu 0 1 --cfg cfgs/BAT_Pedestrian.yaml  --checkpoint ./pretrained_models/bat_kitti_pedestrian.ckpt --test                                                                                                                                                                                                                                  
GPU available: True, used: True                                                                                                                                                             
TPU available: False, using: 0 TPU cores                                                                                                                                                    
IPU available: False, using: 0 IPUs                                                                                                                                                         
initializing distributed: GLOBAL_RANK: 0, MEMBER: 1/2                                                                                                                                       
initializing distributed: GLOBAL_RANK: 1, MEMBER: 2/2                                                                                                                                       
----------------------------------------------------------------------------------------------------                                                                                        
distributed_backend=nccl                                                                                                                                                                    
All distributed processes registered. Starting with 2 processes                                                                                                                             
----------------------------------------------------------------------------------------------------

LOCAL_RANK: 1 - CUDA_VISIBLE_DEVICES: [2,3]
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [2,3]
Validating: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 31/31 [03:01<00:00,  3.21s/it]
--------------------------------------------------------------------------------
DATALOADER:0 VALIDATE RESULTS
{'precision/test': 71.10257720947266,
 'precision/test_epoch': 71.10257720947266,
 'success/test': 43.36358308792114,
 'success/test_epoch': 43.36358308792114}
--------------------------------------------------------------------------------

I evaluate BAT model with cuda10.2 and pytorch 1.8, thus I suppose this phenomenon is not caused by the platform. Do you also meet with such a phenomenon? Look forward to your explanation.

Thanks~

More details about NuScenes dataset

Thanks for your work! I want to ask for some information about NuScenes dataset.

  1. you said you use the training set of NuScenes for training and test on its validation set. Have you used the two splits all? As I know, there are some tracking sequences whose first frame has no points, do you test them too?
  2. I see you test Car, Truck, Trailer, Bus in NuScenes, how about the other categories? such as "pedestrian", "motorcycle"?
    Thanks again for your work!

validation by RTX-3090

Hi,
Maybe I can provide another validation by using the provided pre-trained bat_kitti_cat.cpkt model:

DATALOADER:0 VALIDATE RESULTS
{'precision/test': 76.09471893310547,
'precision/test_epoch': 76.09471893310547,
'success/test': 63.18337321281433,
'success/test_epoch': 63.18337321281433}

Environment: Cuda-11.0; PyTorch: 1.7.0; RTX 3090;

It seems that the success result is better and the precision is slightly inferior to the original result reported in Table 1 of the paper. Is it correct?

Could you provide more training details on Waymo dataset?

Since the Waymo dataset is huge, it seems to impossible to preload all training samples into memory and save as one file. So I tried to save each tracklet info into a file respectively. However, loading data seems still too slow during training with batch size 64. I wonder how many epoches and how long training time is needed to reproduce the results in the paper.
Thanks for your replying!

something weired while testing

Hi!Last time i find that the results are different in different platform.Recently,i test the Pedestrian category with the ckpt file you provided for many times,but the results are quite different.All tests are done on the same computer(2080ti,cuda10.2,pytorch1.5)
image
image
image
image

This does not happen to Car category.

Van and Cyclist

Hi,if i want to train and test Van and Cyclist category ,what do I need to modify in the BAT_Car.yaml?
I am so sorry to bother you again! I am following your work and I need to do a complete experiment to test my idea.It would be better if you have time to upload the config file to github.Thank you!

Testing InNuScenes

Hi,
Thanks for your work.

I try to test the results on Nuscenes, but the total number of frame is different from your value reported in paper. For example, "Bus" includes 2953 frames when testing, and 2215 in paper. I don't why. Can you give me some tips?
image

Thanks.

Visualization problem

Hi๏ผI use matplotlib to visualize the code.But i meet a problem.For example,i want to visualize the search_points in prepare_input function.My code are as follows:
image

However,two pictures appear as follows.The first figure seems right.
image
image

I meet the same problem when i use mayavi.
image

the shape of search_points is (1024,3),it seems right.I don't know why the second figure appears. I also find this problem when i test P2B.Could you please give your opinion on this problem? Thank you!

Maybe a BUG reporting : the returned idx in pointnet backbone implementation

Wonderful work! However, I'm curious at this code in models/backbone/pointnet.py

        for i in range(len(self.SA_modules)):
            li_xyz, li_features, sample_idxs = self.SA_modules[i](l_xyz[i], l_features[i], numpoints[i], True)
            l_xyz.append(li_xyz)
            l_features.append(li_features)
            l_idxs.append(sample_idxs)
        if self.return_intermediate:
            return l_xyz[1:], l_features[1:], l_idxs[0]
        return l_xyz[-1], l_features[-1], l_idxs[0]

It seems that the idx is used to generate corresponding segmentation ground truth mask for the downsampled search point clouds. Is it correct that simply return l_idxs[0] instead of merge all the results in l_idxs ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.