MATOUŠEK, Š. Registrace obrazových dat sítnice pomocí evolučních algoritmů [online]. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. 2024.

Posudky

Posudek vedoucího

Odstrčilík, Jan

Student Šimon Matoušek se ve své práci zabýval tématem využití evolučních výpočetních technik v oblasti registrace obrazů. Literární rešerše v kapitole 1 je z mého pohledu nedostatečná. Autor popsal základní koncept genetického algoritmu a evoluční strategie. K tomu použil pouze dvě citace. Na to navazuje kapitola „Popis oka, oční sítnice“, která koncepčně vůbec nezapadá do obsahu práce. Radil jsem studentovi, aby tuto kapitolu vypustil. Z mého pohledu měl student v rámci kapitoly 1 uvést literární rešerši na téma využití evolučních algoritmů pro účely optimalizace při registraci obrazu. To student prezentuje v určité míře až v kapitolách 4, 5, 7, nicméně uvedená rešerše je dost limitovaná. Přeskakování mezi kapitolami je značně nepřehledné. Ze samotného textu práce není vůbec zřejmé, které algoritmy student uvádí pouze v rámci literární rešerše a které skutečně prakticky realizoval a odzkoušel. V popisu algoritmů postrádám jakékoliv matematické vyjádření, ze kterého by uvedené algoritmy vycházely. Zejména u algoritmů založených na simulaci chování rojů je matematická definice docela stěžejní záležitost. Text práce je v mnoha ohledech nepřesný. Některé věty si navzájem odporují. Ocenil bych techničtější vyjadřování. Při čtení práce může čtenář nabýt dojmu, že autor tématu rozumí jen okrajově a plete si základní pojmy. Funkčnost odevzdaných algoritmů je k diskusi. Například, u genetického algoritmu si nejsem vůbec jistý, zda bude program fungovat. V odevzdaném kódu se zdá, že úplně chybí blok selekce jedinců, což je stěžejní prvek zaručující správné chování genetického algoritmu jako celku. V rámci registrace dynamických snímků sítnice (tj. retinálních videí) měl student provést registraci jednotlivých snímků ve videu, aby docílil odstranění pohybového zkreslení. Výsledek měl student zobrazit jako průměrný obraz vytvořený průměrem všech snímků ve videu a zhodnotit jeho ostrost. Takto mohla být kvalitativně zhodnocena úspěšnost registrace daného videa. Při pohledu na odevzdaný skript se však zdá, že je ostrost snímku uměle vylepšována pomocí Matlab funkce „imsharp“ a výsledek tak nezávisí pouze na výsledku registrace. Prezentace výsledků je celkově nepřehledná. Jako příklad lze uvést titěrné zobrazení výsledků registrace pomocí šachovnicového zobrazení s nahuštěnými čtverečky, kdy není vůbec poznat, zda je metoda funkční či nikoliv. Přehlednost snižuje i umístění více obrázků na řádek. V průběhu semestru student pracoval převážně samostatně a konzultoval jen v případě potřeby. Při pohledu na finální text práce jsem nabyl dojmu, že moje připomínky a návrhy zohlednil jen okrajově. Dle mého názoru měl být student při tvoření práce důslednější a věnovat zadaným úkolům podstatně větší píli. V konečném hodnocení si myslím, že je práci potřeba dopracovat, a to se týče zejména struktury samotného textu práce, eventuálně i dodělání nebo modifikace odevzdaných programových funkcí. Na základě uvedených výtek hodnotím v této chvíli práci jako nedostatečnou známkou F/45 bodů.

Navrhovaná známka
F
Body
45

Posudek oponenta

Mézl, Martin

Předložená práce pojednává o registraci obrazových dat sítnice pomocí evolučních algoritmů. Práce je členěna do osmi kapitol na 40 stranách. V rámci teoretického úvodu je popsán obecný přehled genetických a evolučních algoritmů (kapitola 1). Text této kapitoly lze považovat za základní vhled do problematiky, ale v některých bodech příliš zjednodušuje celou problematiku. Ve druhé kapitole je čtenář seznámen s popisem oka a oční sítnice. Tento anatomický přehled považuji za zcela zbytečný, více bych ocenil popis přístrojového vybavení, které bylo využito pro akvizici dat (viz dále). Třetí kapitola popisuje registraci obrazů. V této kapitole se nachází řada nepřesností - např. při popisu pružných transformací student míchá pojmy zachování vnitřních úhlů (u rigidních transformací) a zachování rovnoběžnosti. Dále bych ocenil použití stejných symbolů pro obrazy u vzorců pro jednotlivé metriky podobnosti, u rovnic pro kosinové kritérium a normalizovanou křížovou korelaci nejsou navíc uvedeny reference. Pro veličinu “špičkový poměr signálu ku šumu” je používáno nepřesné označení “poměr signálu a šumu”. Uvedené vzorce pro MSE a PSNR nepochází přesně z uvedeného zdroje ([25]), ale označením jednotlivých proměnných více odpovídají české Wikipedii. V této kapitole postrádám jakoukoli zmínku o formulaci obecné optimalizační úlohy, která by vedla k nalezení neznámých koeficientů geometrické transformace. Čtvrtá kapitola se věnuje vybraným metodám evolučních algoritmů. První dvě podkapitoly (4.1 a 4.2) však popisují algoritmy, které se mezi evoluční neřadí (mohli bychom je zařadit do skupiny heuristických algoritmů). Zároveň tyto dva algoritmy nejsou použity v další části práce. Popis světluškového algoritmu (kapitola 4.3) je příliš obecný - chybí zde zcela jakékoli matematické vyjádření pohybu jednotlivých světlušek. V případě algoritmu mravenčí kolonie (kapitola 4.4) je popis také velmi obecný a není zcela jasné, jak jej lze využít pro registraci obrazu (viz dále). Pátá kapitola teoretické části se vrací k problematice registrace obrazů. Zde konkrétně pro samotnou registraci snímků sítnice v podkapitole 5.1. Podkapitola 5.2 popisuje obecné možnosti využití genetického algoritmu k registraci obrazů. U podkapitol 5.3 a 5.4 chybí jakákoli reference. U využití algoritmu PSO bych očekával alespoň základní vzorce pro rychlost a pozici jednotlivých částic, zvláště když je tento algoritmus implementován v praktické části. V rámci praktické části práce je zmíněna databáze použitých snímků (kapitola 6). V této části postrádám některé důležité informace jako je např. počet snímků v jednotlivých sekvencích, velikost snímků a jiné. Zároveň mi není jasné, proč student používá pouze zprůměrovaný snímek jako referenci, přestože jsou v databázi dostupné i parametry posunu a rotace pro jednotlivé snímky od autorů datové sady. V dalším textu bych očekával poznámky k implementaci jednotlivých algoritmů – ty však v textu práce zcela chybí a čtenář je odkázán pouze na vágní popis vybraných proměnných a zdrojové kódy v příloze. Některé parametry zmíněné v práci názvem neodpovídají proměnným v implementaci, volba parametrů není také diskutována. U některých metod student odkazuje v přehledu parametrů na posun i rotaci (“anglerange”), implementován je pouze posun. Praktická část je rozdělena na registraci statických a dynamických snímků. Toto dělení mi přijde zvláštní, protože z pohledu výpočtu se jedná o stejnou úlohu aplikovanou na dvojici nebo více dvojic snímků. Vzhledem k charakteru snímků bych navíc doporučil buď doplnění okolí obrázku nulami nebo výpočet kritéria podobnosti pouze v menším výřezu obrazu, protože jednotlivými transformacemi dochází ke ztrátě části informace (obraz se promítne mimo obrazovou matici) a následnému doplnění nulami, což vnáší chybu do určení použitého kritéria podobnosti obrazů. To je také důvod, proč v tab. 8.1 je u nenulových hodnot použitého úhlu rotace a vyšších posunů výrazně nižší hodnota kritéria NCC. Registraci statických snímků student realizoval jako odhad známých hodnot posunu a rotace jednoho snímku pomocí genetického algoritmu. Popis použitého genetického algoritmu je zavádějící - u popisu křížení je např. zmíněno, že je využito aritmetické křížení s koeficientem “alfa”, v odevzdaných kódech je použito pouhé průměrování jedinců. Odevzdaný kód ke genetickému algoritmu (GA) nemůže fungovat, protože je zcela ignorována selekce jedinců - dochází pouze ke křížení a mutaci bez ohledu na kvalitu populace. Navíc si student v počáteční populaci omezil rozsah generovaných hodnot na okolí uživatelsky zadaných hodnot posunu a rotace, což ale nemůže nikdy fungovat, protože hledané hodnoty mají ve skutečnosti znaménko mínus (rotace a posun zpět k původnímu obrazu). Následně se díky použitému křížení a mutaci algoritmus nemůže dostat ke správným hodnotám posunu a rotace. Aby při nefunkčnosti GA dostal student alespoň nějaký výsledek, je přidána možnost manuálního výběru jednoho bodu a výpočet následné translace. Toto řešení může být rámcově funkční u prostého posunu, proto jsou hodnoty NCC v tab. 8.1 u nízkých posunů a malých rotací vyhovující (např. řádek 2). Registraci dynamických snímků student realizoval třemi metodami. První z nich - mravenčí kolonie (kapitola 7.2) je z pohledu implementace nefunkční. Základním problémem je fakt, že předložená implementace zcela postrádá jakoukoli rojovou inteligenci – tedy samotnou podstatu kolonie, kdy jednotliví mravenci mezi sebou komunikují a předávají si informaci o kvalitě zdroje potravy. V předloženém kódu je generována pozice solitérních mravenců náhodně bez ohledu na jejich kvalitu - takže daný mravenec nejenže neví o ostatních mravencích, ale také neví, jestli se pohybuje správným směrem. Nejlepší pozice mravence v průběhu iterací není ukládána - takže může optimum opustit a neexistuje způsob, jak se do něj vrátí. Za výsledek je tak brána poslední pozice zvoleného mravence, nikoli jeho nejlepší. Ačkoli je pracováno s feromonovou stopou, nedává to smysl z pohledu nalezeného řešení. Zároveň nejsou pozice mravenců nijak iniciovány v průběhu zpracování celé videosekvence, takže mravenci v poslední iteraci snímku N se stávají výchozími mravenci pro snímek N+1 včetně jejich feromonové stopy, která se tak kumuluje přes celou sekvenci. Další metodou je světluškový algoritmus. Ani tento algoritmus není implementován správně. Důvodem je především nevhodná inicializace jedinců, kdy mají všichni pozici nastavenou do bodu posunu [0,0]. Kombinací několika dalších faktorů dojde většinou k výběru vždy poslední světlušky v populaci, která ale podmínkou na řádku 51 nikdy nezmění svoji pozici a zůstává tak stále v bodě [0,0]. Výsledkem tak je nulové posunutí registrovaného obrazu. Pro výběr světlušky nejsou navíc použity aktuální hodnoty kritéria, ale hodnoty před samotným pohybem světlušek. Poslední předloženou metodou je algoritmus PSO. Ani v tom případě není implementace správná. Důvodem je opět fakt, že počáteční populace je umístěna do bodu [0,0] a vektory rychlostí a další parametry (globální nejlepší a lokální nejlepší pozice) jsou nastaveny také na nulovou hodnotu. Vzhledem k samotnému výpočtu změny rychlosti a pozice souřadnic částice je matematicky nemožné, aby se řešení jakkoli posunulo z bodu [0,0]. Všechny algoritmy pro registraci dynamických sekvencí jsou doplněny průměrováním výsledných posunů v okně pěti snímků, což v práci není dostatečně vysvětleno. Dále je spočítán výsledný snímek jako průměr v celé sekvenci. Takto zprůměrovaný snímek je dále zostřen funkcí “imsharpen”, což také není nikde vysvětleno. Hodnocení úspěšnosti registrace celé sekvence je poté založeno na srovnání s průměrným snímkem získaným pomocí referenční registrační metody. Výsledné hodnocení bych očekával také srovnáním průměrného snímku před registrací a po registraci. Minimálně u některé vybrané sekvence bych ocenil také srovnání odhadnutých parametrů posunu a rotace pro jednotlivé snímky vůči referenční metodě. Po formální stránce je práce na podprůměrné úrovni. Vytýkám větší množství překlepů, chybějící reference, některé obrázky mají popis anglicky, na některé z nich není odkazováno v textu. V textu práce jsou opakovaně zaměňovány pojmy - snímek, sekvence, obrázek. Práce odkazuje na 31 položek, na položky 19, 20, 23 a 28 však není odkazováno z textu. Teoretická část práce je psána chaoticky, kdy tematicky společné kapitoly jsou nelogicky děleny do dílčích kapitol (např. Kapitoly 1,4 a poté 3 a 5). Vzhledem k výše popsanému musím konstatovat, že především praktická část práce nesplňuje požadavky zadání, protože předložená implementace neřeší požadovanou úlohu registrace retinálních snímků. Tím pádem nemůžu ani akceptovat závěry studenta v kapitole 8. Práci nedoporučuji k obhajobě a navrhuji hodnocení nevyhovující (F – 20 bodů).

Navrhovaná známka
F
Body
20

Otázky

eVSKP id 159758