browningweb / table-tennis-computer-vision

Apply computer vision to table tennis for match / training analysis

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Description

The goal of the project is to apply computer vision with OpenCV, and maybe depth sensors like Kinect, to keep track of the score at table tennis. Furthermore, data analysis can be made to infer statistics about the players.

Installation

OpenCV 2.4

Mac OS X

brew tap homebrew/science && brew install opencv

The OpenCV is usually installed in /usr/local/Cellar/opencv/.

To use the Python bindings, you must create symlinks in the directory where Python is installed, usually in /Library/Python/2.7/site-packages/, pointing to the OpenCV directory.

sudo ln -s /usr/local/Cellar/opencv/2.4.11/lib/python2.7/site-packages/cv.py /Library/Python/2.7/site-packages/cv.py
sudo ln -s /usr/local/Cellar/opencv/2.4.11/lib/python2.7/site-packages/cv2.so /Library/Python/2.7/site-packages/cv2.so

Advancement

  1. First step: camera calibration
  2. Second step: distortion correction
  3. Third step: table lines detection
  4. Fourth step: ball tracking
  5. Fifth step: 3D position calculation with stereovision
    1. calibration

Distortion correction

Before After
before after

Table lines detection

Hough transform Rectangle detection Hough after k-mean
hough transform rectangle detection hough transform after k-mean

Ball tracking

ball tracking

About

Apply computer vision to table tennis for match / training analysis


Languages

Language:C++ 97.3%Language:Makefile 2.7%