Build your own image classification models to interpret and categorize the content within images

SentiSight.ai is your place to train your own Image Classification Models.

Image classification is used to predict the content of images. The model will classify the content of the image into specified classes, as well as provide a confidence estimate of each classification prediction in the form of a percentage.

Image classification models take two forms; single-label classification and multi-label classification.

Single-Label Classification

A single-label classification model predicts the specified class of the content within the image that has the highest probability.

Single-label models are often easier to train, and offer more accurate predictions as to the content within the image.

Multi-Label Classification

A multi-label model predicts all of the specified classes that were identified within the image.

Multi-label classification tools are useful when you need to identify several objects or concepts within the same image.

Struggling to decide whether you need
a Single-Label or Multi-Label Classification model?

Train models for Image Classification in Three Easy Steps

The SentiSight.ai platform is simple for beginners, yet powerful for experts

SentiSight.ai also offers advanced features, that allow you to set a range of different parameters for training your models, as well as being able to view detailed statistics of the trained models. All of it is optional for beginners, but can come in handy for our advanced users!

These advanced features include:

  • View learning curves
  • View confusion matrices (single-label classification)
  • View precision-recall curves (multi-label classification)
  • Set score thresholds for each class individually or use optimized ones (multi-label classification)
  • Choose the model size
  • Set the Learning Rate
  • Fully customize the validation set
  • View and filter predictions on the training and validation sets

Use Cases of Image Classification

Features of the SentiSight.ai Image Classification Platform

Train your image classification model or use a pre-trained model

Image Classification models can either be trained on your own images to identify concepts you labeled or pre-trained models can be used to identify a pre-defined set of concepts.

Labels icon

Train your own classification model

Training your own Image Classification Model sounds daunting, but our user-friendly interface allows even a novice to train a model unique to your requirements.

Image classification icon

Use a pre-trained image classification model

SentiSight.ai has several pre-trained image classification models that can be used as turnkey solutions. You can use the “General pre-trained model” if the classification label you want to recognize is included in this list of labels or you can use “Places pre-trained model” to recognize one of the places that is included in this list of labels.

Four different ways to use the Image Classification Tool

You can deploy your Image Classification models in a number of ways, depending on your requirements and set-up.

Web interface

Web Interface

Using the SentiSight.ai tools on the Web Interface is the quickest and most straightforward way to train and build your own image classification models, without the need for expensive hardware such as GPUs.

Rest API

REST API

Using the REST API to build your SentiSight.ai image classification models offers you a great deal of flexibility and possibilities

On premise solution

On Premise Models

The SentiSight.ai image classification tool is available to download for offline use, allowing you to use the tool without the need to send data to our server.

Sentisight on mobile

Mobile app

The SentiSight.ai mobile app enables users to easily make image classification predictions from their phone, as well as uploading images to their projects.

Get Sentisight app on Google Play

Download Sentisight app on the App Store

Image Classification Models User Guide

Our platform contains numerous tools, ranging in capability and complexity. For new users to the image recognition field this can be slightly daunting which is why we have simplified the image classification model training process by providing a user guide.

As previously mentioned, training your image classification model revolves around a straightforward process:

  1. Uploading Images
  2. Labeling Images
  3. Training the model courtesy of SentiSight.ai

Our comprehensive user guide includes an in-depth breakdown of multiple image classification model features including:

  • Upload images: learn to upload the images individually, as a folder, zip buttons or using our API.
  • Label images: figure out how to label with one shape for the purpose of image classification, including using shortkeys to speed up the process and adjusting the tools settings to suit the needs of your task.
  • Training your image classification model: many parameters can be altered depending on the experience of the user. Also, learn how to delve deep into the analysis of your models performance.
  • Making predictions: make new predictions on previously used or new images via the SentiSight.ai web-interface or use your code of choice to run predictions via our REST API.
  • Using your image classification model offline: clear instructions on how you can set up your trained model to use offline by setting up your own REST API server on a Linux system.

For more information on all of the above visit our user guide here.

In addition to the user guide, we also provide a detailed video tutorial for our users so they can fully get to grips with training their image classification models via SentiSight.ai.

Video tutorials

Basic workflow tutorial


Topics covered:
  • Training a single label classification model
  • Analyzing model's performance
  • Using the model inside the platform or via REST API

You can download images used in this tutorial here

You can download video tutorial here

Video transcription:

Uploading images and Image Labeling

Let’s start with uploading images. First, you need to click the big red button on the left labeled “Upload Images”, and then choose the images that you want. During the upload process, you can add the labels to tell the system what is inside the images. This is called image labeling.

Once uploading the images, you can adjust the labels using the panel on the left hand side.

Training a classification model

Once you are happy with the labels, you can begin to train your image classification model, either a single-label classification or multi-label classification model.

In the training menu, you can choose the model name and the training time, as well as a few advanced options.

When you are ready, press start to start your model training. During the training, you can track the progress of the training under “Explore Models/Predict” Menu. Note: this menu name was changed to “Trained models”.

Analyzing model performance
After the model is trained, you can analyse the model by clicking on ‘View training statistics’ from the “Trained models” menu. The statistics are divided into two sections, Train and Validation. On the validation tab, SentiSight provides both the global statistics, as well as the per class statistics, for Precision, Recall and F1. Experienced users might want to click ‘Advanced View’, which reveals more detailed statistics such as Learning curves and Confusion matrix. You can review the actual predictions by clicking on the ‘Show predictions’ button, which allows you to review each image individually, or sort by correct or incorrect predictions.
Using the model to make predictions

Once you are happy with your model, you can use it to start making new predictions. You can do this by either pressing the ‘Make a new prediction’ button on the models performance screen, or by selecting the model from the “Trained models” menu. Then, upload your new images to be predicted.

You can analyse your results either online, or the results can be downloaded in a JSON format. Even if you do not know any coding, you can download the images grouped by predicted label, which will download the images in separate folders by label, as a ZIP file.

Using the model inside the platform, or via the REST API
If you are a developer, you can use SentiSight via the REST API server to make predictions. For this, you will need the API token and Project ID, which can be found in the top right corner in the User Profile section. You will also need the model name of the model that you have trained

Labeling images for classification


Topics covered:
  • Labeling images during the upload
  • Adjusting the labels after the upload
  • Changing the default label for the image

You can download video tutorial here

Video transcription:

Labeling images during the upload process
Users can label images during the upload process, and you are able to add multiple labels at once by separating labels with a comma.
Adjusting the labels after the upload

You can remove labels once they have been added, simply by clicking on the X button on the image to remove a label from an individual image. To remove the label from multiple images, select the images, and then click on the minus button next to the relevant label on the left hand side.

To add the label to multiple images, select the images, and then click the + button on the left hand side.

Users can easily add new labels which were not previously in the dataset. To do this, type in the name of the desired label in the left hand side text box, and then click on add. Follow the same instructions as above to add this classification label to images.

You can remove a label from the whole dataset if required. This will remove the label from all images containing it. To do this, click on the dropdown icon next to the label on the left hand side, and then click on the Remove Label option.

Each label has a colour associated with it. Whilst this colour is primarily for object detection and segmentation labeling. To change the colour of the label, click on the third icon next to the label name, and then select the new colour from the option list.

Changing the default label for the image
If you labeled your image with multiple labels, one of the labels will be surrounded in a white text box to represent that this is the default label. The default label is used if you are training a single-label classification model on images that have more than one label. To change which label is the default label, just click on the new label on the image that you would like it to default to. To change the default label on a number of images at once, select all of the images. Then, on the left hand side menu, click on the + icon next to the label you would like to choose as the default, and this will select this label as the new default for those images.

Selecting images for training


Topics covered:
  • The default platform's behavior - training on all images
  • Filtering images by label or by type
  • Selecting images for training manually

You can download video tutorial here

Video transcription:

The platform’s default behaviour - Training on all images
If you want to use all the images to train your model, just click on the ‘Train’ and then choose the type of model that you want to train. On the ‘Label Count’ section on the train model dashboard, it will show the number of each label to be included in the Training.
Filtering images by label or type

If you would like to train a model based on only certain labels, you can do so by filtering the images by label, using the ‘Filter by Labels’ on the left hand side.

Users are also able to filter labels by type, such as whether they are multi label or single label images.

Selecting images for training manually

Finally, you can select images for training manually, using the mouse and keyboard. Press and hold Ctrl when clicking on all images that you would like to include in the data set to train the model.

Make sure to collect at least 15 images per class before starting to train the model.

The ‘Select all images’ button on the bottom left is a great way to select all images but then unselect a handful of images not to be included in the training set. To deselect images, hold control and then click on the images.

Training a single-label classification model in detail


Topics covered:
  • Explanation of training parameters
  • The relationship of per-class and global performance statistics
  • Viewing and downloading predictions on train/validation sets
  • Analyzing the learning curves
  • Analyzing the confusion matrix
  • Using the model inside the platform or via REST API

You can download images used in this tutorial here

You can download video tutorial here

Video transcription:

Uploading and Labeling images
To train a single label classification model, first you need to upload and label your images.
Training your single label classification model
Click Train, and then choose Single-Label Classification. Before setting your model to train, you can choose your model name and train time, in minutes.
Advanced training parameters
If you switch to advanced view, you can set the Validation Set Size (%), Learning rate and Batch Size. Note: Batch size parameter is now removed. The images that you have chosen to train this model will be split into train and validation. You can decide this split using the Validation Set Size (%). The learning rate dictates the rate at which the model weights are updated during the training. The batch size decides how many images the model sees during each training step. You will be able to see the ‘Estimated training steps’ that the model will take, which is dictated by the training time you have set. You will also be able to see the ‘Estimated time to calculate ‘bottleneck’ features. This is completed on a GPU, so this will contribute towards your monthly time limit in your account.
The training process
Once you have set all of your parameters, click Start to begin training your model. You can track the progress of your model being trained at the top of the screen. Users are able to cancel the training / delete the model by clicking on the bin icon
Analyzing your model - Per-class and Global performance statistics
Click on ‘View training statistics’ to view the results of your trained model. The results are split into the Train and Validation results. Under ‘Train’, you can see the Label Count for images, as well as the Global statistics for accuracy, precision, recall and F1, as well as the per class statistics for Precision, Recall and F1 for the images that were used to train the model. In the ‘Validation’ section, it provides the same figures, but for images that were not used for training the model. Global statistics show the results for the whole dataset, whilst per class statistics are label specific. On the basic view, the global statistics are a weighted average of the per class statistics The most intuitive performance measure is Accuracy, however in some cases it is not the best measure, such as when the number of images for each label in the dataset is unbalanced. For these situations, we also provide three other performance measures, Precision, Recall and F1. You can see the definition for each statistic by clicking on the word.
Viewing and downloading predictions on train / validation sets
Users can see the actual predictions based on labels by clicking on the ‘Show Predictions’. A prediction is judged to be correct if the predicted class matches the label that was manually added by the user. You can filter the results to show only the correct or incorrect predictions. If you would like to download the predictions, you can do so by clicking on ‘Download Predictions’, which will download a .zip file that includes the resized images, ground truth labels, and the predictions.
Understanding your Best Model
Once the model has been trained, you can see the ‘Train time’ taken, as well as the time when the Best Model was saved at. The best model is chosen by the classification error on the validation set. If you switch to the advanced view, you can see more performance statistics such as the advanced parameters including Validation set size, learning rate and batch size.
Analysing the learning curve

In addition, you can see the validation curves which show a learning curve for accuracy, and a learning curve for cross entropy loss. The red line on the learning curves show when the best model was saved. The classification error that is used to decide the best model is the Cross entropy loss statistics.

The other advanced statistics you can see in advanced view include Cross entropy loss (where lower values are better) and Matthews Correlation coefficient which is shown as a percentage.

Additionally, for Precision, Recall and F1, you can view the statistics as Micro average, Macro average and Weighted average.

Analysing the confusion matrix
Finally, the confusion matrix, which shows how often images with one label are predicted to be a different label.
Using the model to make predictions

Once you are happy with your model’s performance, you can start to use it to make predictions on a new set of images. To do so, simply click on ‘Make a new Prediction’. Then, upload the images that you want to test. These images will automatically be tested, and a prediction for their classification will be generated. As there is no ground truth label to compare the prediction to, the model will list the predictions from highest to lowest, but all predictions will be the same colour. These new predictions can be downloaded in JSON format, or can be downloaded in groups sorted by the predicted label.

Users can also make predictions using your model using the REST API. For this, you will need the API token, the Project ID (both can be found under the user profile), and the model name. Note: the tutorial was filmed before the “Download offline model” feature was available.

Training a multi-label classification model in detail


Topics covered:
  • Uploading images from a folder
  • Uploading image classification labels
  • Including/excluding image labels from training
  • Analyzing multi-label predictions
  • Changing score thresholds for classification
  • Analyzing precision-recall curve
  • The definition of "best" and "last" model
  • Making multi-label predictions

The images used in this tutorial can be downloaded here

You can download video tutorial here

Thanks to our partners at conchology.be for kindly providing the images for this tutorial.

Video transcription:

Uploading and labeling your images

First, you will need to upload your images. To do this, you have three options. You can either upload the images individually, upload a folder of images, or upload a .zip file.

Optionally, you can label images during the upload process, however this can be skipped. Once you have uploaded the image, you can label them either using the tools on the left hand menu, or by uploading labels created previously using the ‘Upload Labels’ button. The file format for uploading the image labels is quite simple: you have the image file name in the first column and image labels in the rest of the columns.

Training your model
Once you have uploaded and labeled the images, you can start training the models. To do this, click on ‘Train model’ and then choose multi-label classification. From the basic view, you can choose the model name, as well as setting the train time, in minutes. The Label count shows the labels that will be included to train the model. You can select or unselect the tick boxes next to the labels if you do not want to include them
Advanced training parameters
If you are an advanced user, click on the advanced view to see extra parameters that you can set, including;
  • Use user-defined validation set
  • Validation set size
  • Learning rate
  • Batch size (Note: this parameter is now removed)
  • Positive prediction weight (Note: this parameter is now removed)
From the advanced view, you can also see the estimated training steps, estimated time to calculate ‘bottleneck’ features and user-defined validation set images
The training process
Once you are happy with the training parameters, set your model to start training by clicking ‘Start’. You can track the progress of the model training at the top of your screen.
Analyzing the model’s performance
After the model has been trained, you can view the model’s performance by clicking on ‘View training statistics’ from the “Trained models” menu. This table will have two sections, ‘Train’ and ‘Validation’. In the Train section, you will see;
  • The label count
  • Global statistics of Accuracy, Precision, Recall and F1
Show Predictions
You can also click ‘Show predictions’ to see the actual predictions for specific images, for either the train or validation set.
Understanding the score threshold for classification

For multi-label classification, as opposed to single-label classification, there is a minimum score threshold for predictions. If the prediction for the classification is above this minimum threshold, it is considered a positive prediction. If the prediction is below the threshold, it is considered a negative prediction.

You can sort your prediction images by either all, correct, incorrect, above threshold or below threshold.

A prediction is counted as incorrect if even one prediction is incorrect compared to the ground truth label, or if there is at least one prediction that does not match the label at all. In the basic view, you can only see the predictions that are above the threshold. In the advanced view, you can see all of the predictions, including those below the threshold.

If the predicted label is among the ground truth labels, the prediction is highlighted in green. If the predicted label is not amongst the ground truth labels, the prediction is highlighted in red.

When the predicted label is above the score threshold and it can be found among the ground truth labels, the prediction is considered to be correct. When the predicted label is below the score threshold and it cannot be found among the ground truth labels, the prediction is also considered to be correct.

Essentially, a ground truth label with a predicted score above the threshold and a non-ground truth label with a predicted score beneath the threshold are considered correct.

Remember that we use green color for ground truth labels and red color for non-ground truth labels, so all green predictions above threshold and all red predictions below threshold are correct. All green predictions below the threshold, and all red predictions above the threshold are considered incorrect.

The score threshold is calculated to maximise the model’s performance (F1 statistic) on the train set. If you are not happy with the threshold, you can set the threshold yourself in the advanced view.

Analyzing precision-recall curve

In the advanced view, you can see the precision-recall curve for your model. By default, this curve is showing statistics for all classes, however you can change this to show the precision-recall curve for specific labels.

On this curve, the intersection between the dashed red line and the precision-recall curve represents the response to the optimised score threshold. If you would like to change this threshold, uncheck the ‘Use optimised thresholds’ feature, and then you can enter your own threshold score in the box, or by clicking anywhere on the precision-recall curve. Once you have set the new threshold, the performance statistics will update. When setting your own score threshold, you want to choose as high a precision and recall as possible.

Please, not that the score thresholds change simultaneously both for train and validation sets. The new score thresholds are also represented by changed vertical dashes in the “View predictions” window.

If you want to set a uniform threshold for all classes, this can be achieved using the same method after you have chosen ‘All classes’ from the drop down menu. You will be presented with a yes / no box checking you want to implement this uniform classification. NOTE: this has been changed to “Set all” button.

Choosing between the ‘best’ and the ‘last’ model
Users are able to choose whether to use the ‘best model’ or to use the ‘last model’. We usually recommend using the ‘best model’ but if your dataset is small and lacks diversity, you might consider using the last model instead. This is because models are at risk of being ‘overtrained’ which means that the cross entropy loss starts to increase as you keep training.
Make new predictions
Finally, you can make new predictions using your model, by clicking on the ‘Make new prediction’ button. When you have uploaded your images, you can again choose whether to use the best model, and whether to use custom thresholds.
Downloading the results
You can download the results either as images grouped by predicted label (as a .zip), in JSON format, or in CSV format.

Training a model on one class tutorial


Topics covered:
  • How to train a classification model on one class
  • How to train multiple one-class classification models in an easy way

You can download video tutorial here

Video transcription:

How to train a model to recognise only one type of object or classification
A common scenario is that you want to train a model to recognise only one type of object or classification. You can train a SentiSight model to do this for you. A normal classification model will require you two use at least two labels, so you need to follow this specific guide.
Collect, upload and label your images

To begin, first you need a collection of images that have the relevant label that you want to detect / classify. You will also need to upload a group of ‘background’ images, which are images which do not have the object in the image. For the background images, try to use the same diversity of images that you would expect to have during the production usage of this model.

By having these background images, it allows you to start training a model as you have two classes.

Training your one class model
To start training your one class model, click train and then select Single-label classification, then start training your model. You can track the progress of the model along the top.
Analysing your model’s performance
Once the model has been trained, you can click ‘View training statistics’. From there, click on ‘Show predictions’ to see the predictions made on the uploaded images. It will classify the images either as your label, or as ‘background’.
Training multiple one-class classification models
Another use of this method is for exchanging a multi-label classification model by multiple two-class single-label classification models. By doing this you can often reach a better model accuracy. To use this approach, first set a background label, and then apply the background label to all images. The ‘background’ label will be added as a secondary label, rather than as the default. For single label classification, only the default label is used to train the model. Therefore, you will need to set the default label to background for all images apart from the label that you want to train for. The easiest way to do this is to first set the background label as the default for all images. To do this, click on the third button next to the plus or minus, next to the label. There, you will see an option to set this label as the default for all images. Now, set the label that you want to train on as the default for all of the images. All images that contain that label will now have that label as the default, whereas all others will keep with background as the default. You can now train your single label classification on two classes. By performing these steps for each class you will be able to train multiple single-label classification models instead of one multi-label classification model. This usually achieves a better accuracy, but at the expense of having to train and to use several models instead of one.

Use SentiSight.ai Image Classification for yourself

To get started using the SentiSight.ai Image Classification, simply register for a SentiSight.ai account and head over to the dashboard to get started!

Summary of Image Classification Model Pricing

SentiSight.ai is supported by a pay-as-you-go wallet based system that allows users to pay for only what they use, maximising flexibility and value for money. New users get €20 of free credits when you sign up for a SentiSight.ai account. Every user receives €5 a month of free credits for use on the platform. There is no need to enter your billing information to receive these free credits. Therefore, the SentiSight.ai platform can be completely free to use if you do exceed the €5 monthly free credit buffer.

The cost to train and use the Image Classification tool are as follows;

Train your Image Classification Model Pricing

 Pricing Range0-1,440 minutes1,441+ minutes
1 Minute Training Time0.048 – 0.06 EUR0.6 EUR / min0.048 EUR / min
Preprocess ImageCalculated as training time0.6 EUR / min0.048 EUR / min

Make Predictions Using your Image Classification Model

 Pricing Range1-10,000 Predictions10,001-100,000 predictions100,000+ predictions
Prediction0.0008-0.001 EUR0.001 EUR / prediction0.0009 EUR / prediction0.0008 EUR / prediction

Each user gets 5GB of disk space for free, with additional disk space available for 1 GB for 0.1 EUR / month.
For full details of SentiSight.ai’s pricing model, including project management features and extra disk space, please visit the Pricing Page.

For more information on how to download an offline version of pre-trained model, click herePlease contact us for a custom quote for a model download license.

If you are interested in a managed human workforce for image classification annotation, please, contact us.