The project is broken down 3 different folders: data, runs, src

IMPORTANT
--------------------------------------------------------------------------------------------------------------------------------
First thing that needs doing is bringing in the data folder from
https://drive.google.com/file/d/150se1gXV8pDdI4DNjxlyv9KeyCM0zk2Z/view?usp=drive_link 
to this project and insert it into the root folder as to have 3 folders under the root: data, runs and src
--------------------------------------------------------------------------------------------------------------------------------

1. The data folder includes all the datasets used for the project:
-original_dataset -> the non augmented dataset containing only clear images
-augmented_data -> only augmented images that come from the original_dataset
-augmented_dataset -> combines both the original_dataset with the augmented_data to provide a wide range of scenarios
-test_dataset -> non-augmented test dataset
-test_dataset_aug -> augmented dataset

2. The runs folder contains all the information about all the experiments. 
-train and train3 are non augmented models
-train2 and train4 are augmented models.
-The evalutaions were carried out of train3 and train4.

3. The src folder contain all the code needed to run experiments and evalutaions. The data augmentation code is in the data_prcessing folder
-To create a new augmented_dataset run the data_augmentation.py file, this will overwrite the augmented_data folder with new images. 
 Then run the combine_data.py file to combine the original_dataset with the augmented_data to overwrite the augmented_dataset.

-To create a new augmented test dataset run augment_test_data.py to overwrite the test_dataset_aug folder with new images.

-To train your own models run run_aug_model.py to create and train a new augmented model and run_original_model.py to create a non-augmented model.

-To test the models run evaluate_model_main.py changing which models you want to test at the top of the file. This will create evalute the 
 model accuracy, precision, recall and the f1_score. To get a more in depth report showing the evaluations for each class within the test folder
 run model_report.py