#GP
title : online detection of key events in football matchessummary
- we removed crowd and detected playground using image processing techinques
- we detected the ball using its geometric features
- we detected the players using opencv's HOG classifier (terrible accuracy)
- we tracked the detected players using opencv's tracker and the "MIL" algorithm (great accuracy)
- we extracted key points using SURF and cluster the desciptors using SOM
- the vectors in the SOM form a kind of a visual language that allows us to make a bag of features for each image
- the used SOM had a 50x50 structre so we had 2500 "words"
- we collected a data set of 52000 images and labeled them
- we trained five backpropagation NN each to be abel to tell whether a certain event has occured or not untill each network had an accuracy of at least 80%
- we trained another network which takes the output of the previous 5 networks as input and outputs the correct label until its accuracy on testing data was 93%
- experimentation using PCA showed that we can achieve the same accuracy if we project each image representation (the 2500 vector from SOM) on a 140+ dimentional space
- don't push unless the whole project works correctly on your machine
- don't add external library files in the project .
- if you use an extenal library modify this document and add its name/link to the dependecies section along with a link/tutorial on how to install and use it
- media resources(images/videos) should be added in the drive folder (link below) with BOTH
- a note in the commit message
- and a comment in the code where it's used
- try to be as organised as possible
- write clear and clean code with comments
- if you choose to use an external library ,compare alternatives and choose the best in terms of quality and community support
note
- drive folder https://drive.google.com/drive/folders/0By6PnoxEQLnVZzdOMElIQlQ0bms?usp=sharing
- although lotfy said we should use python3 ,all the code he wrote so far is in python2.7 so we should stick to python2.7
- whenever we can we should use C++ or Java for peformence issues
dependencies/links:
- openCV
- library link : https://github.com/opencv/opencv
- tutorials : http://docs.opencv.org/2.4/doc/tutorials/tutorials.html
- BG-substraction Library : https://github.com/dparks1134/Background-Subtraction-Library
- joblib
- usage : to save models/objects to files and reading them back
- link : https://pythonhosted.org/joblib/
- sklearn
- qt-4