FCAF3D: Fully Convolutional Anchor-Free 3D Object Detection

Overview

PWC PWC PWC

FCAF3D: Fully Convolutional Anchor-Free 3D Object Detection

This repository contains an implementation of FCAF3D, a 3D object detection method introduced in our paper:

FCAF3D: Fully Convolutional Anchor-Free 3D Object Detection
Danila Rukhovich, Anna Vorontsova, Anton Konushin
Samsung AI Center Moscow
https://arxiv.org/abs/2112.00322

Installation

For convenience, we provide a Dockerfile.

Alternatively, you can install all required packages manually. This implementation is based on mmdetection3d framework. Please refer to the original installation guide getting_started.md, replacing open-mmlab/mmdetection3d with samsunglabs/fcaf3d. Also, MinkowskiEngine and rotated_iou should be installed with these commands.

Most of the FCAF3D-related code locates in the following files: detectors/single_stage_sparse.py, necks/fcaf3d_neck_with_head.py, backbones/me_resnet.py.

Getting Started

Please see getting_started.md for basic usage examples. We follow the mmdetection3d data preparation protocol described in scannet, sunrgbd, and s3dis. The only difference is that we do not sample 50,000 points from each point cloud in SUN RGB-D, using all points.

Training

To start training, run dist_train with FCAF3D configs:

bash tools/dist_train.sh configs/fcaf3d/fcaf3d_scannet-3d-18class.py 2

Testing

Test pre-trained model using dist_test with FCAF3D configs:

bash tools/dist_test.sh configs/fcaf3d/fcaf3d_scannet-3d-18class.py \
    work_dirs/fcaf3d_scannet-3d-18class/latest.pth 2 --eval mAP

Visualization

Visualizations can be created with test script. For better visualizations, you may set score_thr in configs to 0.20:

python tools/test.py configs/fcaf3d/fcaf3d_scannet-3d-18class.py \
    work_dirs/fcaf3d_scannet-3d-18class/latest.pth --show \
    --show-dir work_dirs/fcaf3d_scannet-3d-18class

Models

The metrics are obtained in 5 training runs followed by 5 test runs. We report both the best and the average values (the latter are given in round brackets).

For VoteNet and ImVoteNet, we provide the configs and checkpoints with our Mobius angle parametrization. For ImVoxelNet, please refer to the imvoxelnet repository as it is not currently supported in mmdetection3d. Inference speed (scenes per second) is measured on a single NVidia GTX1080Ti.

FCAF3D

Dataset [email protected] [email protected] Download
ScanNet 71.5 (70.7) 57.3 (56.0) model | log | config
SUN RGB-D 64.2 (63.8) 48.9 (48.2) model | log | config
S3DIS 66.7 (64.9) 45.9 (43.8) model | log | config

Faster FCAF3D on ScanNet

Backbone Voxel
size
[email protected] [email protected] Scenes
per sec.
Download
HDResNet34 0.01 70.7 56.0 8.0 see table above
HDResNet34:3 0.01 69.8 53.6 12.2 model | log | config
HDResNet34:2 0.02 63.1 46.8 31.5 model | log | config

VoteNet on SUN RGB-D

Source [email protected] [email protected] Download
mmdetection3d 59.1 35.8 instruction
ours 61.1 (60.5) 40.4 (39.5) model | log | config

ImVoteNet on SUN RGB-D

Source [email protected] [email protected] Download
mmdetection3d 64.0 37.8 instruction
ours 64.6 (64.1) 40.8 (39.8) model | log | config

Comparison with state-of-the-art on ScanNet

drawing

Example Detections

drawing

Citation

If you find this work useful for your research, please cite our paper:

@article{rukhovich2021fcaf3d,
  title={FCAF3D: Fully Convolutional Anchor-Free 3D Object Detection},
  author={Danila Rukhovich, Anna Vorontsova, Anton Konushin},
  journal={arXiv preprint arXiv:2112.00322},
  year={2021}
}
Comments
  • Nothing happened when I visualized my latest.pth

    Nothing happened when I visualized my latest.pth

    Thank you for your Greak work! I followed your dockerfile and everything was well-done. training and evaluation were great. but when i visualized my latest.pth there is nothing happened it seemed like processing my checkpoint file but i cannot understand what was done(any file didn't be produced).

    should i additionally install more program to visualize something? here is my problem.

    [email protected]:/mmdetection3d# python tools/test.py configs/fcaf3d/fcaf3d_sunrgbd-3d-10class.py /mmdetection3d/work_dirs/fcaf3d_sunrgbd-3d-10class/latest.pth --show --show-dir /mmdetection3d/work_dirs/fcaf3d_sunrgbd-3d-10class Use load_from_local loader [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 5050/5050, 8.0 task/s, elapsed: 632s, ETA: 0sroo[email protected]:/mmdetection3d# [email protected]:/mmdetection3d#

    bug 
    opened by joshiaLee 6
  • Performance on SUN RGB-D

    Performance on SUN RGB-D

    I get some trouble when reproducing the results on the SUN RGB-Ddataset. When I train FCAF3D with the following command for 3 times:

    CUDA_VISIBLE_DEVICES=5,6 bash tools/dist_train.sh configs/fcaf3d/fcaf3d_sunrgbd-3d-10class.py 2
    

    I get results as follows:

    +-------------+---------+---------+---------+---------+
    | classes     | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 |
    +-------------+---------+---------+---------+---------+
    | bed         | 0.8719  | 0.9845  | 0.6141  | 0.7456  |
    | table       | 0.4641  | 0.9672  | 0.2555  | 0.6465  |
    | sofa        | 0.6754  | 0.9745  | 0.4773  | 0.7703  |
    | chair       | 0.7990  | 0.9602  | 0.6536  | 0.8373  |
    | toilet      | 0.9059  | 0.9931  | 0.6496  | 0.8138  |
    | desk        | 0.2875  | 0.9431  | 0.0774  | 0.4819  |
    | dresser     | 0.3682  | 0.9358  | 0.1909  | 0.5780  |
    | night_stand | 0.6696  | 0.9647  | 0.5330  | 0.8118  |
    | bookshelf   | 0.2164  | 0.8156  | 0.0430  | 0.2376  |
    | bathtub     | 0.7385  | 0.9388  | 0.4736  | 0.6939  |
    +-------------+---------+---------+---------+---------+
    | Overall     | 0.5997  | 0.9477  | 0.3968  | 0.6617  |
    +-------------+---------+---------+---------+---------+
    
    +-------------+---------+---------+---------+---------+
    | classes     | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 |
    +-------------+---------+---------+---------+---------+
    | bed         | 0.8724  | 0.9883  | 0.6265  | 0.7553  |
    | table       | 0.4751  | 0.9706  | 0.2678  | 0.6520  |
    | sofa        | 0.6932  | 0.9856  | 0.4864  | 0.7352  |
    | chair       | 0.8149  | 0.9672  | 0.6757  | 0.8485  |
    | toilet      | 0.9139  | 1.0000  | 0.6214  | 0.8000  |
    | desk        | 0.2901  | 0.9511  | 0.0759  | 0.4862  |
    | dresser     | 0.3544  | 0.9633  | 0.1908  | 0.6147  |
    | night_stand | 0.6701  | 0.9608  | 0.5355  | 0.8118  |
    | bookshelf   | 0.2548  | 0.8794  | 0.0505  | 0.2872  |
    | bathtub     | 0.7533  | 0.9796  | 0.5332  | 0.6735  |
    +-------------+---------+---------+---------+---------+
    | Overall     | 0.6092  | 0.9646  | 0.4064  | 0.6665  |
    +-------------+---------+---------+---------+---------+
    
    +-------------+---------+---------+---------+---------+
    | classes     | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 |
    +-------------+---------+---------+---------+---------+
    | bed         | 0.8681  | 0.9553  | 0.5910  | 0.7146  |
    | table       | 0.4706  | 0.9497  | 0.2596  | 0.6427  |
    | sofa        | 0.6792  | 0.9665  | 0.4032  | 0.7225  |
    | chair       | 0.7962  | 0.9533  | 0.6424  | 0.8232  |
    | toilet      | 0.9123  | 0.9931  | 0.6393  | 0.7862  |
    | desk        | 0.2962  | 0.9283  | 0.0804  | 0.4718  |
    | dresser     | 0.3405  | 0.9083  | 0.1785  | 0.5596  |
    | night_stand | 0.6685  | 0.9294  | 0.5227  | 0.7529  |
    | bookshelf   | 0.1860  | 0.7730  | 0.0451  | 0.2376  |
    | bathtub     | 0.7124  | 0.9592  | 0.3878  | 0.6327  |
    +-------------+---------+---------+---------+---------+
    | Overall     | 0.5930  | 0.9316  | 0.3750  | 0.6344  |
    +-------------+---------+---------+---------+---------+
    
    opened by Sharpiless 5
  • The error about training the S3DIS dataset

    The error about training the S3DIS dataset

    Hello, an error ocurred when I tried to train the S3DIS dataset:

    Traceback (most recent call last): File "tools/train.py", line 223, in main() File "tools/train.py", line 212, in main train_model( File "/mmdetection3d/mmdet3d/apis/train.py", line 27, in train_model train_detector( File "/opt/conda/lib/python3.8/site-packages/mmdet/apis/train.py", line 170, in train_detector runner.run(data_loaders, cfg.workflow) File "/opt/conda/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run epoch_runner(data_loaders[i], **kwargs) File "/opt/conda/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 50, in train self.run_iter(data_batch, train_mode=True, **kwargs) File "/opt/conda/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 29, in run_iter outputs = self.model.train_step(data_batch, self.optimizer, File "/opt/conda/lib/python3.8/site-packages/mmcv/parallel/data_parallel.py", line 67, in train_step return self.module.train_step(*inputs[0], **kwargs[0]) File "/opt/conda/lib/python3.8/site-packages/mmdet/models/detectors/base.py", line 237, in train_step losses = self(**data) File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/opt/conda/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 98, in new_func return old_func(*args, **kwargs) File "/mmdetection3d/mmdet3d/models/detectors/base.py", line 58, in forward return self.forward_train(**kwargs) File "/mmdetection3d/mmdet3d/models/detectors/single_stage_sparse.py", line 48, in forward_train x = self.extract_feat(points, img_metas) File "/mmdetection3d/mmdet3d/models/detectors/single_stage_sparse.py", line 40, in extract_feat x = self.neck_with_head(x) File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl result = self.forward(*input, **kwargs) File "/mmdetection3d/mmdet3d/models/dense_heads/fcaf3d_neck_with_head.py", line 102, in forward x = self._prune(x, scores) File "/mmdetection3d/mmdet3d/models/dense_heads/fcaf3d_neck_with_head.py", line 124, in _prune prune_mask[permutation[mask]] = True RuntimeError: invalid shape dimension -255

    I don't know how to solve it. Looking forward to your reply!

    opened by week0425 5
  • Some question on code (About the origin in class DepthInstance3DBoxes )

    Some question on code (About the origin in class DepthInstance3DBoxes )

    Thanks for your great work, when I read the code, I have some confuse.

    In the file mmdet3d/models/dense_heads/fcaf3d_neck_with_head.py, we can see function loss_single for train, and get_box_single for evaluation. I just want to know, the origin of the box predicated by network is (0.5, 0.5, 0) or (0.5, 0.5, 0.5). Because I see that when we get the box_loss in function '_loss_single', the gt_box is convert to the class with origin(0.5, 0.5, 0.5), and the box predicated by the network do nothing(after _bbox_pred_to_bbox), then we get the loss_bbox. So we can think the p red box's origin is (0.5, 0.5, 0.5). But when we evaluate the network, the predicated box in function '_get_box_single' is convert to box with origin(0.5, 0.5, 0.5), then the boxes are evaluated by the function('indoor_eval') with gt_box which was convert to box with origin(0.5, 0.5, 0,5)

    So I confused with above code, thus, when I using the box to test some others tasks, I have no idea to use the original box or convert it to the box with origin(0.5, 0.5, 0.5)

    opened by wtt0213 5
  • how can I increase small objects'mAP?

    how can I increase small objects'mAP?

    Hi I selected 10 small objects in SUNRGBD and I made those trained in this model. but, result showed only 0.1mAP( learning_rate = 0.001, epoch = 12, Objects were cup,bottle,bowl,book etc) I guess this model was designed for big objects not small things, right? then, how can I increase small objects' mAP? are there any parameters to do that?

    opened by joshiaLee 5
  • Performance on ScanNet

    Performance on ScanNet

    Hi, awesome work! But I get some trouble when reproducing the results on the ScanNet dataset. Could you give me some advice? When I train FCAF3D with the following command:

    bash tools/dist_train.sh configs/fcaf3d/fcaf3d_scannet-3d-18class.py 2

    I get results as follows

    +----------------+---------+---------+---------+---------+ | classes | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 | +----------------+---------+---------+---------+---------+ | cabinet | 0.5393 | 0.9059 | 0.3704 | 0.7366 | | bed | 0.8674 | 0.9259 | 0.7992 | 0.8519 | | chair | 0.9542 | 0.9854 | 0.8964 | 0.9415 | | sofa | 0.9118 | 0.9794 | 0.7914 | 0.9381 | | table | 0.7015 | 0.8971 | 0.6479 | 0.8029 | | door | 0.6186 | 0.9229 | 0.4389 | 0.7195 | | window | 0.5750 | 0.8865 | 0.3336 | 0.5993 | | bookshelf | 0.5852 | 0.8831 | 0.5157 | 0.7922 | | picture | 0.2571 | 0.5721 | 0.1564 | 0.3649 | | counter | 0.6106 | 0.8846 | 0.2338 | 0.5385 | | desk | 0.7157 | 0.9685 | 0.5472 | 0.8819 | | curtain | 0.5929 | 0.8955 | 0.4346 | 0.7015 | | refrigerator | 0.4901 | 0.8772 | 0.4010 | 0.8246 | | showercurtrain | 0.8306 | 0.9643 | 0.4340 | 0.7857 | | toilet | 1.0000 | 1.0000 | 0.9378 | 0.9655 | | sink | 0.8543 | 0.9592 | 0.5197 | 0.6837 | | bathtub | 0.8684 | 0.9032 | 0.8299 | 0.8710 | | garbagebin | 0.6439 | 0.8717 | 0.5762 | 0.7604 | +----------------+---------+---------+---------+---------+ | Overall | 0.7009 | 0.9046 | 0.5480 | 0.7644 | +----------------+---------+---------+---------+---------+

    There is about 0.6 mAP gap between my result (70.09) and paper result (70.7) on AP 0.25 metric, and there is about 1.2 mAP gap between my result (54.8) and paper result (56.0) on AP 0.5 metric. Is this variance? or do I need to modify something to achieve comparable results with paper? Thanks ~

    opened by WWW2323 4
  • output all predict bbox coordinate position

    output all predict bbox coordinate position

    Hello,I successfully run your code,but I want to output all predict bbox coordinate position.I have tried print the bbox_list in single_stage_mono3d.py,but when i run the tools/test.py ,I found it did not call the single_stage_mono3d.py.Could you please help me ?

    opened by PengboLi1998 4
  • Can MinkowskiGenerativeConvolutionTranspose from fcaf3d_neck_with_head.py replaced?

    Can MinkowskiGenerativeConvolutionTranspose from fcaf3d_neck_with_head.py replaced?

    Hi, thank you for the great work!

    I noticed that the code uses MinkowskiEngine as the backend. I am trying to replace the backend with Spconv, which is one of the different sparse convolution libraries for a research purpose.

    I found out that fcaf3d is using MinkowkiGenerativeConvolutionTranspose in fcaf3d_neck_with_head.py. I am not sure how I could replace that function with spconv apis. How is MinkowkiGenerativeConvolutionTranspose different from MinkowskiConvolutionTranspose? The documentation says it produces new coordinates, but is this necessary, or can be replaced with MinkowskiConvolutionTranspose? If not, is there any workaround for this?

    Thanks!

    opened by YJYJLee 4
  • How can I generate per point classification?

    How can I generate per point classification?

    Hi, thanks for sharing your excellent work first! I have several questions.

    I met the following error while testing. For my understanding, there are no annotations available while testing. So after a hard debug, I found that the second composer of test_pipeline called the 'annos' key of my test.pkl data, so I comment out this line dict(type='GlobalAlignment', rotation_axis=2), in the config file so that I can get a result. But actually I'm not sure will it cause any alignment problem on the results.

    File "tools/test.py", line 214, in main() File "tools/test.py", line 184, in main outputs = single_gpu_test(model, data_loader, args.show, args.show_dir) File "/media/yangtian/SATA3/Workspace/fcaf3d-master/mmdet3d/apis/test.py", line 36, in single_gpu_test for i, data in enumerate(data_loader): File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 517, in next data = self._next_data() File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1199, in _next_data return self._process_data(data) File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1225, in _process_data data.reraise() File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/_utils.py", line 429, in reraise raise self.exc_type(msg) KeyError: Caught KeyError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop data = fetcher.fetch(index) File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/media/yangtian/SATA3/Workspace/fcaf3d-master/mmdet3d/datasets/custom_3d.py", line 354, in getitem return self.prepare_test_data(idx) File "/media/yangtian/SATA3/Workspace/fcaf3d-master/mmdet3d/datasets/scannet_dataset.py", line 135, in prepare_test_data example = self.pipeline(input_dict) File "/home/yangtian/anaconda3/envs/open-mmlab/lib/python3.8/site-packages/mmdet/datasets/pipelines/compose.py", line 41, in call data = t(data) File "/media/yangtian/SATA3/Workspace/fcaf3d-master/mmdet3d/datasets/pipelines/transforms_3d.py", line 475, in call assert 'axis_align_matrix' in input_dict['ann_info'].keys(),
    KeyError: 'ann_info'

    And after that, I wanna visualize the results, so I added--show --show_dir ./results/custom_test/ . However met another error:

    File "tools/test.py", line 214, in main() File "tools/test.py", line 184, in main outputs = single_gpu_test(model, data_loader, args.show, args.show_dir) File "/media/yangtian/SATA3/Workspace/fcaf3d-master/mmdet3d/apis/test.py", line 46, in single_gpu_test model.module.show_results(data, result, out_dir) File "/media/yangtian/SATA3/Workspace/fcaf3d-master/mmdet3d/models/detectors/base.py", line 107, in show_results show_result(points, None, pred_bboxes, out_dir, file_name) TypeError: show_result() missing 2 required positional arguments: 'out_dir' and 'filename'

    Not fixed yet. But I found that in show_result.py, the function show_result() takes gt_labels and pred_labels as well while in the testing procedure it doesn't pass this two values. I'm gonna continue debugging on it.

    Finally, I'm wondering if there's a convenience way to get per point classification results?

    opened by sylyt62 4
  • some issues for the evaluation results of fcaf3d

    some issues for the evaluation results of fcaf3d

    Hello: There is a obvious difference between the actual evaluation results of the algorithm and those described in the paper, the cause of the problem has not been found yet, please give me some suggestions.

    1.Evaluation results for the model provided in github of SamsungLabs/fcaf3d:(12 epoches) 1.1 sunrgbd


    Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.


    Use load_from_local loader Use load_from_local loader [ ] 0/5050, elapsed: [>>>>>>>>>>>>>>>>] 5050/5050, 15.9 task/s, elapsed: 318s, ETA: 0s +-------------+---------+---------+---------+---------+ | classes | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 | +-------------+---------+---------+---------+---------+ | bed | 0.0496 | 0.7612 | 0.0094 | 0.5883 | | table | 0.1570 | 0.8514 | 0.1222 | 0.7909 | | sofa | 0.2261 | 0.8469 | 0.1440 | 0.7735 | | chair | 0.1985 | 0.7662 | 0.1671 | 0.7272 | | toilet | 0.3586 | 0.9379 | 0.2778 | 0.8552 | | desk | 0.0970 | 0.7641 | 0.0665 | 0.6982 | | dresser | 0.2063 | 0.9128 | 0.1956 | 0.8670 | | night_stand | 0.4174 | 0.9608 | 0.4127 | 0.9451 | | bookshelf | 0.1585 | 0.8865 | 0.1489 | 0.8511 | | bathtub | 0.3658 | 0.9592 | 0.3561 | 0.8571 | +-------------+---------+---------+---------+---------+ | Overall | 0.2235 | 0.8647 | 0.1900 | 0.7954 | +-------------+---------+---------+---------+---------+ {'bed_AP_0.25': 0.049614179879426956, 'table_AP_0.25': 0.15698249638080597, 'sofa_AP_0.25': 0.2261233627796173, 'chair_AP_0.25': 0.19846875965595245, 'toilet_AP_0.25': 0.35864582657814026, 'desk_AP_0.25': 0.09701932221651077, 'dresser_AP_0.25': 0.20626720786094666, 'night_stand_AP_0.25': 0.41742968559265137, 'bookshelf_AP_0.25': 0.15852327644824982, 'bathtub_AP_0.25': 0.3657997250556946, 'mAP_0.25': 0.22348737716674805, 'bed_rec_0.25': 0.7611650485436893, 'table_rec_0.25': 0.8513628620102215, 'sofa_rec_0.25': 0.84688995215311, 'chair_rec_0.25': 0.7661741214057508, 'toilet_rec_0.25': 0.9379310344827586, 'desk_rec_0.25': 0.7640807651434643, 'dresser_rec_0.25': 0.9128440366972477, 'night_stand_rec_0.25': 0.9607843137254902, 'bookshelf_rec_0.25': 0.8865248226950354, 'bathtub_rec_0.25': 0.9591836734693877, 'mAR_0.25': 0.8646940630326154, 'bed_AP_0.50': 0.009411284700036049, 'table_AP_0.50': 0.12223674356937408, 'sofa_AP_0.50': 0.14403118193149567, 'chair_AP_0.50': 0.1670922487974167, 'toilet_AP_0.50': 0.27775609493255615, 'desk_AP_0.50': 0.06645272672176361, 'dresser_AP_0.50': 0.19564399123191833, 'night_stand_AP_0.50': 0.41268840432167053, 'bookshelf_AP_0.50': 0.14886672794818878, 'bathtub_AP_0.50': 0.35609957575798035, 'mAP_0.50': 0.19002790749073029, 'bed_rec_0.50': 0.5883495145631068, 'table_rec_0.50': 0.790885860306644, 'sofa_rec_0.50': 0.773524720893142, 'chair_rec_0.50': 0.7272364217252396, 'toilet_rec_0.50': 0.8551724137931035, 'desk_rec_0.50': 0.6981934112646121, 'dresser_rec_0.50': 0.8669724770642202, 'night_stand_rec_0.50': 0.9450980392156862, 'bookshelf_rec_0.50': 0.851063829787234, 'bathtub_rec_0.50': 0.8571428571428571, 'mAR_0.50': 0.7953639545755846}

    1.2 scannet


    Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.


    Use load_from_local loader Use load_from_local loader [ ] 0/312, elapsed: 0[>>>>>>>>>>>>>>>>>>>] 312/312, 10.4 task/s, elapsed: 30s, ETA: 0s +----------------+---------+---------+---------+---------+ | classes | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 | +----------------+---------+---------+---------+---------+ | cabinet | 0.0077 | 0.2742 | 0.0052 | 0.2419 | | bed | 0.0003 | 0.0370 | 0.0000 | 0.0247 | | chair | 0.0193 | 0.2661 | 0.0138 | 0.2354 | | sofa | 0.0015 | 0.0825 | 0.0005 | 0.0825 | | table | 0.0016 | 0.1429 | 0.0011 | 0.1229 | | door | 0.0104 | 0.2441 | 0.0079 | 0.2313 | | window | 0.0028 | 0.1773 | 0.0021 | 0.1631 | | bookshelf | 0.0081 | 0.1558 | 0.0042 | 0.1429 | | picture | 0.0028 | 0.2658 | 0.0025 | 0.2568 | | counter | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | desk | 0.0012 | 0.0866 | 0.0010 | 0.0709 | | curtain | 0.0000 | 0.0448 | 0.0000 | 0.0448 | | refrigerator | 0.0000 | 0.0351 | 0.0000 | 0.0000 | | showercurtrain | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | toilet | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | sink | 0.0000 | 0.0102 | 0.0000 | 0.0000 | | bathtub | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | garbagebin | 0.0048 | 0.2113 | 0.0039 | 0.1811 | +----------------+---------+---------+---------+---------+ | Overall | 0.0034 | 0.1130 | 0.0024 | 0.0999 | +----------------+---------+---------+---------+---------+ {'cabinet_AP_0.25': 0.007672073319554329, 'bed_AP_0.25': 0.0003270927118137479, 'chair_AP_0.25': 0.019300922751426697, 'sofa_AP_0.25': 0.0015425414312630892, 'table_AP_0.25': 0.0016294954111799598, 'door_AP_0.25': 0.010358083993196487, 'window_AP_0.25': 0.0027569225057959557, 'bookshelf_AP_0.25': 0.008131678216159344, 'picture_AP_0.25': 0.002778079127892852, 'counter_AP_0.25': 0.0, 'desk_AP_0.25': 0.0011750475969165564, 'curtain_AP_0.25': 2.2466720110969618e-05, 'refrigerator_AP_0.25': 1.3386352293309756e-05, 'showercurtrain_AP_0.25': 0.0, 'toilet_AP_0.25': 0.0, 'sink_AP_0.25': 1.440034111510613e-06, 'bathtub_AP_0.25': 0.0, 'garbagebin_AP_0.25': 0.00475729675963521, 'mAP_0.25': 0.003359251655638218, 'cabinet_rec_0.25': 0.27419354838709675, 'bed_rec_0.25': 0.037037037037037035, 'chair_rec_0.25': 0.26608187134502925, 'sofa_rec_0.25': 0.08247422680412371, 'table_rec_0.25': 0.14285714285714285, 'door_rec_0.25': 0.24411134903640258, 'window_rec_0.25': 0.1773049645390071, 'bookshelf_rec_0.25': 0.15584415584415584, 'picture_rec_0.25': 0.26576576576576577, 'counter_rec_0.25': 0.0, 'desk_rec_0.25': 0.08661417322834646, 'curtain_rec_0.25': 0.04477611940298507, 'refrigerator_rec_0.25': 0.03508771929824561, 'showercurtrain_rec_0.25': 0.0, 'toilet_rec_0.25': 0.0, 'sink_rec_0.25': 0.01020408163265306, 'bathtub_rec_0.25': 0.0, 'garbagebin_rec_0.25': 0.21132075471698114, 'mAR_0.25': 0.11298182832749847, 'cabinet_AP_0.50': 0.005249418318271637, 'bed_AP_0.50': 7.024568276392529e-06, 'chair_AP_0.50': 0.013795703649520874, 'sofa_AP_0.50': 0.0005232820985838771, 'table_AP_0.50': 0.001064108102582395, 'door_AP_0.50': 0.007914243265986443, 'window_AP_0.50': 0.0021169877145439386, 'bookshelf_AP_0.50': 0.0042017120867967606, 'picture_AP_0.50': 0.0025250331964343786, 'counter_AP_0.50': 0.0, 'desk_AP_0.50': 0.0010463166981935501, 'curtain_AP_0.50': 2.2466720110969618e-05, 'refrigerator_AP_0.50': 0.0, 'showercurtrain_AP_0.50': 0.0, 'toilet_AP_0.50': 0.0, 'sink_AP_0.50': 0.0, 'bathtub_AP_0.50': 0.0, 'garbagebin_AP_0.50': 0.003941362723708153, 'mAP_0.50': 0.0023559811525046825, 'cabinet_rec_0. 50': 0.24193548387096775, 'bed_rec_0.50': 0.024691358024691357, 'chair_rec_0.50': 0.23538011695906433, 'sofa_rec_0.50': 0.08247422680412371, 'table_rec_0.50': 0.12285714285714286, 'door_rec_0.50': 0.23126338329764454, 'window_rec_0.50': 0.16312056737588654, 'bookshelf_rec_0.50': 0.14285714285714285, 'picture_rec_0.50': 0.25675675675675674, 'counter_rec_0.50': 0.0, 'desk_rec_0.50': 0.07086614173228346, 'curtain_rec_0. 50': 0.04477611940298507, 'refrigerator_rec_0.50': 0.0, 'showercurtrain_rec_0.50': 0.0, 'toilet_rec_0.50': 0.0, 'sink_rec_0.50': 0.0, 'batht ub_rec_0.50': 0.0, 'garbagebin_rec_0.50': 0.1811320754716981, 'mAR_0.50': 0.0998950286339104}

    2.Evaluation results for the model trained by myself:(12 epoches) 2.1 sunrgbd


    Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.


    Use load_from_local loader Use load_from_local loader [ ] 0/5050, elapsed: [>>>>>>>>>>>>>>>] 5050/5050, 0.3 task/s, elapsed: 16300s, ETA: 0s +-------------+---------+---------+---------+---------+ | classes | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 | +-------------+---------+---------+---------+---------+ | bed | 0.5560 | 0.9903 | 0.4873 | 0.8738 | | table | 0.3110 | 0.9817 | 0.2184 | 0.7785 | | sofa | 0.4583 | 0.9841 | 0.4016 | 0.8740 | | chair | 0.5615 | 0.9633 | 0.4967 | 0.8643 | | toilet | 0.6838 | 0.9931 | 0.6078 | 0.8966 | | desk | 0.1938 | 0.9644 | 0.0907 | 0.6791 | | dresser | 0.2366 | 0.9541 | 0.1876 | 0.7752 | | night_stand | 0.4379 | 0.9765 | 0.3945 | 0.8824 | | bookshelf | 0.2321 | 0.9184 | 0.0987 | 0.5426 | | bathtub | 0.3912 | 0.9796 | 0.3296 | 0.8367 | +-------------+---------+---------+---------+---------+ | Overall | 0.4062 | 0.9705 | 0.3313 | 0.8003 | +-------------+---------+---------+---------+---------+ {'bed_AP_0.25': 0.5559849143028259, 'table_AP_0.25': 0.3109968602657318, 'sofa_AP_0.25': 0.4582793712615967, 'chair_AP_0.25': 0.5614634156227112, 'toilet_AP_0.25': 0.6837515830993652, 'desk_AP_0.25': 0.1938285529613495, 'dresser_AP_0.25': 0.23655451834201813, 'night_stand_AP_0.25': 0.43787485361099243, 'bookshelf_AP_0.25': 0.2321251481771469, 'bathtub_AP_0.25': 0.3912363648414612, 'mAP_0.25': 0.4062095582485199, 'bed_rec_0.25': 0.9902912621359223, 'table_rec_0.25': 0.981686541737649, 'sofa_rec_0.25': 0.9840510366826156, 'chair_rec_0.25': 0.963258785942492, 'toilet_rec_0.25': 0.993103448275862, 'desk_rec_0.25': 0.9643995749202976, 'dresser_rec_0.25': 0.9541284403669725, 'night_stand_rec_0.25': 0.9764705882352941, 'bookshelf_rec_0.25': 0.9184397163120568, 'bathtub_rec_0.25': 0.9795918367346939, 'mAR_0.25': 0.9705421231343856, 'bed_AP_0.50': 0.4872896671295166, 'table_AP_0.50': 0.21839171648025513, 'sofa_AP_0.50': 0.40156134963035583, 'chair_AP_0.50': 0.4966593384742737, 'toilet_AP_0.50': 0.607752799987793, 'desk_AP_0.50': 0.09067006409168243, 'dresser_AP_0.50': 0.18762624263763428, 'night_stand_AP_0.50': 0.39452967047691345, 'bookshelf_AP_0.50': 0.09874459356069565, 'bathtub_AP_0.50': 0.32958272099494934, 'mAP_0.50': 0.33128082752227783, 'bed_rec_0.50': 0.8737864077669902, 'table_rec_0.50': 0.778534923339012, 'sofa_rec_0.50': 0.8740031897926634, 'chair_rec_0.50': 0.8643170926517572, 'toilet_rec_0.50': 0.896551724137931, 'desk_rec_0.50': 0.6790648246546227, 'dresser_rec_0.50': 0.7752293577981652, 'night_stand_rec_0.50': 0.8823529411764706, 'bookshelf_rec_0.50': 0.5425531914893617, 'bathtub_rec_0.50': 0.8367346938775511, 'mAR_0.50': 0.8003128346684527}

    2.2 scannet


    Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tun$ the variable for optimal performance in your application as needed.


    Use load_from_local loader Use load_from_local loader [ ] 0/312, elapsed: 0[>>>>>>> ] 116/312, 0.2 task/s, elapsed[ ] 117/312, 0.2 t$ sk/s, elapsed: 547s,[ ] 118/312, 0.2 task/s, elapsed: 547s, ETA: 89[>>>>>>>>>>>>> ] 240/312, [> ] 241/312, 0.2 task/s, elapsed: 1262$ [> ] 242/312, 0.2 task/s, elapsed: 1262s[> ] 243/312, 0.2 task/s, elap[>>>>>>>>>>>>>>>>>>] 312/312, 0.2 task/s, elapsed: 1531s, ETA: 0s +----------------+---------+---------+---------+---------+ | classes | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 | +----------------+---------+---------+---------+---------+ | cabinet | 0.0089 | 0.2500 | 0.0071 | 0.2419 | | bed | 0.0022 | 0.0494 | 0.0005 | 0.0123 | | chair | 0.0195 | 0.2661 | 0.0131 | 0.2383 | | sofa | 0.0009 | 0.0825 | 0.0000 | 0.0309 | | table | 0.0030 | 0.1400 | 0.0021 | 0.1257 | | door | 0.0072 | 0.2698 | 0.0066 | 0.2548 | | window | 0.0030 | 0.1844 | 0.0020 | 0.1525 | | bookshelf | 0.0041 | 0.1429 | 0.0031 | 0.1429 | | picture | 0.0049 | 0.2523 | 0.0045 | 0.2342 | | counter | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | desk | 0.0041 | 0.0709 | 0.0041 | 0.0551 | | curtain | 0.0001 | 0.0597 | 0.0001 | 0.0597 | | refrigerator | 0.0001 | 0.0877 | 0.0001 | 0.0877 | | showercurtrain | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | toilet | 0.0005 | 0.0345 | 0.0001 | 0.0345 | | sink | 0.0000 | 0.0408 | 0.0000 | 0.0408 | | bathtub | 0.0000 | 0.0000 | 0.0000 | 0.0000 | | garbagebin | 0.0076 | 0.2038 | 0.0063 | 0.1887 | +----------------+---------+---------+---------+---------+ | Overall | 0.0037 | 0.1186 | 0.0028 | 0.1056 | +----------------+---------+---------+---------+---------+ {'cabinet_AP_0.25': 0.0088879419490695, 'bed_AP_0.25': 0.002196365036070347, 'chair_AP_0.25': 0.019513951614499092, 'sofa_AP_0.25': 0.00092$ 0919025614858, 'table_AP_0.25': 0.0029890856239944696, 'door_AP_0.25': 0.007219596300274134, 'window_AP_0.25': 0.002968191634863615, 'books$ elf_AP_0.25': 0.0041231452487409115, 'picture_AP_0.25': 0.004887890536338091, 'counter_AP_0.25': 0.0, 'desk_AP_0.25': 0.004088526125997305, 'curtain_AP_0.25': 0.0001449216069886461, 'refrigerator_AP_0.25': 0.00010905037925112993, 'showercurtrain_AP_0.25': 0.0, 'toilet_AP_0.25': $ .0005089639453217387, 'sink_AP_0.25': 3.358132016728632e-05, 'bathtub_AP_0.25': 0.0, 'garbagebin_AP_0.25': 0.007584888022392988, 'mAP_0.25'$ 0.003676677355542779, 'cabinet_rec_0.25': 0.25, 'bed_rec_0.25': 0.04938271604938271, 'chair_rec_0.25': 0.26608187134502925, 'sofa_rec_0.25$ : 0.08247422680412371, 'table_rec_0.25': 0.14, 'door_rec_0.25': 0.2698072805139186, 'window_rec_0.25': 0.18439716312056736, 'bookshelf_rec_0 .25': 0.14285714285714285, 'picture_rec_0.25': 0.25225225225225223, 'counter_rec_0.25': 0.0, 'desk_rec_0.25': 0.07086614173228346, 'curtain_ rec_0.25': 0.05970149253731343, 'refrigerator_rec_0.25': 0.08771929824561403, 'showercurtrain_rec_0.25': 0.0, 'toilet_rec_0.25': 0.034482758 620689655, 'sink_rec_0.25': 0.04081632653061224, 'bathtub_rec_0.25': 0.0, 'garbagebin_rec_0.25': 0.2037735849056604, 'mAR_0.25': 0.118589569 75081056, 'cabinet_AP_0.50': 0.007079910486936569, 'bed_AP_0.50': 0.0005367686389945447, 'chair_AP_0.50': 0.013134335167706013, 'sofa_AP_0.5 0': 4.525698022916913e-05, 'table_AP_0.50': 0.0021134275011718273, 'door_AP_0.50': 0.00658177025616169, 'window_AP_0.50': 0.0019997931085526 943, 'bookshelf_AP_0.50': 0.0031221157405525446, 'picture_AP_0.50': 0.004526467993855476, 'counter_AP_0.50': 0.0, 'desk_AP_0.50': 0.00407800 916582346, 'curtain_AP_0.50': 0.0001449216069886461, 'refrigerator_AP_0.50': 0.0001018800976453349, 'showercurtrain_AP_0.50': 0.0, 'toilet_A P_0.50': 5.409148434409872e-05, 'sink_AP_0.50': 3.358132016728632e-05, 'bathtub_AP_0.50': 0.0, 'garbagebin_AP_0.50': 0.006303954869508743, ' mAP_0.50': 0.0027697933837771416, 'cabinet_rec_0.50': 0.24193548387096775, 'bed_rec_0.50': 0.012345679012345678, 'chair_rec_0.50': 0.2383040 9356725146, 'sofa_rec_0.50': 0.030927835051546393, 'table_rec_0.50': 0.12571428571428572, 'door_rec_0.50': 0.25481798715203424, 'window_rec_ 0.50': 0.1524822695035461, 'bookshelf_rec_0.50': 0.14285714285714285, 'picture_rec_0.50': 0.23423423423423423, 'counter_rec_0.50': 0.0, 'des k_rec_0.50': 0.05511811023622047, 'curtain_rec_0.50': 0.05970149253731343, 'refrigerator_rec_0.50': 0.08771929824561403, 'showercurtrain_rec

    opened by zschanghai 4
  • Training on KITTI

    Training on KITTI

    @filaPro hi thanks for opensourcing code base , does this architecture been trained on KITTI , ARGOVerse, Nuscense dataset? if not what changes have to be made for the training on those dataset Thanks in advance

    opened by abhigoku10 4
  • resume-from

    resume-from

    --resume-from option in train.py works only once due to the bug regarding epoch update in mmcv-full=1.3.8. The bug is solved in 1.3.9. so I suggest to update requirement in mminstal.txt accordingly.

    opened by rgrbic 0
  • run pcd_demo.py

    run pcd_demo.py

    I want to use the trained model to test point cloud,but I meet following question: Traceback (most recent call last): File "/media/ketizu/086C03DE086C03DE/project1/fcaf3d-master/demo/pcd_demo.py", line 102, in main() File "/media/ketizu/086C03DE086C03DE/project1/fcaf3d-master/demo/pcd_demo.py", line 90, in main show_result_meshlab( File "/media/ketizu/086C03DE086C03DE/project1/fcaf3d-master/mmdet3d/apis/inference.py", line 481, in show_result_meshlab file_name = show_det_result_meshlab(data, result, out_dir, score_thr, File "/media/ketizu/086C03DE086C03DE/project1/fcaf3d-master/mmdet3d/apis/inference.py", line 324, in show_det_result_meshlab show_result( TypeError: show_result() missing 2 required positional arguments: 'out_dir' and 'filename'

    Process finished with exit code 1

    opened by PengboLi1998 2
Owner
SamsungLabs
SAMSUNG
SamsungLabs
Unofficial JAX implementations of Deep Learning models

JAX Models Table of Contents About The Project Getting Started Prerequisites Installation Usage Contributing License Contact About The Project The JAX

107 Jan 05, 2023
Near-Optimal Sparse Allreduce for Distributed Deep Learning (published in PPoPP'22)

Near-Optimal Sparse Allreduce for Distributed Deep Learning (published in PPoPP'22) Ok-Topk is a scheme for distributed training with sparse gradients

Shigang Li 9 Oct 29, 2022
Implementation of Nalbach et al. 2017 paper.

Deep Shading Convolutional Neural Networks for Screen-Space Shading Our project is based on Nalbach et al. 2017 paper. In this project, a set of buffe

Marcel Santana 17 Sep 08, 2022
TensorFlow-LiveLessons - "Deep Learning with TensorFlow" LiveLessons

TensorFlow-LiveLessons Note that the second edition of this video series is now available here. The second edition contains all of the content from th

Deep Learning Study Group 830 Jan 03, 2023
U^2-Net - Portrait matting This repository explores possibilities of using the original u^2-net model for portrait matting.

U^2-Net - Portrait matting This repository explores possibilities of using the original u^2-net model for portrait matting.

Dennis Bappert 104 Nov 25, 2022
Implementation and replication of ProGen, Language Modeling for Protein Generation, in Jax

ProGen - (wip) Implementation and replication of ProGen, Language Modeling for Protein Generation, in Pytorch and Jax (the weights will be made easily

Phil Wang 71 Dec 01, 2022
Exploit Camera Raw Data for Video Super-Resolution via Hidden Markov Model Inference

RawVSR This repo contains the official codes for our paper: Exploit Camera Raw Data for Video Super-Resolution via Hidden Markov Model Inference Xiaoh

Xiaohong Liu 23 Oct 08, 2022
Text-Based Ideal Points

Text-Based Ideal Points Source code for the paper: Text-Based Ideal Points by Keyon Vafa, Suresh Naidu, and David Blei (ACL 2020). Update (June 29, 20

Keyon Vafa 37 Oct 09, 2022
PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 2021

Neural Scene Flow Fields PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 20

Zhengqi Li 585 Jan 04, 2023
Gin provides a lightweight configuration framework for Python

Gin Config Authors: Dan Holtmann-Rice, Sergio Guadarrama, Nathan Silberman Contributors: Oscar Ramirez, Marek Fiser Gin provides a lightweight configu

Google 1.7k Jan 03, 2023
social humanoid robots with GPGPU and IoT

Social humanoid robots with GPGPU and IoT Social humanoid robots with GPGPU and IoT Paper Authors Mohsen Jafarzadeh, Stephen Brooks, Shimeng Yu, Balak

0 Jan 07, 2022
[ICML 2021] Towards Understanding and Mitigating Social Biases in Language Models

Towards Understanding and Mitigating Social Biases in Language Models This repo contains code and data for evaluating and mitigating bias from generat

Paul Liang 42 Jan 03, 2023
Using contrastive learning and OpenAI's CLIP to find good embeddings for images with lossy transformations

The official code for the paper "Inverse Problems Leveraging Pre-trained Contrastive Representations" (to appear in NeurIPS 2021).

Sriram Ravula 26 Dec 10, 2022
Incomplete easy-to-use math solver and PDF generator.

Math Expert Let me do your work Preview preview.mp4 Introduction Math Expert is our (@salastro, @younis-tarek, @marawn-mogeb) math high school graduat

SalahDin Ahmed 22 Jul 11, 2022
R-package accompanying the paper "Dynamic Factor Model for Functional Time Series: Identification, Estimation, and Prediction"

dffm The goal of dffm is to provide functionality to apply the methods developed in the paper “Dynamic Factor Model for Functional Time Series: Identi

Sven Otto 3 Dec 09, 2022
Model serving at scale

Run inference at scale Cortex is an open source platform for large-scale machine learning inference workloads. Workloads Realtime APIs - respond to pr

Cortex Labs 7.9k Jan 06, 2023
Target Propagation via Regularized Inversion

Target Propagation via Regularized Inversion The present code implements an ideal formulation of target propagation using regularized inverses compute

Vincent Roulet 0 Dec 02, 2021
Local Attention - Flax module for Jax

Local Attention - Flax Autoregressive Local Attention - Flax module for Jax Install $ pip install local-attention-flax Usage from jax import random fr

Phil Wang 16 Jun 16, 2022
BanditPAM: Almost Linear-Time k-Medoids Clustering

BanditPAM: Almost Linear-Time k-Medoids Clustering This repo contains a high-performance implementation of BanditPAM from BanditPAM: Almost Linear-Tim

254 Dec 12, 2022
(ICCV 2021) PyTorch implementation of Paper "Progressive Correspondence Pruning by Consensus Learning"

CLNet (ICCV 2021) PyTorch implementation of Paper "Progressive Correspondence Pruning by Consensus Learning" [project page] [paper] Citing CLNet If yo

Chen Zhao 22 Aug 26, 2022