ZELENÝ, O. Analýza dopravního provozu s využitím strojového učení [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2022.
Předložená diplomová práce se zabývá problematikou klasifikace dopravních prostředků ve snímcích videosekvence a následným zpracováním obrazových dat. Práce je psána v anglickém jazyce v systému LaTeX s minimem formálních chyb. Pro potřebu snímání reálné scény byl sestaven systém s platformou Jetson Nano a vhodnou kamerou. Systém byl vyzkoušen na několika (třech) dopravních scénářích. Podstatou práce byl vývoj skriptů v jazyce Python a přestože celý projekt obsahuje několik tisíc řádků, teprve v průběhu letního semestru student přešel na verzovací systém a zálohování dat, které je pro podobný projekt nezbytné. Během první poloviny letního semestru tak byly řešeny okrajové problémy s nefunkční verzí kódu bez možnosti snadného návratu k dřívější, fungující verzi. Vzniklo tak velké časové zpoždění, které se nepodařilo před odevzdáním závěrečné práce zcela dohnat. Nebylo tak provedeno detailní testování modelu, ani plnohodnotné vytěžení obrazových dat, nebo archivace důležitých parametrů na cloudovém serveru. Rovněž forma zdrojových souborů byla dle konzultací upravena jen částečně. Zde se především jedná o nedostatečné/chybějící komentáře ke všem třídám, modulům a funkcím, bez nichž je kód velmi obtížně přenositelný. Rovněž nebyly plně dodržovány Coding standardy jazyka Python, definované v PEP 8 (PEP 8 – Style Guide for Python Code), přestože jsou snadno kontrolované např. nástrojem Flake8 (Flake8: Your Tool For Style Guide Enforcement). Oceňuji, že se student s částí svého projektu zúčastnil finále soutěže Student EEICT, které pořádalo FEKT VUT v dubnu 2022. Dále oceňuji snahu studenta vylepšovat spolehlivost detekce, i když ideální výsledek nebyl dosažen. Práce samotná je na solidní technické úrovni, ale při detailním zkoumání odevzdaných zdrojových kódů bylo zjištěno, že část kódů studenta byla velkou mírou inspirována ukázkovými příklady od autorů sítě YOLO (např. detect.py, train.py, …). Apriori to není špatně, protože konkrétní licence GNU General Public License v3.0 (https://github.com/ultralytics/yolov5/blob/master/LICENSE) to umožňuje, ale pouze při dodržení stejné licence a uvedení zdroje, což se v tomto případě nestalo. Bez uvedení zdroje původu není také možné jednoznačně identifikovat, jak velkou část kódu student vytvořil a co bylo převzato. Domnívám se, že toto jsou závažné prohřešky a měly by být opraveny.
Ve své diplomové práci se Bc. Ondřej Zelený zaměřil na detekci vozidel ve videosekvencích s využitím umělých neuronových sítí. Na základě krátké rešerše zvolil architekturu sítě YOLOv5, kterou trénoval na existujících datových sadách a ověřoval na videosekvencích pořízených kamerou v terénu. Zadání práce je poměrně komplexní - zahrnuje mimo samotné detekce i odeslání a zpracování dat v některé z existujících platforem pro internet věcí. Rozsah práce je 42 stran čistého textu, z toho 20 stran je věnováno úvodní stati podávající přehled do strojového učení i jednotlivých nástrojů, které mohou být využity. Přehled zahrnuje poměrně mnoho témat, je však poměrně povrchní. Zcela chybí některé klíčové aspekty strojového učení, jako je například využití gradientů a zpětného šíření chyb pro učení, práce s trénovací, testovací a ověřovací množinou dat, problematika velikosti datové sady a s tím související přetrénování. Bez těchto informací, kterým se student v práci nevěnuje ani dále v textu, je zřejmé, že student využil techniky strojového učení bez hlubšího porozumění. Stejně tak motivace ke výběru konkrétní architektury YOLOv5 není dostatečně zdůvodněna. Očekával bych, že student vyzkouší více typů sítí a na základě složitosti, výkonnosti a náročnosti v konkrétní aplikaci zvolí tu nejvhodnější. Nejsou popsány konkrétní aspekty realizace (např. podrobný popis trénovacích a testovacích vzorů, využitá augmentace a její vliv na výsledky, apod.) V realizační části práce student předkládá sadu skriptů v jazyce Python s implementací sítě včetně práce s daty. Kód není příliš přehledný, často využívá velmi dlouhé funkce. Zásadní problém však vidím ve skutečnosti, že části kódu jsou převzaté bez uvedení zdroje (viz github.com/ultralytics/yolov5) a v rozporu s licenčními podmínkami zdroje. Není možné zhodnotit, jak velká část realizace je studentovým vlastním dílem a do jaké míry jde o adaptaci již existující práce. Odesílání a zpracování dat v IoT platformách není v práci řešeno vůbec, je pouze uveden stručný přehled možných platforem bez hlubších technických detailů a požadavků pro implementaci. Vzhledem k výše uvedenému a s přihlédnutím k pochybnostem o původnosti realizační části práce hodnotím práci stupněm F.
eVSKP id 141556