This repo contains the code to train and evaluate state of the art classification, detection and segmentation methods in a unified Keras framework working with Theano and TensorFlow. Pretrained models are also supplied.
- Lenet network as described in Gradient-Based Learning Applied to Document Recognition.
- AlexNet network as described in ImageNet Classification with Deep Convolutional Neural Networks.
- VGG16 and VGG19 network as described in Very Deep Convolutional Networks for Large-Scale Image Recognition.
- ResNet50 network as described in Deep Residual Learning for Image Recognition.
- InceptionV3 network as described in Rethinking the Inception Architecture for Computer Vision.
- DenseNet network as described in Densely Connected Convolutional Networks.
- YOLO network as described in You Only Look Once: Unified, Real-Time Object Detection.
- SSD network as described in SSD: Single Shot MultiBox Detector.
- Overfeat network as described in .
- FCN8 network as described in Fully Convolutional Neural Networks.
- UNET network as described in U-Net: Convolutional Networks for Biomedical Image Segmentation.
- Segnet network as described in SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation.
- ResnetFCN network as described in Wider or Deeper: Revisiting the ResNet Model for Visual Recognition.
- DeepLab network as described in .
- MIT dataset described in .
- TT100K classsification dataset described in .
- INRIA pedestrian dataset described in .
- ImageNet dataset described in .
- Pascal dataset described in .
- Camvid dataset described in Semantic Object Classes in Video: A High-Definition Ground Truth Database .
- Cityscapes dataset described in The Cityscapes Dataset for Semantic Urban Scene Understanding.
- Synthia dataset described in The SYNTHIA Dataset: A Large Collection of Synthetic Images for Semantic Segmentation of Urban Scenes.
- Polyps dataset described in .
- Pascal2012 dataset described in .
- Pascal2012 extra dataset described in .
- MSCOCO dataset described in .
- KITTI dataset described in .
- TT100K segmentation dataset described in .
You need to install :
- Theano or TensorFlow. Preferably the last version
- Keras
All the parameters of the experiment are defined at config/dataset.py where dataset.py is the name of the dataset to use. Configure this file according to you needs.
To train/test a model in Theano, use the command: THEANO_FLAGS='device=cuda0,floatX=float32,lib.cnmem=0.95' python train.py -c config/dataset.py -e expName
where dataset is the name of the dataset you want to use and expName the name of the experiment.
To train/test a model in TensorFlow, use the command: CUDA_VISIBLE_DEVICES=0 python train.py -c config/dataset.py -e expName -s SharedPath -l LocalPath
where dataset is the name of the dataset you want to use and expName the name of the experiment, SharedPath points to the folder in which the shared path is (same for LocalPath).
All the logs of the experiments are stored in the result folder of the experiment.
David Vázquez, Adriana Romero, Michal Drozdzal, Lluis Gomez
- Relaunch: Remember the number of the last epoch