All Projects → ZFTurbo → Keras Retinanet For Open Images Challenge 2018

ZFTurbo / Keras Retinanet For Open Images Challenge 2018

Licence: mit
Code for 15th place in Kaggle Google AI Open Images - Object Detection Track

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Keras Retinanet For Open Images Challenge 2018

People Counter Python
Create a smart video application using the Intel Distribution of OpenVINO toolkit. The toolkit uses models and inference to run single-class object detection.
Stars: ✭ 62 (-75.3%)
Mutual labels:  object-detection, pretrained-models
Cv Pretrained Model
A collection of computer vision pre-trained models.
Stars: ✭ 995 (+296.41%)
Mutual labels:  object-detection, pretrained-models
Open3d Ml
An extension of Open3D to address 3D Machine Learning tasks
Stars: ✭ 284 (+13.15%)
Mutual labels:  object-detection, pretrained-models
Yolov3 Object Detection With Opencv
This project implements a real-time image and video object detection classifier using pretrained yolov3 models.
Stars: ✭ 191 (-23.9%)
Mutual labels:  object-detection, pretrained-models
Arkit2.0 Prototype
After Apple’s introduction of ARKit 2, we have been consistently working behind to create shared-AR experiences. Our goal is to improve the utility of mobile using AR experiences.
Stars: ✭ 236 (-5.98%)
Mutual labels:  object-detection
Ms G3d
[CVPR 2020 Oral] PyTorch implementation of "Disentangling and Unifying Graph Convolutions for Skeleton-Based Action Recognition"
Stars: ✭ 225 (-10.36%)
Mutual labels:  pretrained-models
Mmdetection
OpenMMLab Detection Toolbox and Benchmark
Stars: ✭ 17,646 (+6930.28%)
Mutual labels:  object-detection
Bbox Visualizer
Make drawing and labeling bounding boxes easy as cake
Stars: ✭ 225 (-10.36%)
Mutual labels:  object-detection
Vovnet Detectron2
VoVNet backbone networks for detectron2, in CVPR 2020
Stars: ✭ 249 (-0.8%)
Mutual labels:  object-detection
Real time object detection and tracking
YOLOv2 and MobileNet_SSD detection algorithms used along with KCF object tracker
Stars: ✭ 241 (-3.98%)
Mutual labels:  object-detection
Wetectron
weakly-supervised object detection platform.
Stars: ✭ 233 (-7.17%)
Mutual labels:  object-detection
Flip
Synthetic Image generation with Flip. Generate thousands of new 2D images from a small batch of objects and backgrounds.
Stars: ✭ 231 (-7.97%)
Mutual labels:  object-detection
Mxnet Yolo
YOLO: You only look once real-time object detector
Stars: ✭ 240 (-4.38%)
Mutual labels:  object-detection
Icevision
End-to-End Object Detection Framework - Pluggable to any Training Library: Fastai, Pytorch-Lightning with more to come
Stars: ✭ 218 (-13.15%)
Mutual labels:  object-detection
Monoloco
[ICCV 2019] Official implementation of "MonoLoco: Monocular 3D Pedestrian Localization and Uncertainty Estimation" in PyTorch + Social Distancing
Stars: ✭ 242 (-3.59%)
Mutual labels:  object-detection
Catalyst
Accelerated deep learning R&D
Stars: ✭ 2,804 (+1017.13%)
Mutual labels:  object-detection
D2det
D2Det: Towards High Quality Object Detection and Instance Segmentation (CVPR2020)
Stars: ✭ 234 (-6.77%)
Mutual labels:  object-detection
Taco
🌮 Trash Annotations in Context Dataset Toolkit
Stars: ✭ 243 (-3.19%)
Mutual labels:  object-detection
Ssd Variants
PyTorch implementation of several SSD based object detection algorithms.
Stars: ✭ 233 (-7.17%)
Mutual labels:  object-detection
Retinaface
The remake of the https://github.com/biubug6/Pytorch_Retinaface
Stars: ✭ 226 (-9.96%)
Mutual labels:  object-detection

Keras-RetinaNet for Open Images Challenge 2018

This code was used to get 15th place in Kaggle Google AI Open Images - Object Detection Track competition: https://www.kaggle.com/c/google-ai-open-images-object-detection-track/leaderboard

Repository contains the following:

  • Pre-trained models (with ResNet101 and ResNet152 backbones)
  • Example code to get predictions with these models for any set of images
  • Code to train your own classifier based on Keras-RetinaNet and OID dataset
  • Code to expand predictions for full 500 classes

Online demo

http://nn-box.com/box/ - upload image wait several seconds and it will show boxes. ResNet152 is used as backbone.

Requirements

Python 3.5, Keras 2.2, Keras-RetinaNet 0.4.1

Pretrained models 2018

There are 3 RetinaNet models based on ResNet50, ResNet101 and ResNet152 for 443 classes (only Level 1).

Backbone Image Size (px) Model (training) Model (inference) Small validation mAP Full validation mAP
ResNet50 768 - 1024 533 MB 178 MB 0.4621 0.3520
ResNet101 768 - 1024 739 MB 247 MB 0.5031 0.3870
ResNet152 600 - 800 918 MB 308 MB 0.5194 0.3959
  • Model (training) - can be used to resume training or can be used as pretrain for your own classifier
  • Model (inference) - can be used to get prediction boxes for arbitrary images

Pretrained models 2019

There are 3 RetinaNet models based on ResNet50, ResNet101 and ResNet152 for all 500 classes.

Backbone Image Size (px) Model (training) Model (inference) Small validation mAP LB (Public)
ResNet50 768 - 1024 534 MB 178 MB 0.4594 0.4223
ResNet101 768 - 1024 752 MB 251 MB 0.4986 0.4520
ResNet152 600 - 800 932 MB 312 MB 0.4991 0.4651

Inference

Example can be found here: retinanet_inference_example.py

You need to change files_to_process = glob.glob(DATASET_PATH + 'validation_big/*.jpg') to your own set of files. On output you will get "predictions_*.csv" file with boxes.

Having Level 1 predictions you can expand it to all 500 classes using code from create_higher_level_predictions_from_level_1_predictions_csv.py

Training

For training you need to download OID dataset (~500 GB images): https://storage.googleapis.com/openimages/web/challenge.html

Next fix paths in a00_utils_and_constants.py

Then to train on OID dataset you need to run python files in following order:

  • create_files_for_training_by_levels.py
  • retinanet_training_level_1/find_image_parameters.py

then

  • retinanet_training_level_1/train_oid_level_1_resnet101.py

or

  • retinanet_training_level_1/train_oid_level_1_resnet152.py

Ensembles

If you have predictions from several models, for example for ResNet101 and ResNet152 backbones, then you can ensemble boxes with script:

Proposed method increases the overall performance:

  • ResNet101 mAP 0.3776 + ResNet152 mAP 0.3840 gives in result: mAP 0.4220

Method description

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].