---
title: "Table Tennis Analyzer"
description: "A computer-vision pipeline that watches a table tennis match and reports on it."
canonical: "https://roeesivan.com/projects/table-tennis-analyzer"
last-updated: "2026-08-27"
---

# Table Tennis Analyzer

> A computer-vision pipeline that watches a table tennis match and reports on it.

URL: https://roeesivan.com/projects/table-tennis-analyzer
Year: 2026

## Overview

Feed it a match video and it returns an annotated render plus analytics. It tracks both players with YOLOv8 pose estimation, detects and speed-measures the ball through a hosted detection model, and reads the scoreboard with OCR behind a monotonic-score validator that rejects impossible readings. Outputs include player heatmaps, a score progression chart, a shot-placement map and a fastest-shot highlight clip.

## What makes it interesting

- YOLOv8n-pose player tracking with close-up, crowd and referee frames filtered out
- Ball detection and per-frame speed in km/h via a Roboflow-hosted model
- EasyOCR scoreboard reading gated by a monotonic-score validator
- Generates heatmaps, score chart, shot-placement map and an auto-cut highlight clip

## Technology

- Python
- YOLOv8
- Ultralytics
- OpenCV
- EasyOCR
- Roboflow
- Matplotlib

## Links

- Source (source): https://github.com/RoeeSivan/Table-Tennis-Analyzer

## Trailer

Video: Table Tennis Analyzer, pipeline walkthrough - https://youtu.be/HT1j_05tPi4

A pass through the whole pipeline: pose tracking, the geometry gate that throws out close-ups and replays, the rally supercut, scoreboard OCR behind its validator, and the analytics. For this reel the ball was re-detected on every frame rather than every tenth, and the scale was measured off the table, which is what makes the speed figure worth reading.

## Every project

All projects: https://roeesivan.com/projects
This project as JSON: https://roeesivan.com/api/v1/projects/table-tennis-analyzer
