All Projects → Thinklab-SJTU → R3det_tensorflow

Thinklab-SJTU / R3det_tensorflow

Licence: apache-2.0
Code for AAAI 2021 paper: R3Det: Refined Single-Stage Detector with Feature Refinement for Rotating Object

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to R3det tensorflow

Dota Doai
This repo is the codebase for our team to participate in DOTA related competitions, including rotation and horizontal detection.
Stars: ✭ 326 (-24.88%)
Mutual labels:  object-detection, dota, rotation
yolov5 obb
yolov5 + csl_label.(Oriented Object Detection)(Rotation Detection)(Rotated BBox)基于yolov5的旋转目标检测
Stars: ✭ 1,105 (+154.61%)
Mutual labels:  dota, rotation
Tf Faster Rcnn
Tensorflow Faster RCNN for Object Detection
Stars: ✭ 3,604 (+730.41%)
Mutual labels:  object-detection
Autonomousvehiclepaper
无人驾驶相关论文速递
Stars: ✭ 406 (-6.45%)
Mutual labels:  object-detection
Centernet Better
An easy to understand and better performance version of CenterNet
Stars: ✭ 393 (-9.45%)
Mutual labels:  object-detection
Video obj
基于视频的目标检测算法研究
Stars: ✭ 372 (-14.29%)
Mutual labels:  object-detection
Automl
Google Brain AutoML
Stars: ✭ 4,795 (+1004.84%)
Mutual labels:  object-detection
Foveabox
FoveaBox: Beyond Anchor-based Object Detector
Stars: ✭ 353 (-18.66%)
Mutual labels:  object-detection
Ssd Tensorflow
Single Shot MultiBox Detector in TensorFlow
Stars: ✭ 4,066 (+836.87%)
Mutual labels:  object-detection
Vehicle Detection And Tracking
Computer vision based vehicle detection and tracking using Tensorflow Object Detection API and Kalman-filtering
Stars: ✭ 384 (-11.52%)
Mutual labels:  object-detection
Centerx
This repo is implemented based on detectron2 and centernet
Stars: ✭ 403 (-7.14%)
Mutual labels:  object-detection
Yolo V5
🎨 Pytorch YOLO v5 训练自己的数据集超详细教程!!! 🎨 (提供PDF训练教程下载)
Stars: ✭ 379 (-12.67%)
Mutual labels:  object-detection
Gfocal
Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection, NeurIPS2020
Stars: ✭ 376 (-13.36%)
Mutual labels:  object-detection
Trainyourownyolo
Train a state-of-the-art yolov3 object detector from scratch!
Stars: ✭ 399 (-8.06%)
Mutual labels:  object-detection
Handeye calib camodocal
Easy to use and accurate hand eye calibration which has been working reliably for years (2016-present) with kinect, kinectv2, rgbd cameras, optical trackers, and several robots including the ur5 and kuka iiwa.
Stars: ✭ 364 (-16.13%)
Mutual labels:  rotation
Yolov4 Deepsort
Object tracking implemented with YOLOv4, DeepSort, and TensorFlow.
Stars: ✭ 408 (-5.99%)
Mutual labels:  object-detection
T Cnn
ImageNet 2015 Object Detection from Video (VID)
Stars: ✭ 360 (-17.05%)
Mutual labels:  object-detection
Mask rcnn
Mask R-CNN for object detection and instance segmentation on Keras and TensorFlow
Stars: ✭ 21,044 (+4748.85%)
Mutual labels:  object-detection
Mscnn
Caffe implementation of our multi-scale object detection framework
Stars: ✭ 397 (-8.53%)
Mutual labels:  object-detection
Yolo2 Pytorch
PyTorch implementation of the YOLO (You Only Look Once) v2
Stars: ✭ 426 (-1.84%)
Mutual labels:  object-detection

R3Det: Refined Single-Stage Detector with Feature Refinement for Rotating Object

License arXiv

Abstract

R3Det and R3Det++ are based on Focal Loss for Dense Object Detection, and it is completed by YangXue.

mmdetection version is released. We also recommend a tensorflow-based rotation detection benchmark, which is led by YangXue.

Pipeline

5

Latest Performance

DOTA1.0 (Task1)

Model Backbone Training data Val data mAP Model Link Anchor Angle Pred. Reg. Loss Angle Range lr schd Data Augmentation GPU Image/GPU Configs
RetinaNet-H ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 65.73 Baidu Drive (jum2) H Reg. smooth L1 90 2x × 3X GeForce RTX 2080 Ti 1 cfgs_res50_dota_v4.py
RetinaNet-H ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 64.17 Baidu Drive (j5l0) H Reg. smooth L1 180 2x × 3X GeForce RTX 2080 Ti 1 cfgs_res50_dota_v15.py
R3Det ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 70.66 Baidu Drive (30lt) H + R Reg. smooth L1 90 2x × 3X GeForce RTX 2080 Ti 1 cfgs_res50_dota_r3det_v1.py
R3Det* ResNet101_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 73.79 Baidu Drive (d7qp) H + R Reg. iou-smooth L1 90 3x 4X GeForce RTX 2080 Ti 1 cfgs_res101_dota_r3det_v19.py
R3Det* ResNet152_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 74.54 Baidu Drive (73bc) H + R Reg. iou-smooth L1 90 3x 4X GeForce RTX 2080 Ti 1 cfgs_res152_dota_r3det_v25.py
R3Det ResNet152_v1d 600->MS (+Flip) DOTA1.0 trainval DOTA1.0 test 76.23 (+0.24) model H + R Reg. iou-smooth L1 90 4x 3X GeForce RTX 2080 Ti 1 cfgs_res152_dota_r3det_v3.py

R3Det*: R3Det with two refinement stages
Due to the improvement of the code, the performance of this repo is gradually improving, so the experimental results in other configuration files are for reference only.

Visualization

1

My Development Environment

docker images: docker pull yangxue2docker/yx-tf-det:tensorflow1.13.1-cuda10-gpu-py3
1、python3.5 (anaconda recommend)
2、cuda 10.0
3、opencv(cv2)
4、tfplot 0.2.0 (optional)
5、tensorflow-gpu 1.13

Download Model

Pretrain weights

1、Please download resnet50_v1, resnet101_v1, resnet152_v1, efficientnet, mobilenet_v2 pre-trained models on Imagenet, put it to data/pretrained_weights.
2、(Recommend in this repo) Or you can choose to use a better backbone (resnet_v1d), refer to gluon2TF.

Compile

cd $PATH_ROOT/libs/box_utils/cython_utils
python setup.py build_ext --inplace (or make)

cd $PATH_ROOT/libs/box_utils/
python setup.py build_ext --inplace

Train

1、If you want to train your own data, please note:

(1) Modify parameters (such as CLASS_NUM, DATASET_NAME, VERSION, etc.) in $PATH_ROOT/libs/configs/cfgs.py
(2) Add category information in $PATH_ROOT/libs/label_name_dict/label_dict.py     
(3) Add data_name to $PATH_ROOT/data/io/read_tfrecord_multi_gpu.py  

2、Make tfrecord
For DOTA dataset:

cd $PATH_ROOT/data/io/DOTA
python data_crop.py
cd $PATH_ROOT/data/io/  
python convert_data_to_tfrecord.py --VOC_dir='/PATH/TO/DOTA/' 
                                   --xml_dir='labeltxt'
                                   --image_dir='images'
                                   --save_name='train' 
                                   --img_format='.png' 
                                   --dataset='DOTA'

3、Multi-gpu train

cd $PATH_ROOT/tools
python multi_gpu_train_r3det.py

Test

cd $PATH_ROOT/tools
python test_dota_r3det_ms.py --test_dir='/PATH/TO/IMAGES/'  
                             --gpus=0,1,2,3,4,5,6,7  
                             -ms (multi-scale testing, optional)
                             -s (visualization, optional)

Notice: In order to set the breakpoint conveniently, the read and write mode of the file is' a+'. If the model of the same #VERSION needs to be tested again, the original test results need to be deleted.

Tensorboard

cd $PATH_ROOT/output/summary
tensorboard --logdir=.

3

4

Citation

If this is useful for your research, please consider cite.

@article{yang2020arbitrary,
    title={Arbitrary-Oriented Object Detection with Circular Smooth Label},
    author={Yang, Xue and Yan, Junchi},
    journal={European Conference on Computer Vision (ECCV)},
    year={2020}
    organization={Springer}
}

@article{yang2019r3det,
    title={R3Det: Refined Single-Stage Detector with Feature Refinement for Rotating Object},
    author={Yang, Xue and Yan, Junchi and Feng, Ziming and He, Tao},
    journal={arXiv preprint arXiv:1908.05612},
    year={2019}
}

@article{yang2020scrdet++,
    title={SCRDet++: Detecting Small, Cluttered and Rotated Objects via Instance-Level Feature Denoising and Rotation Loss Smoothing},
    author={Yang, Xue and Yan, Junchi and Yang, Xiaokang and Tang, Jin and Liao, Wenglong and He, Tao},
    journal={arXiv preprint arXiv:2004.13316},
    year={2020}
}

@inproceedings{xia2018dota,
    title={DOTA: A large-scale dataset for object detection in aerial images},
    author={Xia, Gui-Song and Bai, Xiang and Ding, Jian and Zhu, Zhen and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
    booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    pages={3974--3983},
    year={2018}
}

Reference

1、https://github.com/endernewton/tf-faster-rcnn
2、https://github.com/zengarden/light_head_rcnn
3、https://github.com/tensorflow/models/tree/master/research/object_detection
4、https://github.com/fizyr/keras-retinanet

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].