All Projects → idealo → Imageatm

idealo / Imageatm

Licence: apache-2.0
Image classification for everyone.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Imageatm

Keras-Application-Zoo
Reference implementations of popular DL models missing from keras-applications & keras-contrib
Stars: ✭ 31 (-84.58%)
Mutual labels:  image-classification, transfer-learning
Assembled Cnn
Tensorflow implementation of "Compounding the Performance Improvements of Assembled Techniques in a Convolutional Neural Network"
Stars: ✭ 319 (+58.71%)
Mutual labels:  image-classification, transfer-learning
Deep-Learning
It contains the coursework and the practice I have done while learning Deep Learning.🚀 👨‍💻💥 🚩🌈
Stars: ✭ 21 (-89.55%)
Mutual labels:  image-classification, transfer-learning
LegoBrickClassification
Repository to identify Lego bricks automatically only using images
Stars: ✭ 57 (-71.64%)
Mutual labels:  image-classification, transfer-learning
Keras transfer cifar10
Object classification with CIFAR-10 using transfer learning
Stars: ✭ 120 (-40.3%)
Mutual labels:  image-classification, transfer-learning
super-gradients
Easily train or fine-tune SOTA computer vision models with one open source training library
Stars: ✭ 429 (+113.43%)
Mutual labels:  image-classification, transfer-learning
Autogluon
AutoGluon: AutoML for Text, Image, and Tabular Data
Stars: ✭ 3,920 (+1850.25%)
Mutual labels:  image-classification, transfer-learning
Skin Lesions Classification DCNNs
Transfer Learning with DCNNs (DenseNet, Inception V3, Inception-ResNet V2, VGG16) for skin lesions classification
Stars: ✭ 47 (-76.62%)
Mutual labels:  image-classification, transfer-learning
Imageclassification
Deep Learning: Image classification, feature visualization and transfer learning with Keras
Stars: ✭ 83 (-58.71%)
Mutual labels:  image-classification, transfer-learning
Rexnet
Official Pytorch implementation of ReXNet (Rank eXpansion Network) with pretrained models
Stars: ✭ 319 (+58.71%)
Mutual labels:  image-classification, transfer-learning
favorite-research-papers
Listing my favorite research papers 📝 from different fields as I read them.
Stars: ✭ 12 (-94.03%)
Mutual labels:  image-classification, transfer-learning
Image classifier
CNN image classifier implemented in Keras Notebook 🖼️.
Stars: ✭ 139 (-30.85%)
Mutual labels:  image-classification, transfer-learning
deep-learning
Projects include the application of transfer learning to build a convolutional neural network (CNN) that identifies the artist of a painting, the building of predictive models for Bitcoin price data using Long Short-Term Memory recurrent neural networks (LSTMs) and a tutorial explaining how to build two types of neural network using as input the…
Stars: ✭ 43 (-78.61%)
Mutual labels:  image-classification, transfer-learning
FaceClassification Tensorflow
Building a Neural Network that classifies faces using OpenCV and Tensorflow
Stars: ✭ 37 (-81.59%)
Mutual labels:  image-classification, transfer-learning
backprop
Backprop makes it simple to use, finetune, and deploy state-of-the-art ML models.
Stars: ✭ 229 (+13.93%)
Mutual labels:  image-classification, transfer-learning
Hub
A library for transfer learning by reusing parts of TensorFlow models.
Stars: ✭ 3,007 (+1396.02%)
Mutual labels:  image-classification, transfer-learning
Transfer Learning Suite
Transfer Learning Suite in Keras. Perform transfer learning using any built-in Keras image classification model easily!
Stars: ✭ 212 (+5.47%)
Mutual labels:  image-classification, transfer-learning
Artificio
Deep Learning Computer Vision Algorithms for Real-World Use
Stars: ✭ 326 (+62.19%)
Mutual labels:  image-classification, transfer-learning
Pytorch classifiers
Almost any Image classification problem using pytorch
Stars: ✭ 122 (-39.3%)
Mutual labels:  image-classification, transfer-learning
Cvpr18 Inaturalist Transfer
Large Scale Fine-Grained Categorization and Domain-Specific Transfer Learning. CVPR 2018
Stars: ✭ 164 (-18.41%)
Mutual labels:  image-classification, transfer-learning

Image ATM (Automated Tagging Machine)

Build Status License

Image ATM is a one-click tool that automates the workflow of a typical image classification pipeline in an opinionated way, this includes:

  • Preprocessing and validating input images and labels
  • Starting/terminating cloud instance with GPU support
  • Training
  • Model evaluation

Read the documentation at: https://idealo.github.io/imageatm/

Image ATM is compatible with Python 3.6 and is distributed under the Apache 2.0 license.

Installation

There are two ways to install Image ATM:

  • Install Image ATM from PyPI (recommended):
pip install imageatm
  • Install Image ATM from the GitHub source:
git clone https://github.com/idealo/imageatm.git
cd imageatm
python setup.py install

Usage

Train with CLI

Run this in your terminal

imageatm pipeline config/config_file.yml

Train without CLI

Run the data preparation:

from imageatm.components import DataPrep

dp = DataPrep(
    samples_file = 'sample_configfile.json',
    image_dir = 'sample_dataset/',
    job_dir='sample_jobdir/'
)
dp.run(resize=True)

Run the training:

from imageatm.components import Training

trainer = Training(image_dir=dp.image_dir, job_dir=dp.job_dir)
trainer.run()

Run the evaluation:

from imageatm.components import Evaluation

evaluator = Evaluation(image_dir=dp.image_dir, job_dir=dp.job_dir)
evaluator.run()

Test

Test execution is triggered by these commands:

pip install -e ".[tests, docs]"
pytest -vs --cov=imageatm --show-capture=no --disable-pytest-warnings tests/

Transfer learning

The following pretrained CNNs from Keras can be used for transfer learning in Image-ATM:

  • Xception
  • VGG16
  • VGG19
  • ResNet50, ResNet101, ResNet152
  • ResNet50V2, ResNet101V2, ResNet152V2
  • ResNeXt50, ResNeXt101
  • InceptionV3
  • InceptionResNetV2
  • MobileNet
  • MobileNetV2
  • DenseNet121, DenseNet169, DenseNet201
  • NASNetLarge, NASNetMobile

Training is split into two phases, at first only the last dense layer gets trained, and then all layers are trained.

For each phase the learning rate is reduced after a patience period if no improvement in validation accuracy has been observed. The patience period depends on the average number of samples per class (n_per_class):

  • if n_per_class < 200: patience = 5 epochs
  • if n_per_class >= 200 and < 500: patience = 4 epochs
  • if n_per_class >= 500: patience = 2 epochs

Training is stopped early after a patience period that is three times the learning rate patience to allow for two learning rate adjustments before stopping training.

Contribute

We welcome all kinds of contributions. See the Contribution guide for more details.

Bump version

To bump up the version, use

bumpversion {part} setup.py

Cite this work

Please cite Image ATM in your publications if this is useful for your research. Here is an example BibTeX entry:

@misc{idealods2019imageatm,
  title={Image ATM},
  author={Christopher Lennan and Malgorzata Adamczyk and Gunar Maiwald and Dat Tran},
  year={2019},
  howpublished={\url{https://github.com/idealo/imageatm}},
}

Maintainers

Copyright

See LICENSE for details.

TO-DOs:

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