ZSIDEK, A. Detekce povrchových vad a značení SMD součástek [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2024.
V diplomové práci měl student za úkol vytvořit a otestovat komplexní sadu úloh vizuální inspekce tantalových kondenzátorů, konkrétně detekci povrchových vad a také kontrolu správnosti laserového značení kusů. Tato práce je inspirovaná technologickými problémy při výrobě tantalových SMD kondenzátorů ve společností AVX, která vyrábí čtvrtinu světové produkce. Práci hodnotím jako středně náročnou. Diplomant pracoval velmi samostatně, v průběhu řešení zkoušel mnoho metod včetně “naivního” přístupu, jak sám diplomant popisuje. Takovéto iterace a cestu získávání vlastních zkušeností hodnotím velmi pozitivně. V rámci řešení byl k dispozici dataset čítající 40.000 snímků SMD kondenzátorů, které musel diplomant protřídit a anotovat. V datasetu bylo obsaženo jen 1.500 vadných kusů. Student bohužel nerozšířil dataset vadných kusů augmentací, čímž by mohl zajistit lepší trénování a úspěšnost. Každopádně student zvolil správné postupy pro segmentaci kondenzátorů, detekci i klasifikaci vad. Pro klasifikaci úspěšně využil předtrénovaný model YOLO v8. Všechny kroky popisuje velmi detailně, v řešení dílčích úloh bylo věnováno opravdu značné úsilí a tomu odpovídající čas – nejprve v Matlabu a po úspěšném odzkoušení byly metody implementovány v C# a následně „zabaleny“ do dynamické knihovny s definovaným rozhraním. Vzhledem k rozsahu práce a splnění všech bodů zadání tuto diplomovou práci doporučuji k obhajobě a hodnotím A/90.
Pan Zsidek vypracoval diplomovou práci na praktické téma detekce a klasifikace povrchových vad SMD součástek. Předložený dokument má 55 normostran (úvod-závěr) a se všemi náležitostmi 67. Je psaný ve slovenštině, proto jazykovou úroveň mohu posoudit hůře, přesto jsem narazila na několik zjevných překlepů a stylistických chyb. Po formální stránce je práce upravena správně a splňuje náležitosti diplomové práce. Vyskytují se jen drobné nedostatky (např. str. 18 – špatný index v sumě vztahu (2.1), odkaz na obrázek 1.2 číslovaný 2.2). Po grafické stránce bych vytkla jen vložení některých obrázků v nevhodném formátu, kdy se projevují artefakty komprese (např. str. 23). Prezentace sloupcových a řádkových součtů mohla být názornější při zachování stejného měřítka a zobrazením pod zdrojový obrázek, resp. řádkové součty orotované vedle obrázku. Za teoretické lze považovat 2. kapitolu věnující se základům zpracování obrazu (7 stran) a úvod kapitoly 4 popisující neuronovou síť YOLO a vyhodnocovací metriky (4 stany), zbytek dokumentu lze považovat za samostatné dílo autora. Vzhledem k velmi praktickému zaměření práce toto považuji za dostatečné a teoretickou část za relevantní k práci. Množství teorie odpovídá i seznam použité literatury čítající 14 odkazů. K práci s literaturou bych však měla výhrady. I když mi lichotí, že student důvěřuje informacím od svých kantorů, kapitola 2 měla být zpracována/ověřena i z jiných zdrojích, než jsou materiály k přednáškám předmětů vyučovaných na UAMT. V této kapitole jsou navíc některé reference špatně číslované (zdroje [6], [7] a [8]). Práce je uspořádána v logickém sledu. Po rozboru úlohy s popisem dodaných datasetů a druhů vyskytujících se vad si diplomant správně rozdělil celý problém na tři základní dílčí kroky – segmentaci kondenzátorů, detekci a klasifikaci vad a vyhodnocení popisu. Tohoto dělení se po teoretickém úvodu drží i v rámci následujících kapitol (kapitoly 3 až 5), což velmi usnadňuje orientaci v textu. U každého dílčího problému diplomant popisuje celý proces návrhu od prvotní myšlenky, přes testy, úpravy, nové cesty až po finální algoritmus včetně zhodnocení a definice omezujících podmínek. Jednotlivá zvolená řešení považuji za správná. Kondenzátor je nejdříve segmentován vhodným zřetězením klasických metod zpracování obrazu (kombinace vypozorovaných limitů polohy, hranových filtrů, prahování, amplitudové projekce apod.). Možná mohla být využita i orientace hrany (náběžná/sestupná – kraje kondenzátoru a vnitřní hrana polaritního pruhu) či relativně pevný poměr stran kondenzátoru. Detekce a klasifikace povrchových vad je řešena doučením sítě YOLOv8, kterému muselo předcházet náročné značkování jednotlivých vad. Student provedl několik experimentů: volby velikosti sítě (nano/medium), hyperparametrů, i úprav datasetu. Při popisu datasetu, případně při myšlence zvětšování vstupních obrázků by bylo dobré napsat průměrnou velikost vad na snímcích. Při augmentaci jak, kolikrát se dataset rozšíří. Pro porovnání by bylo vhodnější prezentovat výsledky nejen graficky (matice záměn a křivky precision-recall), ale i numericky pomocí uvedených metrik nejlépe přehledně v tabulce. Výsledky jsou ale dobře komentované včetně časové náročnosti učení i samotné inference. Stejně jako student si myslím, že nižší úspěšnost klasifikace může být do značné míry způsobena velkou podobností vad, která způsobovala komplikace a chyby již při samotném značkování. Identifikaci případné chyby návrhu by pomohla informace o počtu vad v celém datasetu (nejen snímků s jednou a více vadami) a především v jednotlivých kategoriích - zda jsou zastoupeny dostatečně a přibližně rovnoměrně. I vzhledem k, i pro člověka, obtížné klasifikaci si myslím, že mohla být vyhodnocena i úspěšnost samotné detekce vad. Nejdůležitější podle mě není klasifikace vad ani jejich přesná lokalizace, ale rozhodnutí, zda je kondenzátor dobrý nebo vadný (obsahuje kritickou vadu). Vyhodnocení popisu vychází z předurčených znaků (výrobní dávkou) definovaných šablonou a jejich vyhledáváním pomocí sumy čtverců odchylek na celém segmentovaném kondenzátoru. Okrajová omezení/selhání algoritmu popsaných studentem mohla být pravděpodobně potlačena omezením prostoru prohledávání. Zvolený základní postup je však podle mě správný. Ze zadání mi však není úplně jasné, zda neměla být vyhodnocována i kvalita potisku, viz Vady potisku na str. 14 – např. chybějící část pruhu, posunutí či zdvojení znaků apod. V šesté kapitole popisuje student vytvoření zadáním požadované DLL knihovny a pro demonstraci velmi přínosného uživatelského rozhraní. Výsledná aplikace je na přiloženém CD (ve formátu bez nutnosti instalovat vývojové prostředí) a umožňuje ověření výsledků všech dílčích kroků. CD dále obsahuje kompletní zdrojové kódy (vývojové v prostředí Matlab a finální v C#), vytvořenou knihovnu, naučený YOLO model a použitý dataset snímků i s labely. Předložená diplomovou práce pana Zsidka je celkově dobře zpracovaná a řeší zajímavou komplexní úlohu s řadou dílčích kroků a problémů. Student svými výsledky jistě prokázal inženýrské schopnosti, a proto práci doporučuji k obhajobě. Navrhované hodnocení C (77b) však podmiňuji vyjádřením vedoucího práce, zda nemělo být součástí i hodnocení kvality potisku. V takovémto případě bych navrhovala hodnocení snížit.
eVSKP id 160136