- Teoretická část
- přehled metod předzpracování obrazu (vylepšení obrazu, redukce šumu, prahování aj.)
- vylepšení kvality rentgenových snímků pomocí neuronových sítí
- obecné postupy augmentace dat
- Praktická část
- popis datasetu
- návrh metod vhodných pro předzpracování rentgenových snímků
- návrh a implementace specializovaných modelů neuronových sítí
- aplikace implementovaných metod a měření vlivu předzpracování na efektivitu učení segmentačních modelů
- zhodnocení výsledků
Tento repozitář obsahuje kód a data k diplomové práci zabývající se vlivem předzpracování obrazu a augmentace dat na segmentaci rentgenových snímků. Repozitář je strukturován následujícím způsobem:
- common/ - obsahuje pomocné funkce pro manipulaci s daty a pro vizualizaci.
- configs/ - konfigurace pro jednotlivé modely a metody.
- preprocessing/ - kód pro modely a metody předzpracování obrazu.
- results/ - výsledky experimentů.
- statistics_methods/ - statistické metody použité v projektu.
- unet/ - kód pro modely U-Net a jejich trénink.
- main.py - hlavní soubor pro spuštění experimentů a trénink modelů.
- poetry.lock a pyproject.toml - závislosti a nastavení projektu pomocí Poetry.
Tento projekt používá nástroj Poetry pro správu závislostí a virtuálního prostředí. Poetry usnadňuje instalaci všech potřebných knihoven a zajišťuje, že projekt bude fungovat konzistentně na různých systémech.
Pro nastavení projektu postupujte podle následujících kroků:
- Nainstalujte Poetry podle pokynů na oficiálních stránkách.
- Naklonujte tento repozitář:
git clone https://github.com/Cemonix/Impact-of-Preprocessing.git
cd Impact-of-Preprocessing- Nainstalujte závislosti pomocí Poetry:
poetry install- Aktivujte virtuální prostředí:
poetry shellPro spuštění hlavního souboru a zahájení experimentů použijte následující příkaz:
python main.pyHlavní soubor (main.py) slouží jako centrální bod pro spuštění různých experimentů a trénink modelů. Níže je popsáno, jak může uživatel soubor používat a jaké funkce obsahuje:
main.py obsahuje několik funkcí, které se zaměřují na různé aspekty předzpracování dat a trénink modelů:
-
create_dataset_main():
- Vytvoří dataset se zašuměnými snímky pro trénink a testování.
-
apply_model_and_create_dataset():
- Použije vytrénovaný model pro odšumění snímků a vytvoří dataset s odšuměnými snímky.
-
apply_ensemble_and_create_dataset():
- Aplikuje metodu ensemble averaging na snímky a vytvoří dataset s odfiltrovanými snímky.
-
train_unet_model():
- Trénuje model U-Net pro binární segmentaci plicních snímků.
-
test_unet_model():
- Testuje vytrénovaný model U-Net na zvolených snímcích.
-
train_multiclass_unet_model():
- Trénuje model U-Net pro vícetřídní segmentaci zubních snímků.
-
train_preprocessing_model():
- Trénuje modely pro redukci šumu (např. DnCNN, DAE).
-
test_preprocessing_model():
- Testuje vytrénovaný model pro redukci šumu na zvolených snímcích.
-
test_noise_transforms():
- Testuje různé transformace šumu na snímcích.
-
test_standard_preprocessing_methods():
- Testuje standardní metody předzpracování snímků.
-
test_preprocessing_ensemble_method():
- Testuje metodu ensemble averaging pro předzpracování snímků.
-
measure_metrics_for_images():
- Měří metriky (např. PSNR, SSIM) pro odšuměné snímky.
-
measure_noise_std():
- Odhaduje směrodatnou odchylku šumu ve snímcích.
-
plot_mlflow_runs_metrics():
- Zobrazuje metriky z experimentů uložených v MLflow.
-
Nastavení projektu:
- Před spuštěním experimentů je nutné nastavit virtuální prostředí a nainstalovat všechny závislosti pomocí Poetry.
-
Spuštění experimentů:
- Každá funkce v
main.pypředstavuje konkrétní experiment nebo krok v předzpracování dat. Pro spuštění konkrétní funkce je třeba ji odkomentovat v částiif __name__ == "__main__":a spustit soubor.
- Každá funkce v
-
Příklad spuštění tréninku modelu U-Net:
- Pro trénink modelu U-Net odkomentujte
train_unet_model()a spusťte hlavní soubor:poetry run python main.py
- Pro trénink modelu U-Net odkomentujte
-
Použití MLflow:
- Pro sledování experimentů a jejich metrik použijte MLflow. Spusťte MLflow pomocí:
mlflow ui
- Po spuštění tohoto příkazu bude MLflow UI dostupné na
http://localhost:5000, kde můžete procházet a analyzovat všechny experimenty provedené v rámci tohoto projektu.
- Pro sledování experimentů a jejich metrik použijte MLflow. Spusťte MLflow pomocí:
Tento průvodce poskytuje základní přehled o tom, jak používat hlavní soubor main.py k provádění různých experimentů a tréninku modelů v rámci projektu. Podrobnosti o jednotlivých funkcích a jejich parametrech lze najít přímo v kódu souboru.