
# Model Card

## Overview

- **Model name:** Top 5 EPL Teams' Emblem Identifier
- **Model description:** Identifies the emblem of the top 5 English Premier League (EPL) teams from images using a convolutional neural network (CNN).
- **Authors:** Alif Al Hasan
- **Repository link:** https://huggingface.co/spaces/alifalhasan/epl-top5-emblem-classifier/tree/main
- **License:** MIT
- **Contact information:** alif.stu2017@juniv.edu

## Performance

- **Metrics:** Accuracy (100%)
- **Dataset:** Approximately 5,000 images of EPL team emblems, balanced across classes. Sources and preprocessing steps described in detail further below.

## Data

- **Training data:**
    - Size: 5,000 images
    - Class distribution: Balanced (1,000 images per class)
    - Sources: [English Premier League Logo Detection](https://www.kaggle.com/datasets/alexteboul/english-premier-league-logo-detection-20k-images)
    - Preprocessing: Resizing to 224x224 pixels, normalization
- **Potential biases:** Currently unknown biases in the dataset.

## Inference

- **Input:**
    - Format: JPEG or PNG images
    - Size: 224x224 pixels
    - Color space: RGB
- **Output:** Predicted class probabilities for each of the 5 EPL teams.
- **Inference API:** [https://huggingface.co/spaces/alifalhasan/epl-top5-emblem-classifier](https://huggingface.co/spaces/alifalhasan/epl-top5-emblem-classifier)
- **Usage instructions:** Simply upload an image of any of the EPL's top 5 team's emblem to get a prediction.

## Ethics

- **Potential biases:** The model may inherit biases from the training data, such as over- or under-representation of certain team emblems.
- **Mitigation strategies:** Further exploration of dataset biases and potential augmentation techniques to address them.
- **Ethical considerations:** 
    - Awareness of potential biases and limitations in the model's predictions.
    - Responsible use of the model, avoiding harmful generalizations or discrimination.
    - Respect for the rights and privacy of individuals and organizations associated with the EPL teams.

---


# Top 5 EPL Teams' Emblem Identifier
A simple and well designed web app to identify the emblem of the top 5 teams of **EPL(English Premier League)** namely **Arsenal, Chelsea, Liverpool, Manchester City** and **Manchester United**.


### Requirements
- [Python 3.11](https://python.org/)
- [NumPy](https://numpy.org/)
- [SciPy](https://scipy.org/)
- [Gradio](https://www.gradio.app/)
- [Tensorflow](https://tensorflow.org/)


### Table Of Contents
-  [Introduction](#introduction)
-  [Model Architecture](#model-architecture)
-  [Project Architecture](#project-architecture)
-  [How To Run](#how-to-run)
-  [License](#license)
-  [Contributor](#contributor)


### Introduction
A simple and well designed web app to identify the emblem of the top 5 teams of **EPL**. This model has been trained with a balanced dataset which contains almost **5k** images of the emblems of the teams.


### Model Architecture
The model utilizes a straightforward convolutional neural network (CNN) architecture, comprising the following layers:

1. **Convolutional Layer:**
   - 32 filters, each of size 3x3
   - ReLU activation function
   - Input shape: 224x224x3 (RGB images)
   - Extracts spatial features from input images.

2. **Max Pooling Layer:**
   - Pool size: 2x2
   - Reduces spatial dimensions for capturing more global features.

3. **Flattening Layer:**
   - Flattens the 2D feature maps into a 1D vector for input to dense layers.

4. **Dense Layer 1:**
   - 64 neurons
   - ReLU activation function

5. **Output Layer (Dense Layer 2):**
   - 5 neurons (matching the number of classes)
   - Softmax activation to produce probability scores for each class.

**Key Points:**
- Input image size: 224x224 pixels
- Optimizer: Adam with a learning rate of 0.001
- Loss function: Categorical crossentropy
- Performance metric: Accuracy

**Visual Representation:**
[Input image (224x224x3)] --> [Conv2D] --> [MaxPooling2D] --> [Flatten] --> [Dense 1] --> [Output Layer (Dense 2)] --> [Predicted class]


### Prject Architecture
```
├──  data
│    └── arsenal  - images of arsenal's emblem.
│    └── chelsea  - images of chelsea's emblem.
│    └── liverpool  - images of liverpool's emblem.
│    └── manchester-city  - images of manchester-city's emblem.
│    └── manchester-united  - images of united's emblem.
│
│
├──  model  
│    └── football_logo_model.h5  - generated model.
│ 
│
├──  src
│    └── classify
│        └── classify.py  - this module classifies the emblem from input image.
│    └── train
│        └── trainer.py  - this module trains the model.
│
│
├──  app.py - this module starts the app interface.
│
│
├──  LICENSE - license file of this project.
│
│
├──  README.md - readme file of this project.
│
│
├──  requirements.txt - list of required packages.
```

### How To Run
First, install dependencies   
```bash
# clone project   
git clone https://huggingface.co/spaces/alifalhasan/epl-top5-emblem-classifier

# install project   
cd epl-top5-emblem-classifier 
pip install -r requirements.txt
```

Next, download the dataset from [here](https://drive.google.com/file/d/1O5Mm-86AlUf5fUYf1NS8J_t22h7h_UbQ/view?usp=sharing). First unzip the folder. **dataset** folder contains **five** more folders. Copy them and paste into the **data** directory of this project folder.

Now train the model using this command:  
```bash
python src/train/trainer.py    
```

Finally, deploy the model using this command:  
```bash
python app.py    
```

### License
Distributed under the MIT License. See `LICENSE` for more information.


### Contributor
Alif Al Hasan - [@alifalhasan](https://huggingface.co/alifalhasan) - alif.stu2017@juniv.edu

Project Link: [https://huggingface.co/spaces/alifalhasan/epl-top5-emblem-classifier](https://huggingface.co/spaces/alifalhasan/epl-top5-emblem-classifier)
{"language": ["en"], "license": "mit", "library_name": "keras", "tags": ["sports", "soccer", "epl", "arsenal", "chelsea", "liverpool", "man city", "man united", "image-classification"], "metrics": ["accuracy"], "title": "EPL Top 5 Emblem Classifier", "emoji": "\ud83d\udcc9", "colorFrom": "blue", "colorTo": "purple", "sdk": "gradio", "sdk_version": "4.12.0", "app_file": "app.py", "pinned": false, "pipeline_tag": "image-classification"}
keras sports soccer epl arsenal chelsea liverpool man city man united image-classification en license:mit region:us