This repository allows you to evaluate a trained computer vision model and get general information and evaluation metrics with little configuration.
This repository allows you to evaluate a trained computer vision model and get general information and evaluation metrics with little configuration. You have to provide a labeled dataset that will be used as ground truths to assess the model based on the provided dataset. Moreover, you need to provide an inference API that will be used to infer on selected dataset.
You can use one of the inference API provided on BMW-InnovationLab.
You can use our BMW-Labeltool-lite to label your dataset. The images and labels can be used directly for evaluation.
The evaluation GUI support both Object detection and Image classification.
The app was tested with Google Chrome and it is recommended to use Chrome when training.
To check if you have docker-ce installed:
docker --version
To check if you have docker-compose installed:
docker-compose --version
If you neither have docker nor docker-compose use the following command
chmod +x install_full.sh && source install_full.sh
If you have docker ce installed and wish only to install docker-compose and perform necessary operations, use the following command
chmod +x install_compose.sh && source install_compose.sh
Go to gui/src/environments/environment.ts
and gui/src/environments/environment.prod.ts
and change the following:
url
: must match the IP address of your machine (Use the ifconfig
command to check your IP address . Please use your private IP which starts by either 10. or 172.16. or 192.168.)Go to gui/src/environments/environment.ts
and gui/src/environments/environment.prod.ts
and change the
following:
url
: must match the IP address of your machine (*Use the ifconfig
command to check your IP address . Please use your private IP which starts by either 10. or 172.16. or 192.168.*)environment.ts
environment.prod.ts
If you are behind a proxy:
<base-dir>/proxy.json
fileEnter the following command:
python3 set_proxy_args.py
The following is an example of how a dataset should be structured. Please put all your datasets in the datasets folder, under their corresponding type.
Alternatively, you can zip your dataset and upload it to the Evaluation GUI.
In both cases your dataset structure should be respective to the following folder structures:
├──datasets/
├──object_detection/
├──sample_dataset/
├── images
└── img_1.jpg
└── img_2.png
├── labels
├── json
└── img_1.jpg
└── img_2.png
├──datasets/
├──image_classification/
├── classification_dataset
├── cat
└── img_1.jpg
└── img_2.png
├── dog
└── img_1.jpg
└── img_2.png
each class_name folder is named based on the class name and contains the images of this class
To build the solution, run the following command from the repository's root directory
docker-compose -f build.yml build
To run the solution, run the following command from the repository's root directory
docker-compose -f run.yml up
After running the evaluation GUI you should have an instance of one of the desired inference API (the build and run of
these APIs are provided in the Readme.md
in those repositories)
After a successful run you should see something like the following:
If the app is deployed on your machine: open your web browser and type the following: localhost:4200
or 127.0.0.1:4200
If the app is deployed on a different machine: open your web browser and type the following: <machine_ip>:4200
Open your web browser and go to localhost:4200
To start any job we need to have an inference service added.
When adding an inference API url please make sure to avoid usinghttp://localhost:<port>
or http://127.0.0.1:<port>
To start a job we have to provide the dataset folder, or you can upload the dataset as a zip file.
After that you have to choose the inference service you want to use, and then you have to choose the appropriate evaluation metric like IoU grouping in case of object detection job type. IoU grouping parameter is used to discard linkage of wrong label between ground truth and prediction having IoU less than IoU Grouping
Batch results can be viewed during training, and after it's done. Detailed results are available to download once a job finishes as well.
You can obtain the output results via:
Download zip file containing the results
in the output
folder located in Evaluation GUI/output/<evaluation-job-name >
The output results obtained after the job is completed contain general and per label and error images
General Evaluation: this folder contains some graphs and excel file containing metrics
Per Label Evaluation:
Error Images: contains corrupted images
For detailed Information about the evaluation metric and graphs provided by the Evaluation GUI
please refer to the document attached with the repository.
For better understanding of the evaluation metrics please refer to the evaluation
metrics document
If you use this repository in your research, consider citing it using the following Bibtex entry:
@misc{sordievaluationtool,
author = {BMW TechOffice MUNICH},
title = {AI Evaluation GUI},
howpublished = {\url{https://github.com/BMW-InnovationLab/SORDI-AI-Evaluation-GUI}},
year = {2022},
}