ut-amrl / coda-devkit

Official Software Development Kit for UT Campus Object Dataset (CODa)
17 stars 1 forks source link

Convert CODa to KITTI format #20

Closed abhi1kumar closed 5 months ago

abhi1kumar commented 5 months ago

Hi authors, Thank you for releasing a wonderful dataset. I am trying to retrain KITTI 3D detectors on the CODa dataset, and therefore, wanted to convert CODa train/val images to the KITTI format.

It would be great if you could provide KITTI converter scripts in this repo.

artzha commented 5 months ago

Hi @abhi1kumar! Thank you for your interest in using our dataset.

We provide the CODa to KITTI data convert script in our sister repository coda-models. Here is a link to the script for converting CODa to the KITTI format: https://github.com/ut-amrl/coda-models/blob/master/tools/create_data.py

You will find additional information on running this script in the "Getting Started" section of the README.md in coda-models. We recommend using the docker container provided in the coda-models repository for running the create dataset scripts.

abhi1kumar commented 5 months ago

Thank you @artzha for your quick reply.

We provide the CODa to KITTI data convert script in our sister repository coda-models. Here is a link to the script for converting CODa to the KITTI format.

This is awesome. Thank you for letting us know.

You will find additional information on running this script in the "Getting Started" section of the README.md in coda-models. We recommend using the docker container provided in the coda-models repository for running the create dataset scripts.

I did the following:

coda-models
├── data
│   └── coda_original_format
│       ├── 2d_rect
│       ├── 3d_bbox
│       ├── 3d_comp
|       ├── 3d_raw                # softlink to 3d_comp
|       ├── 3d_semantic
│       ├── calibrations
│       ├── metadata
│       ├── poses
|       └── timestamps
├── pcdet
├── tools

However, the following error shows up when I run python tools/create_data.py coda command:

Start converting ...
  0%|                                                                     | 0/19511 [00:00<?, ?it/s]
multiprocessing.pool.RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/home/abhinav/anaconda3/envs/coda11_3/lib/python3.8/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/home/abhinav/project/coda-models/tools/data_converter/coda_converter.py", line 358, in convert_one
    self.save_label(traj, cam_id, frame_idx, file_idx)
  File "/home/abhinav/project/coda-models/tools/data_converter/coda_converter.py", line 482, in save_label
    twod_anno_dict = np.loadtxt(twod_anno_path, dtype=int).reshape(-1, 6)
  File "/home/abhinav/anaconda3/envs/coda11_3/lib/python3.8/site-packages/numpy/lib/npyio.py", line 1356, in loadtxt
    arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
  File "/home/abhinav/anaconda3/envs/coda11_3/lib/python3.8/site-packages/numpy/lib/npyio.py", line 975, in _read
    fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
  File "/home/abhinav/anaconda3/envs/coda11_3/lib/python3.8/site-packages/numpy/lib/_datasource.py", line 193, in open
    return ds.open(path, mode, encoding=encoding, newline=newline)
  File "/home/abhinav/anaconda3/envs/coda11_3/lib/python3.8/site-packages/numpy/lib/_datasource.py", line 533, in open
    raise FileNotFoundError(f"{path} not found.")
FileNotFoundError: ./data/coda_original_format/2d_bbox/cam0/0/2d_bbox_cam0_0_451.txt not found.

The converter.py file looks for the 2D annotations file inside the 2d_bbox folder:

        twod_anno_file  = self.set_filename_by_prefix("2d_bbox", "cam0", traj, frame_idx)
        twod_anno_path = join(self.load_dir, "2d_bbox", "cam0", traj, twod_anno_file)

        twod_anno_dict = np.loadtxt(twod_anno_path, dtype=int).reshape(-1, 6)

Did I miss downloading the 2d_bbox folder inside the coda_original_format folder for the converter? In case your answer is yes, would you mind telling how I should download this folder.

PS: I am unsure I should keep this issue here or in the coda-models repo. In case, you want me to open the issue in coda-models, I will happy to do the same.

artzha commented 5 months ago

It would appear that I missed adding this preprocessing step to the README.md . This is the function that we used to generate the 2d_bboxes from the 3d_bbox annotations. You may be able to call this function directly before processing if you load the 3D bbox annotation in the expected format.

I have already preprocessed these files. If you could raise an issue in the coda-models repository, I can provide a link to download the preprocessed 2d_bbox files there. Thanks!

abhi1kumar commented 5 months ago

Thank you @artzha for your reply.

If you could raise an issue in the coda-models repository, I can provide a link to download the preprocessed 2d_bbox files there.

I appreciate you sharing this 2d_bbox folder via a link for me to download. I have now opened this issue in coda-models repository. So, I am closing this issue here.