Home

Awesome

Part-Aware Data Augmentation for 3D Object Detection in Point Cloud

This repository contains a reference implementation of our Part-Aware Data Augmentation for 3D Object Detection in Point Cloud (IROS 2021).

<p align="center"> <img src="docs/methods.jpg" width="100%" height="400"> </p>

If you find this code useful in your research, please consider citing our work:

@inproceedings{choi2021part,
  title={Part-aware data augmentation for 3d object detection in point cloud},
  author={Choi, Jaeseok and Song, Yeji and Kwak, Nojun},
  booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={3391--3397},
  year={2021},
  organization={IEEE}
}

Prerequisites

Our code was tested on second.pytorch and OpenPCDet.
This repository contains only part-aware data augmentation code.
Refer to the link above for code such as data loader or detector.

Usage

Args:
    ** only supports KITTI format **
    points: lidar points (N, 4), 
    gt_boxes: ground truth boxes (B, 7),
    gt_names: ground truth classes (B, 1), 
    class_names: list of classes to augment (3),
    pa_aug_param: parameters for PA_AUG (string).

Returns:
    points: augmented lidar points (N', 4),
    gt_boxes_mask: mask for gt_boxes (B)


class_names = ['Car', 'Pedestrian', 'Cyclist']
pa_aug_param = "dropout_p02_swap_p02_mix_p02_sparse40_p01_noise10_p01"

pa_aug = PartAwareAugmentation(points, gt_boxes, gt_names, class_names=class_names)
points, gt_boxes_mask = pa_aug.augment(pa_aug_param=pa_aug_param)
gt_boxes = gt_boxes[gt_boxes_mask]

Example

Follow this repo if you want to check the implementation on OpenPCDet.