Medical labeling software for machine learning
ELMEDILAB-OVERVIEW-PL.mp4
The project consists of fully-featured web application which main purpose is to allow proper users to label medical images. The application gathers created annotations in order to use them for developing machine learning algorithms that require qualitative and meaningful data.
This software was evaluated by proper tests and System Usability Scale which estimated that the application is characterized by a high degree of usability.
Labeling visualized images | Bounding box type annotation generation |
Multiple types of files supported | DICOM, SEQ (thermal imaging FLIR cameras models: SC3000, A655SC, A320G), MP4, PNG, JPEG, JPG, BMP |
Exporting annotations | PASCAL VOC XML, COCO JSON, YOLO TXT |
Converting annotations formats | PASCAL VOC XML -> COCO JSON, PASCAL VOC XML -> YOLO TXT, COCO JSON -> YOLO TXT |
Additional | Managing users, managing submitted annotations, managing tasks and files within a given task |
Features availability differ for the normal user. The administrator has wider range of available features.
Python | Server-side role for processing the application data. |
Flask | Web microframework - handling routes, requests and responses. |
Jinja2 | Template engine for dynamic content loading. |
HTML5 | Client-side role for web pages construction. |
JavaScript | Client-side role for interacting with the application web pages. |
CSS, Bootstrap | Styling and designing repsonsive web pages. |
LANGUAGE | FILES | CODE LINES | COMMENT LINES | BLANK LINES | TOTAL LINES |
---|---|---|---|---|---|
Python | 33 | 2,038 | 830 | 463 | 3,331 |
HTML + JavaScript | 33 | 2,204 | 0 | 127 | 2,331 |
CSS | 4 | 487 | 7 | 88 | 582 |
XML | 1 | 27 | 0 | 0 | 27 |
FILES | CODE LINES | COMMENT LINES | BLANK LINES | TOTAL LINES | |
---|---|---|---|---|---|
export_convert | 4 | 560 | 160 | 105 | 825 |
task | 4 | 297 | 127 | 66 | 490 |
labeling | 3 | 300 | 123 | 60 | 483 |
seq_processing | 4 | 193 | 69 | 51 | 313 |
admin | 3 | 149 | 67 | 37 | 253 |
user | 4 | 133 | 54 | 30 | 217 |
auth | 3 | 129 | 22 | 20 | 171 |
main | 2 | 14 | 3 | 10 | 27 |
errors | 2 | 14 | 32 | 12 | 58 |
templates | 34 | 2,231 | 0 | 127 | 2,358 |
static | 4 | 487 | 7 | 88 | 582 |
71 | 4,762 | 844 | 681 | 6,287 |
All the requirements are included in this project in the following files: requirements.txt, Pipfile, Pipfile.lock.
Administrator credentials:
- login: admin
- email: admin@admin.com
- password: administrator
In the main project directory, in the command line, run the following commands:
pipenv shell
flask run
Navigate to the http://127.0.0.1:5000 in the browser.
Recommended browsers: Opera, Chrome.
Alternatively, the application can be run from the ELEMDILAB/app.py file (recommended for development purposes).
In order to get access to the prepared project documentation where all the functions included in this project are properly explained, navigate to the project's root directory (\ELMEDILAB) and in the command line run:
pipenv shell
pipenv run mkdocs serve
Navigate to the http://127.0.0.1:8000 in the browser.
Running prepared tests is possible by navigating to the project's root directory (\ELMEDILAB) and entering in the command line the following command:
pytest
The test raport is available in the /tests/results/pytest_report.html file.
Author: Agata Polejowska, Gdansk University of Technology