GithubHelp home page GithubHelp logo

jimmyho610 / retinanet_tensorflow_rotation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from detectionteamucas/retinanet_tensorflow_rotation

0.0 0.0 0.0 55.44 MB

Focal Loss for Dense Rotation Object Detection

License: MIT License

Python 97.43% Makefile 0.01% C++ 0.05% Cuda 2.51%

retinanet_tensorflow_rotation's Introduction

Focal Loss for Dense Rotation Object Detection

Abstract

This repo is based on Focal Loss for Dense Object Detection, and it is completed by YangXue.

This is the baseline work of R3Det, paper link: R3Det: Refined Single-Stage Detector with Feature Refinement for Rotating Object.

Performance

More results and trained models are available in the MODEL_ZOO.md.

DOTA1.0

Model Backbone Training data Val data mAP GPU Image/GPU Anchor Reg. Loss lr schd Data Augmentation Configs
RetinaNet (baseline) ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 62.22 1X GeForce RTX 2080 Ti 1 H smooth L1 1x No cfgs_res50_dota_v4.py
RetinaNet (baseline) ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 62.79 8X GeForce RTX 2080 Ti 1 H smooth L1 2x No cfgs_res50_dota_v8.py
RetinaNet (baseline) ResNet101_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 64.19 1X GeForce RTX 2080 Ti 1 H smooth L1 1x No cfgs_res101_dota_v9.py
RetinaNet (baseline) ResNet152_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 65.79 8X GeForce RTX 2080 Ti 1 H smooth L1 2x No cfgs_res152_dota_v12.py
RetinaNet (baseline) ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 61.94 1X GeForce RTX 2080 Ti 1 R smooth L1 1x No cfgs_res50_dota_v1.py
RetinaNet (baseline) ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 62.25 8X GeForce RTX 2080 Ti 1 R smooth L1 2x No cfgs_res50_dota_v10.py
RetinaNet ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 68.65 1X GeForce RTX 2080 Ti 1 R iou-smooth L1 1x No cfgs_res50_dota_v5.py
R3Det ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 65.73 8X GeForce RTX 2080 Ti 1 H + R smooth L1 2x No -
R3Det* ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 67.20 8X GeForce RTX 2080 Ti 1 H + R smooth L1 2x No -
R3Det ResNet101_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 71.69 8X GeForce RTX 2080 Ti 1 H + R smooth L1 3x Yes -
R3Det ResNet152_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 72.81 8X GeForce RTX 2080 Ti 1 H + R smooth L1 4x Yes -
R3Det* ResNet152_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 73.74 8X GeForce RTX 2080 Ti 1 H + R smooth L1 4x Yes -
R3Det++ ResNet50_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 68.54 8X GeForce RTX 2080 Ti 1 H + R smooth L1 2x No -
R3Det++ ResNet152_v1d 600->800 DOTA1.0 trainval DOTA1.0 test 74.41 8X GeForce RTX 2080 Ti 1 H + R smooth L1 4x Yes -
R3Det++ ResNet152_v1d MS DOTA1.0 trainval DOTA1.0 test 76.56 4X GeForce RTX 2080 Ti 1 H + R + more smooth L1 6x Yes -

R3Det*: R3Det with two refinement stages
The performance of all models comes from the source paper.

Visualization

1

2

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 1.13

IoU-smooth L1 Loss

SCRDet: Towards More Robust Detection for Small, Cluttered and Rotated Objects (ICCV2019)

1

2

Download Model

Pretrain weights

1、Please download resnet50_v1, resnet101_v1 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, 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/lable_dict.py     
(3) Add data_name to $PATH_ROOT/data/io/read_tfrecord.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.py

Eval

cd $PATH_ROOT/tools
python test_dota.py --test_dir='/PATH/TO/IMAGES/'  
                    --gpus=0,1,2,3,4,5,6,7          

Tensorboard

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

3

4

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

retinanet_tensorflow_rotation's People

Contributors

yangxue0827 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.