Vision-Based Object Detection and Tracking Using Drone

Track an iRobot using a Tello drone with a custom-trained YOLOv5 deep learning model and centroid tracking algorithm

Project Overview

This project presents a vision-based object detection and tracking system that utilizes a Tello drone to track an iRobot as the target object. The system incorporates a custom-trained YOLOv5 deep learning model for accurate object detection in real-time, as well as a combination of centroid tracking and PID control algorithms to manage the drone's movement. The drone autonomously maintains a safe distance from the iRobot while following it through various environments.

A descriptive image of the project

Video Demonstration

Motivation and Project Applications

The motivation behind this project is the increasing need for efficient, versatile, and accurate object detection and tracking systems in various domains. The proposed vision-based object detection and tracking system has numerous potential applications, including surveillance, search and rescue operations, wildlife observation and research, inspection and monitoring, autonomous navigation, sports and entertainment, and retail and inventory management.

Objectives and Deliverables

This project is guided by two primary objectives:

  1. Implement an accurate object detection system for iRobot
  2. Combine the object detection system with a tracking system for accurately tracking the iRobot

The key deliverables resulting from this project include:

Installation and Usage

To use this project, follow these steps:

  1. Clone this repository to your local machine
  2. Install the required dependencies using pip install -r requirements.txt
  3. Launch the system using python main.py

You can also modify the system to track other objects of interest by adjusting the object detection model as needed.

iRobot image Tello drone image

Contributors

License

Code

You can find the source code for this project on GitHub:

Vision Based Object Detection and Tracking Using Drone

Data

iRobot Dataset

The iRobot dataset consists of images and annotations of the iRobot Roomba robot vacuum cleaner. The dataset includes a total of 1600 images, with 1200 images for training and 400 images for testing.

The annotations were created using the YOLOv5 annotation tool, and include bounding boxes and class labels for the iRobot Roomba object.

Image description

Data Augmentation

To increase the size and diversity of the training dataset, data augmentation techniques were applied to the iRobot dataset. The following data augmentation techniques were used:

Image description

Results

Object Detection Metrics

Here are the precision, recall, and F1 scores for the custom-trained YOLOv5 model:

Object Detection Performance Images

Here are sample images showing the object detection performance for each case:

Object detection case 1 Object detection case 1 Object detection case 2 Object detection case 1 Object detection case 3 Object detection case 1

Acknowledgments

We would like to thank our project advisor and colleagues for their support and feedback throughout the development process. We also acknowledge the contributions of the YOLOv5 and OpenCV communities, whose open-source software made this project possible.