All Projects → ahmdtaha → FineGrainedVisualRecognition

ahmdtaha / FineGrainedVisualRecognition

Licence: Apache-2.0 License
Fine grained visual recognition tensorflow baseline on CUB, Stanford Cars, Dogs, Aircrafts, and Flower102.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to FineGrainedVisualRecognition

Awesome-Tensorflow2
基于Tensorflow2开发的优秀扩展包及项目
Stars: ✭ 45 (+136.84%)
Mutual labels:  classification, tensorflow-experiments, tensorflow-models
The Third Eye
An AI based application to identify currency and gives audio feedback.
Stars: ✭ 63 (+231.58%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Math object detection
An image recognition/object detection model that detects handwritten digits and simple math operators. The output of the predicted objects (numbers & math operators) is then evaluated and solved.
Stars: ✭ 52 (+173.68%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Text Cnn Tensorflow
Convolutional Neural Networks for Sentence Classification(TextCNN) implements by TensorFlow
Stars: ✭ 232 (+1121.05%)
Mutual labels:  classification, tensorflow-models
Cramer Gan
Tensorflow Implementation on "The Cramer Distance as a Solution to Biased Wasserstein Gradients" (https://arxiv.org/pdf/1705.10743.pdf)
Stars: ✭ 123 (+547.37%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Tensorlayer Tricks
How to use TensorLayer
Stars: ✭ 357 (+1778.95%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Wgan
Tensorflow Implementation of Wasserstein GAN (and Improved version in wgan_v2)
Stars: ✭ 228 (+1100%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Android-Machine-Learning-With-TensorFlow
Tensor Flow implementation for Android
Stars: ✭ 17 (-10.53%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Machine-Learning
🌎 I created this repository for educational purposes. It will host a number of projects as part of the process .
Stars: ✭ 38 (+100%)
Mutual labels:  tensorflow-experiments, tensorflow-models
TensorFlow-Multiclass-Image-Classification-using-CNN-s
Balanced Multiclass Image Classification with TensorFlow on Python.
Stars: ✭ 57 (+200%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Age-Gender Estimation TF-Android
Age + Gender Estimation on Android with TensorFlow Lite
Stars: ✭ 34 (+78.95%)
Mutual labels:  tensorflow-experiments, tensorflow-models
EEG-Motor-Imagery-Classification-CNNs-TensorFlow
EEG Motor Imagery Tasks Classification (by Channels) via Convolutional Neural Networks (CNNs) based on TensorFlow
Stars: ✭ 125 (+557.89%)
Mutual labels:  tensorflow-experiments, tensorflow-models
Tensorflow-Wide-Deep-Local-Prediction
This project demonstrates how to run and save predictions locally using exported tensorflow estimator model
Stars: ✭ 28 (+47.37%)
Mutual labels:  tensorflow-experiments, tensorflow-models
char-VAE
Inspired by the neural style algorithm in the computer vision field, we propose a high-level language model with the aim of adapting the linguistic style.
Stars: ✭ 18 (-5.26%)
Mutual labels:  tensorflow-experiments, tensorflow-models
mri-deep-learning-tools
Resurces for MRI images processing and deep learning in 3D
Stars: ✭ 56 (+194.74%)
Mutual labels:  classification
data-science-notes
Open-source project hosted at https://makeuseofdata.com to crowdsource a robust collection of notes related to data science (math, visualization, modeling, etc)
Stars: ✭ 52 (+173.68%)
Mutual labels:  classification
pytorch2keras
PyTorch to Keras model convertor
Stars: ✭ 788 (+4047.37%)
Mutual labels:  tensorflow-models
shellnet
ShellNet: Efficient Point Cloud Convolutional Neural Networks using Concentric Shells Statistics
Stars: ✭ 80 (+321.05%)
Mutual labels:  classification
CvT
This is an official implementation of CvT: Introducing Convolutions to Vision Transformers.
Stars: ✭ 262 (+1278.95%)
Mutual labels:  classification
wymlp
tiny fast portable real-time deep neural network for regression and classification within 50 LOC.
Stars: ✭ 36 (+89.47%)
Mutual labels:  classification

FGVR Tensorflow Baseline

This repo contains training code for FGVR classification using TensorFlow. This implementation achieves comparable state-of-the-art results.

Checkout the Wiki for more technical discussion.

FVGR is a classification task where intra category visual differences are small and can be overwhelmed by factors such as pose, viewpoint, or location of the object in the image. For instance, the following image shows a California gull (left) and a Ringed-beak gull (Right). The beak pattern difference is the key for a correct classification. Such a difference is tiny when compared to the intra-category variations like pose and illumination. FVGR dataset typically involve animal species, models of cars or aircrafts. The following table list six well-known FGVR datasets.

Dataset Num Classes Avg samples Per Class Train Size Val Size Test Size
Flowers-102 102 10 1020 1020 6149
CUB-200-2011 200 29.97 5994 N/A 5794
Stanford Cars 196 41.55 8144 N/A 8041
NABirds 550 43.5 23929 N/A 24633
Aircrafts 100 33.34 3334 3333 3333
Stanford Dogs 120 100 12000 N/A 8580

Requirements

  • Python 3+ [Tested on 3.4.7]
  • Tensorflow 1+ [Tested on 1.8]

Datasets

I prepare my datasets in an un-conviention way. dataset_sample folder provides an example for the cars dataset. Instead of caffe style, listing files and labels in txt file, I use csv file. Reading dataset content in Excel is more appealing, to me, than txt file. To use caffe txt dataset style, make sure to modify CarsTupleLoader and BaseTupleLoader. This should be trivial since these classes return a list of filenames and labels

Preliminary Results

Augmentation using random cropping and horizontal flipping on. No color distortion, vertical flipping or any complex augmentation is employed. The results are preliminary because I didn't wait for till max_iters. Other datasets results and other models like resnet50 will be added later.

Dataset DenseNet161 ResNet50 V2
Flowers-102 93.39 85.59
CUB-200-2011 82.2 69.43
Stanford Cars 91.13 86.84
NABirds 78.80 65.06
Aircrafts 88.65 83.49
Stanford Dogs 81.60 70.36

Running

base_config contains all the parameters needed to train the model. The main function in fgvr_train.py shows how to set these parameters.

Run python fgvr_train.py

Credits:

The following deserve credit for the tips and help provided to finish this code and achieve the reported results

TODO LIST

  • [Done] Write a Wiki about Accumulated Gradient in Tensorflow
  • [Done] Write a Wiki about Batch normalization and how to train and evaluate concurrently.
  • [Done] Report results of these fgvr datasets
  • [Done] Add ResNet implementation
  • [Done] Add other dataset loaders
  • Add separate evaluation.py to eval a trained model

Contributor list

  1. Ahmed Taha

Both tips to improve the code and pull requests to contribute are very welcomed

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