KUŽELA, M. Detekce dostupnosti parkovacích míst na základě videa [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2024.
Práce je zaměřena do oblasti zpracování obrazových signálů, strojového učení a embedded systémů. Student navrhl a sestavil systém založený na jednodeskovém počítači Raspberry Pi s kamerovým modulem, který je schopen snímat scénu na univerzitním parkovišti mezi Technickou 10 a 12 a vyhodnocovat množství volných parkovacích míst. Student pracoval samostatně a většina konzultací se odehrávala každých 14 dní. Student byl schopen prostudovat dostupné podklady a sám řešit dílčí problémy. Navržený systém je i s ohledem na edge zařízení založen na principu vytyčení konkrétních oblastí v obraze (dohromady 32 parkovacích míst) a pomocí klasifikátoru určovat, zda je místo obsazené či volné. Omezený počet míst je dán širokoúhlostí použité kamery a lze jej rozšířit. Student využil dílčí projekt Smart Parkingu (je citován v textu práce i na GitHub repozitáři), který doplnil vlastním datasetem (dostupným na disku Googlu) a upravenými zdrojovými kódy. Dílčí části práce byly prezentovány na studentské soutěži Student EEICT 2024, kde v kategorii B3 – Industrial Automation, Transmission, Consumption and Diagnostics získal 2. místo a na mezinárodní konferenci MECO2024 (13th Mediterranean Conference on Embedded Computing). Pravděpodobně v důsledku osobních důvodů nebyly některé plánované kroky bakalářské práce zcela dokončeny. Jedná se například o studii vlivu počasí a snížených světelných podmínek na přesnost klasifikace, nebo online systém s navigací k nejbližšímu volnému parkovacímu místu. S ohledem na zvolenou metodu klasifikátoru, bylo rovněž upuštěno od detekování parkovacích `anomálií`. Aplikace je funkční v kanceláři vedoucího práce včetně online připojení prostřednictvím VPN a webového prohlížeče. Některé položky a volby online aplikace nejsou úplně srozumitelné a kromě histogramu obsazenosti parkoviště bych ocenil také archiv pořízených snímků pro další rozšiřování vytvořeného datasetu.
Student se ve své práci zabývá návrhem systému pro detekci obsazenosti a lokalizaci parkovacích míst na parkovištích s využitím metod umělé inteligence. V kapitole 1. se student věnuje popisu metod detekce obsazenosti parkovacích míst a základům hlubokého učení (konkrétně neuronových sítím) a uvádí několik populárních architektur neuronových sítí, které jsou často využívány v oblasti strojového vidění. Struktura této kapitoly je smysluplná, avšak obsah některých kapitol, a to zejména popisu konvolučních sítí a vybraných architektur konvolučních sítí, považuji za neadekvání a očekával bych zde detailnější popis principu konvolučních síťí a detailnější popis vybraných architektur, ideálně včetně obrázků. Student v kapitole 2. popisuje využité softwarové nástroje k tvorbě modelů neuronových sítí a dostupné datasety. Očekával bych zde odůvodnění proč byl využit právě Python a uvedené knihovny a dále porovnání nebo alespoň uvedení alternativních frameworků strojového učení, jako je například TensorFlow, který je mezi vývojáři také velmi populární. V kapitole 3. student popisuje sběr dat, tvorbu datasetu a modelů, a hardwarové řešení. Student uvádí informace o sběru dat pomocí mobilního telefonu a platformy Raspberry Pi, a popisuje kroky které bylo nutná vykonan aby obrázky ve výsledném datasetu byly jednotné z pohledu rozlišení a poměru stran. Dále zde student popisuje způsob a formát anotace obrázků s využitím vybraného nástroje. Popis tvorby různých konfigurací modelů je na dobré úrovni. V sekci 3.3, kde je řešeno hardwarová implementace systému není dostatečně oduvodněno zvolení platformy Raspberry PI a postrádám zde porovnání s jinými embedded platformami. Kapitola 4. se zabývá výsledky a jsou zde prezentovány jak trénovací tak testovací výsledky. Co se týče trénovacích výsledků očekával bych zde vizualizací trénovacích výsledků více modelů, nikoliv jednoho konkrétního modelu. Zároveň zde není uvedeno jaká chybová funkce (loss function) je použita a tudíž si čtenář nedokáže udělat představu o tom jak dobře natrénovaný daný model ve skutečnosti je. Testovací výsledky jsou již obsáhlejší a poskytují větší náhled na výsledky různých modelů. Výstupem jednotlivých modelů jsou ohraničující rámečky (bounding boxes) a pravděpodobnost že daná predikce je správná. K validaci se však rámeček nevyužívá a zda je auto uvnitř parkovacího místa se rozhoduje pouze na základě středu predikovaného rámečku a rámečku ohraničující dané parkovací místo. Dle prezentovaných výsledku se tento přístup zda býti dostačující i přes to že typicky se pro detekci objektu (v tomto případě aut) navíc predikce navíc filtrují na základě pravděpodobnosti a případně s využitím IoU - to je tedy uvedeno až v sekci 5.2.1 a není jasné proč nebylo využito při testování. Výsledky testování zahrnují metriku F1, v které bylo dosaženo skóre až 99%, což dle obrázku 4.4 odpovídá přesnosti okolo 97.5%. Struktura kapitoly 5 je velice zmatečná. Sekce 5.1 opět v nedostatečné míře rozebírá výběr hardwaru. Sekce 5.1.1 rozebírá vzdálený přístup pomocí VPN, a způsob jakým byl systém ovládan na dálku bez periferii. Následující sekce 5.1.2 velmi krátce popisuje umístění kamery a způsob upevnění - tento popis bych očekával v sekci 3.1, kde je popsán způsob tvorby datasetu. V sekci 5.3 jsou propsány softwarové výstupy. Sekce 5.2.1 popisuje vlastní knihovnu "ArgonPark" ale v odevzdaných souborech není knihovna jasně vidět. Dále je zde popsáno IoU (Intersection over Union), které do této sekce nezapadá a spíše bych tento přístup očekával v kapitole 4. Závěrečná část kapitoly se zabývá vizualizací a zpracováním dat pomocí webového serveru, do kterého jsou předávany data pomocí MongoDB databáze a který běží paralelně se samotným modelem. Práce je psaná anglicky což vidím jako plus. Vyskytují se zde gramatické chyby a místy i obsahuje nesmyslné či nejasné věty či sekce. Stylistiky práce je díky využití Latex šablony na dobré úrovni. Formát literatury je nejednotný a seznam literatury není v pořadí referencování v textu. Zdrojové kódy práce v projektu strukturovány přehledně, avšak samotný kód je místy nepřehledný a neřídí se standardy programování PEP8. Typickými chybami jsou příliš dlouhé řádky, chybějící mezery okolo operátorů a nejednotné zarovnání. Dále není na první pohled jasné jaké části kódu student napsal a jaké jsou převzaté z https://github.com/Eighonet/parking-research, na kterém je kód práce založen. U velké části kódu chybí komentáře, popis funkci/tříd a popis argumentů. Jako zásadní problém však vidím chybějící znění licenčních podmínek MIT licence v odevzdaných souborech, což je jednou z podmínek použití open-source kódu krytého touto licencí. Závěr: Student zadání práce z velké části splnil. Vytvořil systém založený na Raspberry PI V4 a kompatibilní kameře, avšak neuvádí odůvodnění výběru tohoto hardwaru ani alternativní platformy. Prezentace výsledků je místy nejasné a není zjevné proč bylo k testování využito tzv. centroidů namísto tradičních ohraničujících rámečků. Pro vizualizaci obsazenosti parkoviště student vytvořil webové rozhraní, které umožňuje přehledný náhled na parkoviště přímo skrze kameru monitorovacího systému. Webové rozhraní také umožňuje zadat požadavek na parkování, díky kterému může uživatel zjistit nejbližší parkovací místo. Takto funkcionalita však není v práci demonstrována, je pouze zmíněna. Poslední bod zadání - detekce anomálii v parkování v práci chybí. Text práce je stylisticky na dobré úrovni, avšak text je místy špatně čitelný, nejasný a některé podkapitoly do dané kapitoly vůbec nezapadají (například podkapitola 5.1.2). Jako plus vidím že je práce psaná v angličtině. Práce s literaturou by mohla být zlepšena. Citace nejsou jednotného formátu, nejsou řazeny chronologicky a vyskytují se zde i zatím neexistující publikace, včetně citování této bakalářské práce. Zdrojové soubory práce se zdají být funkční, avšak nenásledují stylistické standardy pro programování v Pythonu (PEP8) a nejsou dostatečně komentované. Není tedy jasné jak velkou část kódu student napsal a jakou převzal forknutého repozitáře. Jako zásadní problem však vidím chybějící znění licenčních podmínek MIT licence v odevzdaných souborech, kterou je kryt repozitář, na kterém je práce založena, což je škoda, protože studentův repozitář na GitHubu znění licenčních podmínek obsahuje. Uvedení licenčního znění je jednou z podmínek použití open-source kódu krytého MIT licencí. V textu práce je převzatý repozitář citován pouze skrze článek autorů daného repozitáře (repozitář obsahuje kódy tohoto článku). Vzhledem k výše zmíněným nedostatků práci hodnotím 68 body.
eVSKP id 159033