AI & ML Tutorials

Artificial Intelligence & Machine Learning

AI is a bigger concept to create intelligent machines that can simulate human thinking capability and behavior, on the other hand, machine learning is an application or subset of AI that allows machines to learn from data without being programmed explicitly.

Deep learning (also known as deep structured learning) is part of a broader family of machine learning methods based on artificial neural networks with representation learning. Learning can be supervised, semi-supervised or unsupervised.

Artificial intelligence is a technology using which we can create intelligent systems that can simulate human intelligence.

Machine learning is a subfield of artificial intelligence, which enables machines to learn from past data or experiences without being explicitly programmed.

Deep learning is a class of machine learning algorithms that uses multiple layers to progressively extract higher-level features from the raw input. For example, in image processing, lower layers may identify edges, while higher layers may identify the concepts relevant to a human such as digits or letters, or faces.

On this site, you will find tutorials to get you started with the real-world applications of Computer Vision and Machine Learning.

Image Classification vs Object Detection

In Image Classification, we have one label per image while for object detection, we can have single or multiple labels per image as demonstrated below.

There are 3 types of detectors for deep learning-based object detection in machine learning.

  1. RCNN (Region-Based Convolutional Neural Networks) and its variants.
  2. YOLO (You Only Look Once)
  3. SSD (Single Shot Detectors)


Get started with the process of training a Machine Learning model



Custom Object Detection

Train a YOLOv4 custom object detector

YOLOv4 vs YOLOv4-tiny (Custom object detectors)

Train a YOLOv4-tiny custom object detector


Custom Object Detection



Install and run YOLOv4-Darknet on Windows

Train a custom YOLOv4 object detector on Windows

Train a custom YOLOv4-tiny object detector on Windows

Install and run YOLOv4-Darknet on Linux

Train a custom YOLOv4 object detector on Linux

Train a custom YOLOv4-tiny object detector on Linux


For Object Detection

Train an SSD Model for object detection using Google Colab (TensorFlow 1.x)

Train an SSD Model for object detection using Google Colab (TensorFlow 2.x)

For Image Classification

Train an SSD Model for image classification using Google Colab (TensorFlow 2.x)

Train a model for custom Image Classification using Teachable-Machine and test it online


In Mobile ML or Mobile machine learning the Model training still generally happens on server-side ML frameworks (like TensorFlow, PyTorch, etc), while model inference takes place on-device.

Some examples of machine learning on mobile devices are as follows:

  • Gesture recognition
  • Speech recognition
  • Computer vision and image classification
  • Translation from one language into another
  • Autonomous vehicles, drone navigation, and robotics

There are various toolkits available for Mobile ML now, such as:

  • Google (ML Kit, TensorFlow Lite)
  • Apple (Core ML, Create ML, Turi Create, Core ML Tools)
  • Facebook (PyTorch Mobile)

What is TensorFlow Lite?

TensorFlow Lite (TFLite) is a lighter version of Google’s open-source machine learning framework, TensorFlow. The lightweight solution, TensorFlow Lite is uniquely designed to run machine learning models on mobile, embedded, and IoT devices. It works with a huge range of devices, from tiny microcontrollers to powerful mobile phones. In addition, it enables on-device machine learning inference with low latency and small binary size.

TensorFlow Lite consists of two main components:

  • The TensorFlow Lite interpreter, which runs specially optimized models on many different hardware types, including mobile phones, embedded Linux devices, and microcontrollers.
  • The TensorFlow Lite converter, which converts TensorFlow models into an efficient form for use by the interpreter, can introduce optimizations to improve binary size and performance.

Machine learning at the edge

TensorFlow Lite is designed to make it easy to perform machine learning on devices, “at the edge” of the network, instead of sending data back and forth from a server. Consequently, for developers, performing machine learning on-device can help improve:

  • Latency: there’s no round-trip to a server
  • Privacy: no data needs to leave the device
  • Connectivity: an Internet connection isn’t required
  • Power consumption: network connections are power-hungry

(To read more on TFLite, go to its official page here.)

TFLite on Mobile Devices

TFlite models can be deployed on mobile devices, such as Android, iOS, Raspberry Pi, and other IoT devices. We can build apps with machine learning modules using the TFLite model. This is done in 3 steps:

  1. Train a Deep Learning model for object detection, image classification, text recognition, speech recognition, gesture recognition, etc.
  2. Convert the trained Deep Learning model to a TFLite model.
  3. Deploy the TFLite model on a mobile device.

Currently TFLite supports only SSD models (excluding EfficientDet)

(NOTE: You can choose any model from the TF1 & TF2 model zoo for training here. Moreover, you can also download TFLite models from the TensorFlow Hub. To learn more about TensorFlow and TensorFlow Lite go to its official page here. )


For Object Detection

Build Android app for Object Detection (TensorFlow 1.x)

Build Android app for Object Detection (TensorFlow 2.x)

For Image Classification

Build Android app for Image Classification (TensorFlow 2.x)

Build Android App for Custom Image Classification using Teachable machine




Support my YouTube channel and website below:

Upcoming Blogs and Videos

For Windows and Ubuntu on your local machine to Google-Colab and Teachable-Machine in the cloud, more AI and ML tutorials every week.