前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >95 FPS!超快速3D目标检测网络开源了!SFA3D:基于LiDAR的实时、准确的3D目标检测模型

95 FPS!超快速3D目标检测网络开源了!SFA3D:基于LiDAR的实时、准确的3D目标检测模型

作者头像
Amusi
发布2020-11-19 16:00:21
2.7K0
发布2020-11-19 16:00:21
举报
文章被收录于专栏:CVerCVer

前言

Amusi 发现了一个超快速3D目标检测网络!SFA3D:基于LiDAR的实时、准确的3D目标检测模型,在GTX 1080 Ti上速度高达95 FPS!代码现已开源!

主要特性:

1. 快速训练和推理;

2. Anchor-free的方法;

3. 无NMS;

4. 支持分布式数据并行训练 演示Demo详见视频

项目链接:https://github.com/maudzung/SFA3D

点击下面该视频,皆可查看演示Demo

Super Fast and Accurate 3D Object Detection based on 3D LiDAR Point Clouds


Features

  • Super fast and accurate 3D object detection based on LiDAR
  • Fast training, fast inference
  • An Anchor-free approach
  • No Non-Max-Suppression
  • Support distributed data parallel training
  • Release pre-trained models

The technical details are described here

Update 2020.09.06: Add ROS source code. The great work has been done by @AhmedARadwan. The implementation is here

Demonstration (on a single GTX 1080Ti)

2. Getting Started

2.1. Requirement

The instructions for setting up a virtual environment is here.

代码语言:javascript
复制
git clone https://github.com/maudzung/SFA3D.git SFA3D
cd SFA3D/
pip install .

2.2. Data Preparation

Download the 3D KITTI detection dataset from here.

The downloaded data includes:

  • Velodyne point clouds (29 GB)
  • Training labels of object data set (5 MB)
  • Camera calibration matrices of object data set (16 MB)
  • Left color images of object data set (12 GB) (For visualization purpose only)

Please make sure that you construct the source code & dataset directories structure as below.

2.3. How to run

2.3.1. Visualize the dataset

To visualize 3D point clouds with 3D boxes, let's execute:

代码语言:javascript
复制
cd sfa/data_process/
python kitti_dataset.py
2.3.2. Inference

The pre-trained model was pushed to this repo.

代码语言:javascript
复制
python test.py --gpu_idx 0 --peak_thresh 0.2
2.3.3. Making demonstration
代码语言:javascript
复制
python demo_2_sides.py --gpu_idx 0 --peak_thresh 0.2

The data for the demonstration will be automatically downloaded by executing the above command.

2.3.4. Training
2.3.4.1. Single machine, single gpu
代码语言:javascript
复制
python train.py --gpu_idx 0
2.3.4.2. Distributed Data Parallel Training
  • Single machine (node), multiple GPUs
代码语言:javascript
复制
python train.py --multiprocessing-distributed --world-size 1 --rank 0 --batch_size 64 --num_workers 8

Two machines (two nodes), multiple GPUs

代码语言:javascript
复制
python train.py --dist-url 'tcp://IP_OF_NODE1:FREEPORT' --multiprocessing-distributed --world-size 2 --rank 0 --batch_size 64 --num_workers 8
代码语言:javascript
复制
python train.py --dist-url 'tcp://IP_OF_NODE2:FREEPORT' --multiprocessing-distributed --world-size 2 --rank 1 --batch_size 64 --num_workers 8
  • Second machine
Tensorboard
  • To track the training progress, go to the logs/ folder and
代码语言:javascript
复制
cd logs/<saved_fn>/tensorboard/
tensorboard --logdir=./

  • Then go to http://localhost:6006/

Contact

If you think this work is useful, please give me a star! If you find any errors or have any suggestions, please contact me (Email: nguyenmaudung93.kstn@gmail.com). Thank you!

Citation

代码语言:javascript
复制
@misc{Super-Fast-Accurate-3D-Object-Detection-PyTorch,
  author =       {Nguyen Mau Dung},
  title =        {{Super-Fast-Accurate-3D-Object-Detection-PyTorch}},
  howpublished = {\url{https://github.com/maudzung/Super-Fast-Accurate-3D-Object-Detection}},
  year =         {2020}
}

References

[1] CenterNet: Objects as Points paper, PyTorch Implementation [2] RTM3D: PyTorch Implementation [3] Libra_R-CNN: PyTorch Implementation

The YOLO-based models with the same BEV maps input: [4] Complex-YOLO: v4, v3, v2

3D LiDAR Point pre-processing: [5] VoxelNet: PyTorch Implementation

Folder structure

代码语言:javascript
复制
${ROOT}
└── checkpoints/
    ├── fpn_resnet_18/    
        ├── fpn_resnet_18_epoch_300.pth
└── dataset/    
    └── kitti/
        ├──ImageSets/
        │   ├── test.txt
        │   ├── train.txt
        │   └── val.txt
        ├── training/
        │   ├── image_2/ (left color camera)
        │   ├── calib/
        │   ├── label_2/
        │   └── velodyne/
        └── testing/  
        │   ├── image_2/ (left color camera)
        │   ├── calib/
        │   └── velodyne/
        └── classes_names.txt
└── sfa/
    ├── config/
    │   ├── train_config.py
    │   └── kitti_config.py
    ├── data_process/
    │   ├── kitti_dataloader.py
    │   ├── kitti_dataset.py
    │   └── kitti_data_utils.py
    ├── models/
    │   ├── fpn_resnet.py
    │   ├── resnet.py
    │   └── model_utils.py
    └── utils/
    │   ├── demo_utils.py
    │   ├── evaluation_utils.py
    │   ├── logger.py
    │   ├── misc.py
    │   ├── torch_utils.py
    │   ├── train_utils.py
    │   └── visualization_utils.py
    ├── demo_2_sides.py
    ├── demo_front.py
    ├── test.py
    └── train.py
├── README.md 
└── requirements.txt
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CVer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Super Fast and Accurate 3D Object Detection based on 3D LiDAR Point Clouds
    • Features
      • Demonstration (on a single GTX 1080Ti)
        • 2. Getting Started
          • 2.1. Requirement
          • 2.2. Data Preparation
          • 2.3. How to run
        • Contact
          • Citation
            • References
              • Folder structure
              相关产品与服务
              图像处理
              图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档