Person Follower

General Description

The Person Follower is a real-time tracking system designed to detect and follow individuals in video streams. It utilizes YOLOv8 for object detection and either BoTSORT or ByteTrack algorithms for multi-object tracking with optional ReID (re-identification) features. The system processes data from RealSense depth cameras to accurately locate and track persons, calculating their position, distance, and angle relative to the camera. The component is containerized with Docker for easy deployment and offers both tracker and follower services with RESTful APIs for integration with robotic systems.

Resource Link
Source code https://gitc.piap.lukasiewicz.gov.pl/ai-prism/wp4/ai-based-perception-modules/person-follower
Demo Video KEBA%20AGV%20FollowMe/demo/followme_demo_keba_session3.mp4

Contact

The following table includes contact information of the main developers in charge of the component:

Name Email Organisation
Dorin Clisu dorin.clisu@nttdata.com NTT Data Romania
Iulia Farcas iulia.farcas@nttdata.com NTT Data Romania

License

Proprietary.

Technical Foundations

Integrated and Open Source Components

Overview

The Person Follower component integrates several open-source libraries to provide robust person detection and tracking functionality. It primarily uses YOLOv8 for object detection coupled with BoTSORT/ByteTrack for tracking. The system leverages PyTorch and TorchVision for deep learning capabilities, FastAPI for API endpoints, OpenCV for image processing, and Hailo for hardware acceleration. Additional libraries include data-middleware for messaging, pandas for data analysis, and Runner-with-API for service management.

Pre-existing Components

YOLOv8 (Ultralytics)

Source

YOLOv8 is developed by Ultralytics. https://github.com/ultralytics/ultralytics

Description

YOLOv8 is a state-of-the-art object detection model that provides fast and accurate detection of objects in images and video streams.

Modifications

None, except fine-tuning a model on MOT17 dataset.

Purpose in AI-PRISM

Provides the core person detection capability needed for the tracking and following functionality.

License

AGPL-3.0 License - https://github.com/ultralytics/ultralytics/blob/main/LICENSE

Bot-SORT

Source

Bot-SORT: https://gitc.piap.lukasiewicz.gov.pl/ai-prism/libraries/bot-sort.git

Original Bot-SORT: https://github.com/NirAharon/BoT-SORT

Description

BoTSORT is a tracking algorithm that maintain identity consistency across video frames.

Modifications

Some modifications were required to make it run in a containerized environment, and also to accelerate the inference using Hailo AI.

Purpose in AI-PRISM

Provides consistent tracking of individual persons across frames, enabling the following functionality.

License

MIT License (for the original ByteTrack)

FastAPI

Source

FastAPI: https://github.com/tiangolo/fastapi

Description

FastAPI is a modern, high-performance web framework for building APIs with Python.

Modifications

None.

Purpose in AI-PRISM

Provides the API interface for the tracker and follower components, enabling integration with other systems.

License

MIT License - https://github.com/tiangolo/fastapi/blob/master/LICENSE

OpenCV

Source

OpenCV: https://github.com/opencv/opencv

Description

OpenCV (Open Source Computer Vision Library) is an open-source computer vision and machine learning software library.

Modifications

None.

Purpose in AI-PRISM

Used for image processing, visualization, and camera integration.

License

Apache 2.0 License - https://github.com/opencv/opencv/blob/master/LICENSE

PyTorch & TorchVision

Source

PyTorch: https://github.com/pytorch/pytorch TorchVision: https://github.com/pytorch/vision

Description

PyTorch is an open-source machine learning framework with TorchVision providing datasets, model architectures, and image transformations.

Modifications

None.

Purpose in AI-PRISM

Provides the deep learning backbone for the object detection and tracking models.

License

BSD License - https://github.com/pytorch/pytorch/blob/master/LICENSE

How to install

Every AI-PRISM component is installed using the Cluster management service. During the installation process, the user needs to configure a set of high-level parameters.

How to use

The Person Follower system has two main components: the tracker and follower services, with a ZMQ data pipeline and REST API for controlling the behavior. See http://localhost:8000/docs for the API documentation.