Katedra techniky
a kybernetiky

Software pro semiautomatizované generování anotací k datasetům vybraných druhů rostlin určeným jako základní vstup pro trénování konvolučních neuronových sítí

Celý software včetně uživatelského rozhraní byl vytvořen v programovacím jazyce Python, přičemž v rámci GUI jsou implementovány funkce z knihovny PyQt5, dále byly použity knihovny open-cv, numpy a scikit-image. Hlavní část GUI se skládá ze tří sloupců, kdy v pravém sloupci jsou lokalizovány prvky pro výběr vstupní a výstupní složky a metod zvolených ke zpracování obrazu, pravý sloupec slouží pro nástroj k výběru kategorií anotovaných objektů, zobrazení dalšího snímku či vygenerování souboru s anotacemi, prostor mezi těmito sloupci je určen k zobrazení aktuálně zpracovávaného obrázku. Pod těmito sloupci se nachází lišta s posuvníkem, která po vygenerování kontur objektů v obraze umožňuje nastavit zobrazení polygonů daným minimálním počtem bodů.

Obrázek 1: GUI po zvolení vstupní složky

Při anotování velmi rozmanitého porostu, typicky v pozdějších vegetačních fázích růstu, se mohou na fotografiích jednotlivé rostliny překrývat. Tento jev je patrný například u ředkviček či brambor, kdy při rané fázi růstu jsou jednotlivé rostlinky od sebe vzdáleny tak, že lze jednoduše na obrázku každou identifikovat, avšak v průběhu růstu se začnou postupně překrývat, až se spojí v jeden porost, kdy je již z fotografií nemožné jednoznačně rozlišit jednu rostlinu od druhé. Překryv může nastat i mezi rostlinou a plevelem, kdy plevelné rostliny často detekujeme v blízkém okolí pěstované rostliny, tak jak je zachyceno na obrázku 2. Výše představené vegetační indexy a další nástroje nejsou schopny tyto překryvy rozpoznat. V důsledku toho jsou získané masky rostlin nepřesné a nekorespondují s jednotlivými rostlinami, neboť dochází ke spojení jedné či více rostlin do jedné masky. Proto byl do softwaru pro semiautomatizované generování anotací k datasetům vybraných druhů rostlin přidán nástroj, kde je možné ručně upravit vygenerovanou masku a spojené rostliny tak oddělit a získat relevantní masky pro všechny rostliny na obrázku. Tento nástroj se jmenuje Draw a jeho tlačítko je umístěno na posledním místě levého sloupce, jak je vidět na obrázku 2. Po kliknutí na toto tlačítko se otevře nové okno, viz obrázek 3, v němž je možné za pomoci myši upravovat vygenerovanou masku. Maska je proložena původním obrázkem z důvodu snadné orientace, neboť pokud by byla zobrazena pouze maska (bílé plochy na černém podkladě) byla by identifikace hranic mezi jednotlivými objekty nemožná. Ovládání je velmi jednoduché, pomocí levého tlačítka myši objekt mažeme, čímž můžeme například dokreslit hranici mezi dvěma překrývajícími se objekty nebo smazat chybně určený objekt, což se ve výjimečných případech může stát. Objekty můžeme i dokreslovat a to pomocí pravého tlačítka myši. K tomuto kroku můžeme přistoupit například při zpřesňování původně vytvořené masky. V různých případech je vhodné dokreslování či mazání pomocí jiné velikosti dotčené oblasti. Pokud bude uživatel chtít dokreslit hranici mezi překrývajícími objekty, je vhodné použít užší linku, naopak při dokreslování neoznačené části rostliny je rychlejší pokud se při jednom kliknutí dokreslí větší plocha. K úpravě velikosti dokreslované či mazané oblasti slouží klávesy + a -. V případě, že by výsledné ruční úpravy neměly kvalitu a přesnost, která byla požadována je možné pomocí klávesy R smazat všechny ruční úpravy. Po dokončení ručních úprav se kreslící okno zavře pomocí klávesy Q.

Obrázek 3: Ukázka překrývajících se objektů, kdy dojde v rámci jejich masky ke spojení

Obrázek 3: Příklad úpravy automaticky vygenerované masky pomocí kreslícího okna

Po uzavření kreslícího okna dojde k návratu na hlavní okno softwaru, kde je pro kontrolu ručně provedených úprav zobrazena nově získaná maska. V tomto zobrazení již není proložena fotografií, neboť zde by působila naopak jako rušivý element, viz obrázek 4. Zobrazení bílé masky a černého pozadí je ideální ke kontrole, zda všechny dokreslené hranice mezi překrývajícími se objekty jsou opravdu provedeny, tak aby od sebe jednotlivé objekty opravdu oddělily a nezůstala v obrazu část jejich propojení.

Obrázek 4: Ukázka zobrazení kontroly masky získané po ručním dokreslování a mazání

Po jednoznačném rozdělení všech překrývajících se objektů a úpravách dalších nedokonalostí automaticky vygenerované masky původní fotografie je možné přikročit k definování konkrétních tříd jednotlivým objektům. Podrobnější postup této operace je popsán již v textu níže. Na obrázku 5 je ukázka přiřazení tříd obrázku, u kterého proběhla ruční úprava automaticky vygenerované masky. Na obrázku je vidět jak pomocí úprav bylo docíleno k rozdělení překrývajících se oblastí a díky tomu bylo možné označit samotnou rostlinu (červená barva) a plevel, který ji obklopuje (zelená barva).

Obrázek 5: Ukázka označení jednotlivých tříd objektů o obrázku, kde byly ručně dokresleny hranice mezi překrývajícími se objekty:
rostlina – červená barva, plevel – zelená barva

Zůstaňme v kontaktu na
sociálních sítích

Studentská 1668, 370 05 České Budějovice Tel.+420 387 772 427 | Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.

Studentská 1668, 370 05
České Budějovice
Tel.+420 387 772 427 Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript. www.fzt.jcu.cz

© 2021-2024 Jihočeská univerzita v Českých Budějovicích
Cookies