Skip to content

yizhou-wang/cruw-devkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRUW devkit

Package cruw-devkit is a useful toolkit for the CRUW dataset including sensor configurations, sensor calibration parameters, the mapping functions, metadata, visualization tools, etc. More components are still in the developing phase.

Please refer to our dataset website for more information about the CRUW Dataset.

This repository is maintained by Yizhou Wang. Free to raise issues and help improve this repository.

Acknowledgment for CRUW dataset

ACADEMIC OR NON-PROFIT ORGANIZATION NONCOMMERCIAL RESEARCH USE ONLY

This research is mainly conducted by the Information Processing Lab (IPL) at the University of Washington. It was partially supported by CMMB Vision – UWECE Center on Satellite Multimedia and Connected Vehicles. We would also like to thank the colleagues and students in IPL for their help and assistance on the dataset collection, processing, and annotation works.

News

Changelog

  • [2022/02/02] add dataset script and fix installation bugs
  • [2022/01/28] v1.1: add coordinate transform and other utils.
  • [2022/01/27] handle camera images unavailable issue for ROD2021 testing set.
  • [2022/01/25] add functions to transfer RF images/labels from polar to Cartesian coordinates.
  • [2021/12/03] add evaluation for RODNet format results.
  • [2021/11/09] add sensor config files.
  • [2021/11/01] add some utils functions for evaluation.
  • [2021/01/18] v1.0: stable version for ROD2021 Challenge.

Installation

Create a new conda environment. Tested under Python 3.6, 3.7, 3.8.

conda create -n cruw-devkit python=3.*

Run setup tool for this devkit.

conda activate cruw-devkit
pip install .
pip install -e .  # development mode

Tutorials

The tutorials for the usages of cruw-devkit package are listed in the tutorial folder.

  • For ROD2021 Challenge: Open In Colab

Annotation Format

ROD2021 Dataset

Each training sequence (40 training sequences in total) has an txt object annotation file. The annotation format for the training set (each line in the txt files):

  frame_id range(m) azimuth(rad) class_name
  ...

General CRUW Dataset

For each sequence, a json file is provided as annotations:

{
  "dataset": "CRUW",
  "date_collect": "2019_09_29",
  "seq_name": "2019_09_29_onrd000",
  "n_frames": 1694,
  "fps": 30,
  "sensors": "C2R2",                  // <str>: "C1R1", "C2R1", "C2R2"
  "view": "front",                    // <str>: "front", "right-side"
  "setup": "vehicle",                 // <str>: "cart", "vehicle"
  "metadata": [
    {  // metadata for each frame
      "frame_id": 0,
      "cam_0": {
        "folder_name": "images_0",
        "frame_name": "0000000000.jpg",
        "width": 1440,
        "height": 864,
        "n_objects": 5,
        "obj_info": {
          "anno_source": "human",     // <str>: "human", "mrcnn", etc.
          "categories": [],           // <str> [n_objects]: category names
          "bboxes": [],               // <int> [n_objects, 4]: xywh
          "scores": [],               // <float> [n_objects]: confidence scores [0, 1]
          "masks": [],                // <rle_code> [n_objects]: instance masks
          "visibilities": [],         // <float> [n_objects]: [0, 1]
          "truncations": [],          // <float> [n_objects]: [0, 1]
          "translations": []          // <float> [n_objects, 3]: xyz(m)
        }
      },
      "cam_1": {
        "folder_name": "images_1",
        "frame_name": "0000000000.jpg",
        "width": 1440,
        "height": 864,
        "n_objects": 5,
        "obj_info": {
          "anno_source": "human",     // <str>: "human", "mrcnn", etc.
          "categories": [],           // <str> [n_objects]: category names
          "bboxes": [],               // <int> [n_objects, 4]: xywh
          "scores": [],               // <float> [n_objects]: confidence scores [0, 1]
          "masks": [],                // <rle_code> [n_objects]: instance masks
          "visibilities": [],         // <float> [n_objects]: [0, 1]
          "truncations": [],          // <float> [n_objects]: [0, 1]
          "translations": []          // <float> [n_objects, 3]: xyz(m)
        }
      },
      "radar_h": {
        "folder_name": "radar_chirps_win_RISEP_h",
        "frame_name": "000000.npy",
        "range": 128,
        "azimuth": 128,
        "n_chirps": 255,
        "n_objects": 3,
        "obj_info": {
          "anno_source": "human",     // <str>: "human", "co", "crf", etc.
          "categories": [],           // <str> [n_objects]: category names
          "centers": [],              // <float> [n_objects, 2]: range(m), azimuth(rad)
          "center_ids": [],           // <int> [n_objects, 2]: range indices, azimuth indices
          "scores": []                // <float> [n_objects]: confidence scores [0, 1]
        }
      },
      "radar_v": {
        "folder_name": "radar_chirps_win_RISEP_v",
        "frame_name": "000000.npy",
        "range": 128,
        "azimuth": 128,
        "n_chirps": 255,
        "n_objects": 3,
        "obj_info": {
          "anno_source": "human",     // <str>: "human", "co", "crf", etc.
          "categories": [],           // <str> [n_objects]: category names
          "centers": [],              // <float> [n_objects, 2]: range(m), azimuth(rad)
          "center_ids": [],           // <int> [n_objects, 2]: range indices, azimuth indices
          "scores": []                // <float> [n_objects]: confidence scores [0, 1]
        }
      }
    },
    {...}
  ]
}