Sport classification using Convolutional NN and Tensorflow.
In this project we are going to build a sport-image classifier using TensorFlow and Keras. The idea is simple: create model that, given an image in which some sport is being played, is able to tell which is taking place.
The dataset chosen is this one from Kaggle, where there are labeled images of 22 different sports, which are:
0: 'badminton',
1: 'baseball',
2: 'basketball',
3: 'boxing',
4: 'chess',
5: 'cricket',
6: 'fencing',
7: 'football',
8: 'formula1',
9: 'gymnastics',
10: 'hockey',
11: 'ice_hockey',
12: 'kabaddi',
13: 'motogp',
14: 'shooting',
15: 'swimming',
16: 'table_tennis',
17: 'tennis',
18: 'volleyball',
19: 'weight_lifting',
20: 'wrestling',
21: 'wwe'
As a proof of concept, different approaches and architectures are tested and detailed in the notebook.
Finally, using Transfer Learning and ResNet50, an accuracy of 78% has been achieved.
- Python 3 (Compatible with all 3 subversions)
- Jupyter Notebooks
- TensorFlow
- Datasets provided by Kaggle and ImageNet
- Weights & Biases for tracking and logging the experiments
It is important, in order to follow the approach used in the research.ipynb
, to download the Sport Image Dataset from Kaggle and place the input
folder in the root of the project, along with the notebook.
You can find the same notebook integrated in Kaggle kernel, in this link.
- [1] Medium: Understanding of convolutional neural network
- [2] Medium: Sport image classification with Neural Networks
- [3] Towards Data Science: Image detection from scratch in Keras
- [4] Kaggle: Sportify
- [5] Medium: Differences between Inception, Resnet and Mobilenet
- [6] Towards Data Science: Understand and implement ResNet 50 with Tensorflow 2
Distributed under the MIT License. See LICENSE
for more information.
Ignacio Talavera Cepeda - LinkedIn Profile - [email protected]
Luis Rodríguez Rubio - LinkedIn Profile - [email protected]
Javier Mora Argumánez - LinkedIn Profile - [email protected]