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
Implementation of Neural Style Transfer in Pytorch

PytorchNeuralStyleTransfer Code to run Neural Style Transfer from our paper Image Style Transfer Using Convolutional Neural Networks. Also includes co

Leon Gatys 396 Dec 01, 2022
PyTorch Implementation of ECCV 2020 Spotlight TuiGAN: Learning Versatile Image-to-Image Translation with Two Unpaired Images

TuiGAN-PyTorch Official PyTorch Implementation of "TuiGAN: Learning Versatile Image-to-Image Translation with Two Unpaired Images" (ECCV 2020 Spotligh

181 Dec 09, 2022
A few stylization coreML models that I've trained with CreateML

CoreML-StyleTransfer A few stylization coreML models that I've trained with CreateML You can open and use the .mlmodel files in the "models" folder in

Doron Adler 8 Aug 18, 2022
A unified framework to jointly model images, text, and human attention traces.

connect-caption-and-trace This repository contains the reference code for our paper Connecting What to Say With Where to Look by Modeling Human Attent

Meta Research 73 Oct 24, 2022
Multi Camera Calibration

Multi Camera Calibration 'modules/camera_calibration/app/camera_calibration.cpp' is for calculating extrinsic parameter of each individual cameras. 'm

7 Dec 01, 2022
Deploy a ML inference service on a budget in less than 10 lines of code.

BudgetML is perfect for practitioners who would like to quickly deploy their models to an endpoint, but not waste a lot of time, money, and effort trying to figure out how to do this end-to-end.

1.3k Dec 25, 2022
Python-kafka-reset-consumergroup-offset-example - Python Kafka reset consumergroup offset example

Python Kafka reset consumergroup offset example This is a simple example of how

Willi Carlsen 1 Feb 16, 2022
A Comprehensive Study on Learning-Based PE Malware Family Classification Methods

A Comprehensive Study on Learning-Based PE Malware Family Classification Methods Datasets Because of copyright issues, both the MalwareBazaar dataset

8 Oct 21, 2022
🏆 The 1st Place Submission to AICity Challenge 2021 Natural Language-Based Vehicle Retrieval Track (Alibaba-UTS submission)

AI City 2021: Connecting Language and Vision for Natural Language-Based Vehicle Retrieval 🏆 The 1st Place Submission to AICity Challenge 2021 Natural

82 Dec 29, 2022
P-Tuning v2: Prompt Tuning Can Be Comparable to Finetuning Universally Across Scales and Tasks

P-tuning v2 P-Tuning v2: Prompt Tuning Can Be Comparable to Finetuning Universally Across Scales and Tasks An optimized prompt tuning strategy for sma

THUDM 540 Dec 30, 2022
The final project for "Applying AI to Wearable Device Data" course from "AI for Healthcare" - Udacity.

Motion Compensated Pulse Rate Estimation Overview This project has 2 main parts. Develop a Pulse Rate Algorithm on the given training data. Then Test

Omar Laham 2 Oct 25, 2022
A python tutorial on bayesian modeling techniques (PyMC3)

Bayesian Modelling in Python Welcome to "Bayesian Modelling in Python" - a tutorial for those interested in learning how to apply bayesian modelling t

Mark Regan 2.4k Jan 06, 2023
Node Editor Plug for Blender

NodeEditor Blender的程序化建模插件 Show Current 基本框架:自定义的tree-node-socket、tree中的node与socket采用字典查询、基于socket入度的拓扑排序 数据传递和处理依靠Tree中的字典,socket传递字典key TODO 增加更多的节点

Cuimi 11 Dec 03, 2022
This is the PyTorch implementation of GANs N’ Roses: Stable, Controllable, Diverse Image to Image Translation

Official PyTorch repo for GAN's N' Roses. Diverse im2im and vid2vid selfie to anime translation.

1.1k Jan 01, 2023
[NIPS 2021] UOTA: Improving Self-supervised Learning with Automated Unsupervised Outlier Arbitration.

UOTA: Improving Self-supervised Learning with Automated Unsupervised Outlier Arbitration This repository is the official PyTorch implementation of UOT

6 Jun 29, 2022
A cross-lingual COVID-19 fake news dataset

CrossFake An English-Chinese COVID-19 fake&real news dataset from the ICDMW 2021 paper below: Cross-lingual COVID-19 Fake News Detection. Jiangshu Du,

Yingtong Dou 11 Dec 01, 2022
Retinal Vessel Segmentation with Pixel-wise Adaptive Filters (ISBI 2022)

Retinal Vessel Segmentation with Pixel-wise Adaptive Filters (ISBI 2022) Introdu

anonymous 14 Oct 27, 2022
Transformers based fully on MLPs

Awesome MLP-based Transformers papers An up-to-date list of Transformers based fully on MLPs without attention! Why this repo? After transformers and

Fawaz Sammani 35 Dec 30, 2022
Bringing Characters to Life with Computer Brains in Unity

AI4Animation: Deep Learning for Character Control This project explores the opportunities of deep learning for character animation and control as part

Sebastian Starke 5.5k Jan 04, 2023
AsymmetricGAN - Dual Generator Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

AsymmetricGAN for Image-to-Image Translation AsymmetricGAN Framework for Multi-Domain Image-to-Image Translation AsymmetricGAN Framework for Hand Gest

Hao Tang 42 Jan 15, 2022