KELBL, J. Adaptace centroid detektoru pro vícetřídní úlohy [online]. Brno: Vysoké učení technické v Brně. Fakulta strojního inženýrství. 2023.
Předložená diplomová práce popisuje vývoj a evaluaci techniky pro trénink a implementaci centroid detektoru objektů v obrazových datech. Teoretická část práce obsahuje rešerši mapující techniky využívané k tréninku neuronových sítí pro více třídní segmentace obrazu. Student v rámci realizace diplomové práce vytvořil jednu zcela novou datovou sadu, a další dvě existující sady anotoval pro potřeby své práce. Student tedy splnil všechny cíle uvedené v zadání diplomové práce. Kromě časově velmi náročné anotace dat student při řešení práce realizoval i řadu časově náročných experimentů, které sám navrhl, a navrhl i způsob jejich vyhodnocení. Aktivně konzultoval jak průběh experimentů, tak i tvorbu textu, který je díky tomu na velmi vysoké úrovni. Text je logicky strukturovaný a obsahuje všechnu nezbytnou teorii, včetně adekvátního matematického aparátu. V textu dodržuje všechny formální úpravy, včetně dostatečně informativního popisu obrázků. Vyhodnocení výsledků je vhodně navrženo, jejich diskuse je adekvátní, vytvořené závěry jsou odborné a úrovní odpovídají vědeckým pracím publikovaných v odborných časopisech. Grafická úprava práce je dobrá. V textu se občas objevují gramatické chyby, jejich výskyt však není příliš častý. Výstup práce je vysoce relevantní pro praktické aplikace, a získané výsledky umožňují publikaci navržené metody v některém z odborných periodik. Práci doporučuji k obhajobě a hodnotím ji známkou A.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Splnění požadavků a cílů zadání | A | ||
Postup a rozsah řešení, adekvátnost použitých metod | A | ||
Vlastní přínos a originalita | A | ||
Schopnost interpretovat dosažené výsledky a vyvozovat z nich závěry | A | ||
Využitelnost výsledků v praxi nebo teorii | A | ||
Logické uspořádání práce a formální náležitosti | A | ||
Grafická, stylistická úprava a pravopis | A | ||
Práce s literaturou včetně citací | A | ||
Samostatnost studenta při zpracování tématu | A |
Předložená práce je zdařilou implementací detektoru více druhů objektů v obraze založeného na konvolučních neuronových sítích. Některá uváděná fakta jsou poměrně základní definice a nemuselo by jim být věnováno tolik prostoru. Jsou definovány vzdálenosti mezi pixely: Eukleidovská, Manhattanská a Chebyshevova. V části 2.4.2, kde se vzdálenost mezi centriody používá, se však nespecifikuje, o kterou z nich se jedná. V implementaci funkce _neighbor_exists je použita funkce math.dist, která počítá Eukleidovskou vzdálenost. V části 2.1.1 je používán shodně identifikátor f pro funkci obrazu i digitálního obrazu. Autor vychází z reference [2], která dle mého názoru nevhodně definuje rovnici (3) z hlediska jasnosti matematického zápisu a doporučuji autorovi se jí v budoucnu vyhnout. Za vhodnější považuji formulace uváděné např. v publikaci Žára, Beneš, Sochor, Felkel: Moderní počítačová grafika. Zpracování obrazu se opírá významně o využití knihovny OpenCV, která není v textu práce přímo zmíněna. Autor uvádí "employs several machine learning tools". Výpis stromové struktury všech souborů projektu je uveden dvakrát, jednou v popisu implementace a podruhé v příloze. Domnívám se, že v příloze by stačilo. Příkaz pro vytvoření virtuálního prostředí "make venv" je nešťastně v textu rozdělen mezi stránku 71 a 72. Preferuji styl, kdy se příkazy uvádí v literatuře s promptem příkazového řádku a příkladem výstupu v samostatném výpisu. U referencí [4] a [5] se vyskytuje zdvojený podtitul. K implementaci mám následující výhrady. V modulu pojmenovaném localization_module se nachází pouze jedna jednořádková funkce, která vrací pozice jedničkových pixelů pomocí volání funkce argwhere z knihovny NumPy. To se domnívám si celý samostatný modul nezaslouží. Modul localization_map_generator zbytečně při každém použití funkce map_generator načítá z disku Keras model. Také označení generator mi přijde nešťastné, neboť v Pythonu jsou jako generátory označovány speciální objekty definované pomocí klíčového slova yield v těle funkce. Celkově detektor nejde nijak volat na nejvyšší úrovni, kterou je kód spuštěný, když je centroid_detector.py spuštěn jako hlavní skript (konstrukce __name__=='__main__'). Cesta k obrázku ani modelu se nedá předat programu na standardním vstupu, parametry ani proměnným prostředím; je požadována modifikace zdrojového kódu, což se nedá označit za uživatelské ani programové (API) rozhraní. Doporučuji celý detektor implementovat jako jeden objekt (pomocí class) a při jeho inicializaci načíst potřebný Keras model, který se bude používat při opakované inferenci. Je vhodné zachovat i spustitelnost samostatně, ovšem s nastavením pomocí parametrů z příkazové řádky anebo umožnit spustit jako službu na socketu. Přes tyto nedostatky je software funkční a části spojené s trénováním modelu jsou adekvátní. Prezentované výsledky např. na detekci různých druhů šupin ještěrky hodnotím pozitivně. Cíle byly splňeny. Práci doporučuji k obhajobě.
Kritérium | Známka | Body | Slovní hodnocení |
---|---|---|---|
Splnění požadavků a cílů zadání | A | ||
Postup a rozsah řešení, adekvátnost použitých metod | B | ||
Vlastní přínos a originalita | B | ||
Schopnost interpretovat dosaž. výsledky a vyvozovat z nich závěry | A | ||
Využitelnost výsledků v praxi nebo teorii | A | ||
Logické uspořádání práce a formální náležitosti | B | ||
Grafická, stylistická úprava a pravopis | B | ||
Práce s literaturou včetně citací | B |
eVSKP id 148890