AI & ML Tutorials for Beginners
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 for practical applications on Machine Learning techniques so that you get 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.
- RCNN (Region-Based Convolutional Neural Networks) and its variants.
- YOLO (You Only Look Once)
- SSD (Single Shot Detectors)
Get started with the process of training a Machine Learning model
TRAINING YOLO MODEL
USING GOOGLE COLAB
Custom Object Detection
Train a YOLOv4 custom object detector
YOLOv4 vs YOLOv4-tiny (Custom object detectors)
Train a YOLOv4-tiny custom object detector
TRAINING SSD MODELS
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, and 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:
- Firstly, train a machine learning model for object detection, image classification, text recognition, speech recognition, gesture recognition, etc.
- Secondly, convert the trained model to a TFLite model.
- After that, 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. )
BUILD ML ANDROID APPS
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
YOUTUBE VIDEO TUTORIALS
You saved my day bro. Thank you.