Giter VIP home page Giter VIP logo

vma's Introduction

VMA: Divide-and-Conquer Vectorized Map Annotation System for Large-Scale Driving Scene

ArXiv Preprint (arXiv 2304.09807)

News

  • Aug. 30th, 2023: We release an initial version of VMA.
  • Aug. 9th, 2023: Code will be released in around 3 weeks.

framework

demo.mp4

TL;DR VMA is a general map auto annotation framework based on MapTR, with high flexibility in terms of spatial scale and element type.

Getting Started

Auto Annotation Results

Remote sensing: vis_aerial Urban scene: vis_urban Highway scene: vis_highway

Citation

If you find VMA is useful in your research or applications, please consider giving us a star ๐ŸŒŸ and citing it by the following BibTeX entry.

@inproceedings{VMA,
  title={VMA: Divide-and-Conquer Vectorized Map Annotation System for Large-Scale Driving Scene},
  author={Chen, Shaoyu and Zhang, Yunchi and Liao, Bencheng, Xie, Jiafeng and Cheng, Tianheng and Sui, Wei and Zhang, Qian and Liu, Wenyu and Huang, Chang and Wang, Xinggang},
  booktitle={arXiv preprint arXiv:2304.09807},
  year={2023}
}

vma's People

Contributors

outsidercsy avatar zyc10ud 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  avatar  avatar  avatar

vma's Issues

Download NYC Dataset

้ข˜ไธปๆ‚จๅฅฝ ๅฏไปฅๆไพ›ไธ€ไธ‹google็ฝ‘็›˜็š„NYCๆ•ฐๆฎ้›†ๅ— ็™พๅบฆ็ฝ‘็›˜็š„ไธ‹่ฝฝ้€Ÿๅบฆๅฎžๅœจๆ˜ฏๅคชๆ…ขไบ†

About images generation

Thanks for your great work!
I want to apply VMA to my own data and want to know how the images of sd_data are generated? I can only produce single-channel intensity images.

NameError: name 'train_valid_6k_image_name' is not defined

Hello! Thanks for sharing the great work!
I use the python file : tools/custom/generate_line_final_from_origin.py like this:
python tools/custom/generate_line_final_from_origin.py ./data/sd_data/line/origin_data/line_data_6k.json ./data/sd_data/line/origin_data ./data/sd_data/line/cropped_data

it have some error:

process every 6k image to extract the 1k gt: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 5/5 [00:01<00:00, 4.90it/s] format dict: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 5/5 [00:00<00:00, 238312.73it/s] Traceback (most recent call last): File "tools/custom/generate_line_final_from_origin.py", line 401, in <module> generate_line_final_from_original(args.all_gt_6k_json_file_path, args.data_root, args.out_dir, args.visualize) File "tools/custom/generate_line_final_from_origin.py", line 39, in generate_line_final_from_original json.dump(train_valid_6k_image_name, f) NameError: name 'train_valid_6k_image_name' is not defined
The related code is as follows๏ผš

line38: with open(os.path.join(out_dir, 'train_valid_6k_image_name.json'), 'w') as f:
line39: json.dump(train_valid_6k_image_name, f)

the "train_valid_6k_image_name" is undefined

How can I modify the code here to solve this problem? Thank You!

How to create sd dataset?

Hello,
sd dataset are making according to lidar pointscould. How to make it (x y z intensity) to given format image(r g b)?
It seems like hsv image, one change is mapping from intensity, and another two channel is fixed๏ผŸ

A little mistake of arguments mismatch

Awesome work!
I found a mistake the arguments in line 401 of tools/custom/generate_line_final_from_origin.py can't match the arguments in tools/custom/generate.sh.
generate_line_final_from_original(args.all_gt_6k_json_file_path, args.data_root, args.out_dir, args.visualize)
python generate_line_final_from_origin.py data/sd_data/line/origin_data data/sd_data/line/origin_data/line_data_6k.json data/sd_data/line/cropped_data --visualize
It seems the arguments are in wrong order. It would return an error: IsADirectoryError: [Errno 21] Is a directory.

KeyError: Caught KeyError in DataLoader worker process 0.

Hello! I use the SD dataset to train the line model, I prepare the dataset preparation command is this:
./tools/dist_train.sh ./projects/configs/vma_res152_e80_line.py 1

the error log is this:
KeyError: Caught KeyError in DataLoader worker process 0

I tried to regenerate the SD line data set according to the method of docs/prepare_dataset.md, but the problem still occurred. How can I troubleshoot the cause of this problem? Thank you!

all error log is this:
2023-09-11 16:55:43,906 - mmdet - INFO - Saving checkpoint at 5 epochs
[ ] 0/7, elapsed: 0s, ETA:Traceback (most recent call last):
File "./tools/train.py", line 261, in
main()
File "./tools/train.py", line 250, in main
custom_train_model(
File "/home/pc01/code/VMA/projects/mmdet3d_plugin/bevformer/apis/train.py", line 27, in custom_train_model
custom_train_detector(
File "/home/pc01/code/VMA/projects/mmdet3d_plugin/bevformer/apis/mmdet_train.py", line 212, in custom_train_detector
runner.run(data_loaders, cfg.workflow)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run
epoch_runner(data_loaders[i], **kwargs)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 54, in train
self.call_hook('after_train_epoch')
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/mmcv/runner/base_runner.py", line 307, in call_hook
getattr(hook, fn_name)(self)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/mmcv/runner/hooks/evaluation.py", line 267, in after_train_epoch
self._do_evaluate(runner)
File "/home/pc01/code/VMA/projects/mmdet3d_plugin/core/evaluation/eval_hooks.py", line 78, in _do_evaluate
results = custom_multi_gpu_test(
File "/home/pc01/code/VMA/projects/mmdet3d_plugin/bevformer/apis/test.py", line 71, in custom_multi_gpu_test
for i, data in enumerate(data_loader):
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 521, in next
data = self._next_data()
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1203, in _next_data
return self._process_data(data)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1229, in _process_data
data.reraise()
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/_utils.py", line 425, in reraise
raise self.exc_type(msg)
KeyError: Caught KeyError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 287, in _worker_loop
data = fetcher.fetch(index)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
return self.collate_fn(data)
File "/home/pc01/code/VMA/projects/mmdet3d_plugin/datasets/builder.py", line 173, in iCurb_collate
data['seq'] = [x[0] for x in batch]
File "/home/pc01/code/VMA/projects/mmdet3d_plugin/datasets/builder.py", line 173, in
data['seq'] = [x[0] for x in batch]
KeyError: 0

ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 82570) of binary: /home/pc01/anaconda3/envs/vma/bin/python
Traceback (most recent call last):
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/distributed/launch.py", line 193, in
main()
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/distributed/launch.py", line 189, in main
launch(args)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/distributed/launch.py", line 174, in launch
run(args)
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/distributed/run.py", line 689, in run
elastic_launch(
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 116, in call
return launch_agent(self._config, self._entrypoint, list(args))
File "/home/pc01/anaconda3/envs/vma/lib/python3.8/site-packages/torch/distributed/launcher/api.py", line 244, in launch_agent
raise ChildFailedError(
torch.distributed.elastic.multiprocessing.errors.ChildFailedError:


    ./tools/train.py FAILED

=======================================
Root Cause:
[0]:
time: 2023-09-11_16:55:52
rank: 0 (local_rank: 0)
exitcode: 1 (pid: 82570)
error_file: <N/A>
msg: "Process failed with exitcode 1"

Other Failures:
<NO_OTHER_FAILURES>


about how to transform PCL to BEV 3-channel RGB Image

ๅคงๅ…„ๅผŸ๏ผŒไฝ ็Ÿฅ้“ๆ€ŽไนˆๆŠŠไธ€ไธชPCL่ฝฌๆขๆˆไธ‰้€š้“็š„RGBๅ›พๅƒไนˆ๏ผŒ่ฐข่ฐขๅคงๅ…„ๅผŸใ€‚

About attr_mlp GT

image
Hi, in sd_driviing_line_dataset.py, if instance_class == "lane", the category of curb is 6, but the curb is six-category branch, index=[0, 1, 2, 3, 4, 5], Wouldn't this index out of bounds?

What is the profile for inferring SD images

First of all, thank you for your work. You have briefly described the commands in the test phase. I have encountered a problem, I do not know which one you use for your configuration file, and I cannot reason.

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.