PODROBNÝ POPIS ELEKTRONICKÉ PŘÍLOHY BAKALÁŘSKÉ PRÁCE
- Implementace modelu hlubokého učení pro segmentaci obratlů v CT datech

Model pro segmentaci obratlů je převzat od C. Payera a kol. ("Vertabrae localisation and segmentation with SpatialConfiguration-Net and U-Net"; https://doi.org/10.5220/0008975201240133). Byl zveřejněn již v roce 2019 v rámci VerSe’19 a následně znovu v roce 2020 s určitými změnami/vylepšeními. Je využíván a upraven zdrojový kód pro VerSe'20, který je dostupný na: https://github.com/christianpayer/MedicalDataAugmentationTool-VerSe.


KNIHOVNY A DALŠÍ SOUBORY KE STAŽENÍ:
Celý kód je psaný v Pythonu 3.10 v PyCharmu 2022.2.2 a využívány byly následující knihovny s těmito verzemi: tensorflow-gpu==2.11.0, tensorflow==2.11.0, SimpleITK==2.2.0, itk==5.3.0, scikit-image==0.19.3, tqdm==4.51.0, networkx==2.5, Pyro4==4.80, matplotlib==3.6.0 atd. Současně jsou také přiloženy soubory "requirements.txt" a "requirements.yml" pro nejednodušší získání všech využívaných balíčků a jejich verzí.

Do složky "docker\models" je nutné stáhnout devět natrénovaných modelů, které jsou pro odevzdání přílohy bakalářské práce velké. Odkaz na tyto modely: https://github.com/christianpayer/MedicalDataAugmentationTool-VerSe/tree/master/verse2020/docker/models.


DATA A SPOUŠTĚNÍ SEGMENTACE:
Data pro segmentaci obratlů páteře ve formátu NIfTI jsou ukládána do složky "verse2020_dataset\data", ve které je uložen jeden příklad (snímek "verse070"). Samotná segmentace probíhá spuštěním skriptu "MAIN_script.py" a výsledkem jsou segmentační masky ve formátu taktéž NIfTI ve složce "verse2020_dataset\results_christian_payer" a mezikroky jednotlivých kroků algoritmu ve složce "verse2020_dataset\tmp".

Dále je vytvořen skript "modification_for_chosen_data.py", který provádí segmentaci s modifikací u snímků uložených předem připraveném souboru. Tento soubor musí být předem vytvořen, například s použitím vyhodnocení úspěšnosti segmentace a její analýzy pomocí skriptů "evaluation.py" a "analysis_for_modification.py".

Pro spuštění segmentace na klinických datech ve formátu NIfTI s automatickým využitím či nevyužitím modifikace je vytvořen skript "clinical_data_MAIN_script.py".


DŮLEŽITÉ SOUBORY:
MAIN_script.py ... hlavní skript segmentace pro automatické načítání, zpracování a uložení dat

evaluation.py	... hodnocení úspěšnosti segmentace jednotlivých snímků
evaluation_analysis.py	... statistické hodnocení úspěšnosti segmentace

analysis_for_modification.py	... vytipování špatně vysegmentovaných snímků
modification_for_chosen_data.py	... skript pro modifikaci modelu

transform_data_dicom-nifti.py	... skript využitý pro transformaci klinických dat z DICOM do NIfTI
clinical_data_MAIN_script.py	... skript pro segmentaci obratlů z klinických dat využívající automatickou modifikaci


DALŠÍ SLOŽKY A SOUBORY:
docker		... soubory pro spuštění softwaru Docker (Docker Image)
	\models	... natrénované modely jednotlivých sítí
		\README_models.txt	... informace o natrénovaných modelech
interference	... soubory pro testování modelu segmentace
other			... soubory pro preprocessing dat
pickle		... soubory pro analýzu značení obratlů
training		... soubory pro trénovaní modelu segmentace
utils			... soubory pro postrocessing dat
verse2020_dataset\data	... složky se vstupními daty - CT snímky (eventuálně i jejich anotační masky)
				\README_data.txt	... informace o vstupních datech
			\tmp		... složky s mezikroky jednotlivých sítí
			\results_christian_payer ... složky s výstupními daty
			\setup	... analýza anotací a rozdělení dat
				\cv	... rozdělení dat na trénovací a validační


POZNÁMKA:
Všechny využívané cesty k souborům jsou přizpůsobeny tak, že složka "verse2020" je využívána jako pracovní adresář (cwd).
