Offline Tennis Player Tracking and Video Annotation

System type :

Computer Vision • Video Analysis • Offline Processing

Role :

Prototype Design • Model Integration • Tracking Logic Implementation

Industry

Broadcast sport and journalistic

Client

Media Solutions

This project focused on developing an offline video analysis prototype for tracking a single tennis player in recorded match footage. The goal was to extract a stable visual representation of the far-side player and generate structured metadata and annotated video outputs suitable for post-match analysis and broadcast-related workflows.

The system processes pre-recorded tennis match videos (non-live) and requires a manual rectangular ROI (Region of Interest) selection per video to define the far-side court area. Within this ROI, an AI-based person detection model (YOLO, detection-only mode) is used to identify the target player. Instead of relying on generic multi-object tracking, the prototype applies a domain-specific identity locking mechanism to maintain consistent tracking of the same player throughout the video.

Player identity stability is ensured by combining spatial distance constraints, vertical position consistency, and bounding-box size stability rules. This approach minimizes identity switching and visual jitter, prioritizing reliable and clean results over raw frame-rate performance. Each processed frame includes the ROI visualization, player bounding box, positional coordinates, and a confidence score indicating detection reliability.

The system generates multiple outputs, including a fully annotated video and a fixed-resolution cropped video containing only the tracked player. These outputs are designed for integration with downstream tools such as video mixing or post-production analysis software.

Key Features :
  • Offline batch processing (no real-time dependency)

  • Manual ROI selection per video

  • Single far-side tennis player detection and tracking

  • Stable, locked bounding box across the entire video

  • Confidence scoring per frame

  • Annotated full-video output

  • Fixed-resolution cropped player-only video

  • Local Python-based prototype application

Request a demo

What's inside