Building Computer Vision Application Fast Without Any Coding

Simple, fast, and easy to deploy!

Sharan Kumar Ravindran
Geek Culture
7 min readAug 25, 2021

--

Image from Datature

Computer vision is a field in artificial intelligence that helps computers to understand digital images and videos. The advancements in the processing power of a computer have increased the scope of computer vision applications. Computer vision is now being utilized in,

  • Autonomous driving
  • Security and surveillance
  • Diagnosis of patients
  • Study of disease evolution
  • Inspections and predictive maintenance

Computer vision applications have started making an impact in many industries. It has in fact started reaching our homes through smart TVs, facial recognition, and home automation. Computer vision will play a key role in the future of mankind.

Implementation of computer vision applications has not been accessible to everyone. It required technical knowledge and a great deal of computing power. In this article, I am going to show you end-to-end implementations and deployment of computer vision applications using Datature. Most importantly without a single line of code or any high-end computing resources.

Why Datature?

Datature is an AI vision platform that allows users to annotate, train and deploy computer vision models quickly. Some of the functionalities that make it a better option are,

  • Fully web-based and allows for teams to build datasets together
  • Easy drag and drop functionality to create the workflow
  • Fastest AI-Assisted Labelling
  • Features to monitor and track the model performance
  • Runs on GCP and offers data encryption
  • Provides access to 30+ model architectures (FasterRCNN, EfficientDet, MaskRCNN)
  • Supports real-time applications

I have previously written scripts to implement computer vision applications. Though we do have access to many open source platforms, frameworks, and libraries. The implementation requires more technical knowledge and it does require a lot of computing power. It could easily take a couple of days to train a simple computer vision model without access to GPUs. There are few things involved in the implementation of computer vision models like,

  • Installation of computer vision libraries
  • Cuda Toolkit installation for faster computing
  • Image processing and transformations
  • Re-training of open source models

This makes the implementation of computer vision applications not accessible to non-technical folks.

Why not Other Tools?

Many alternative computer visions tools available in the market don’t perform well on large datasets. They do work well on smaller datasets but have challenges with real-life use-cases. Many other tools are not no-code, they do require manual intervention and some level of coding for implementation. Also, there are few tools that work well on a specific task but fail to support end-to-end implementations.

Using Datature

I will walk you through the end-to-end implementation of a computer vision application using Datature. I will use an image detection application for the purpose of this demo. I have used the following kaggle dataset. The problem here is to identify the planes in the picture. Below are few satellite images from the dataset.

Prepared by Author Kaggle dataset

The steps involved here would be,

  • Log in and create a project online
  • Upload images and annotations
  • Easy drag and drop functionality to create the workflow
  • Train Neural Network (NN) model and monitor performance
  • Generate and download the model
  • Make predictions using the web-based tool or one line command

First, if you already don’t have a login, sign-up for a free account using the following link. The free plan provides you,

  • Use of up to 1000 images
  • Export of up to 5 Neural network models
  • 500 minutes of GPU training per month

This is more than sufficient to test a number of use-cases.

Log in and create a project online

Once you have successfully created an account. Log in to the platform and create a project. Identify the type of problem you are working on and the content type. In this case, I am working on a plane detection use case, and the input I am going to pass is images. Hence I created a project with the details shown in the below screenshot.

Image by Author

Upload images and annotations

Once the project has been created, upload the training images and the annotation for the images. The annotations can be passed as a CSV file. It will help in training the model.

Image by Author

If there are any images with missing annotations then the tool would highlight those images. I used the annotator to check that the annotations have been uploaded correctly. This is also where teams and developers can annotate their datasets collaboratively using Datature’s inbuilt annotation suite which has Bounding-Box, Polygon Tools, Brush and even an AI-Labelling Tool dubbed IntelliBrush.

Image by Author

Easy drag and drop functionality to create the workflow

Once the images are uploaded with the annotation details. It is now time to create the workflow.

Image by Author

I created the following three steps with just a few right-clicks and selections.

  • Dataset
  • Augmentations
  • Model

The dataset nodes capture the details about how the data need to be split between train and test. The augmentation node includes details for creating duplicate images which help to increase the number of images in the training dataset. There is a library of 30+ augmentation provided at no extra cost. This is very useful when the input data is small and does have much variety. Below is a screenshot from the augmentation preview with some images generated by the augmentation functionality by selecting Preview Augmentation.

Image by Author

The final step is the model selection, there are a number of combinations available to choose from.

Train Neural Network (NN) model and monitor performance

There are some good options for the model selection. I had chosen MobileNet with 2 images per batch.

Image by Author

As shown above, the performance of the model can be monitored as they are being executed. Depending on the size of the dataset it usually takes few minutes to a few hours. There are options to chose the hardware and its processing power. In this example, since the dataset included only 400 training images I had chosen 1 x NVIDIA K80 as the GPU, and configured the training to run for 2000 epochs.

There’s also an option to choose your checkpoint strategy which helps the system decide which checkpoint to export at the end of your training. For this, I opt for the Lowest Validation Loss option.

It took slightly more than 10 mins and the model was ready for use. Below is a screenshot of the metrics that were monitored while the model was being trained.

Image by Author

Generate and download the model

After completion of model training, the trained model will be available in the Artifacts. Once the model is generated it can be downloaded and for making the predictions. Alternatively, the model key can also be used for making predictions when loading the model with Datature Hub or Portal.

Image by Author

Make predictions using the web-based tool or one line command

The predictions can be made using a simple web-based tool called Portal or their open source scripts can be used. This model can be deployed in mobile phones, IoT devices, and more. The below screenshot shows the model inference from the Portal tool.

Image by Author

The detail for using the portal can be found here. The prediction scripts here can be used for calling the model and making predictions with just a single line code.

Want to get started?

If you’re considering diving into the field of computer vision or already work with a team of engineers and want to streamline your work, sign up for a free account now and take a guided walkthrough to launch your first model! Datature is extremely user-friendly and don’t worry if you’re not entirely sure about deep learning models as there is substantial documentation to guide you every step of the way. They’ve even got a community slack if you face any difficulties!

To stay connected

--

--