• Rezultati Niso Bili Najdeni

Uporaba simuliranih scen za izboljˇ savo uˇ cenja detekcije ovir na

N/A
N/A
Protected

Academic year: 2022

Share "Uporaba simuliranih scen za izboljˇ savo uˇ cenja detekcije ovir na"

Copied!
66
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Matej Mioˇci´c

Uporaba simuliranih scen za izboljˇ savo uˇ cenja detekcije ovir na

vodni povrˇ sini

DIPLOMSKO DELO

UNIVERZITETNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : izr. prof. dr. Matej Kristan

Ljubljana, 2021

(2)

sedilo, slike, grafi in druge sestavine dela kot tudi rezultati diplomskega dela lahko prosto distribuirajo, reproducirajo, uporabljajo, priobˇcujejo javnosti in predelu- jejo, pod pogojem, da se jasno in vidno navede avtorja in naslov tega dela in da se v primeru spremembe, preoblikovanja ali uporabe tega dela v svojem delu, lahko distribuira predelava le pod licenco, ki je enaka tej. Podrobnosti licence so dosto- pne na spletni strani creativecommons.si ali na Inˇstitutu za intelektualno lastnino, Streliˇska 1, 1000 Ljubljana.

Izvorna koda diplomskega dela, njeni rezultati in v ta namen razvita program- ska oprema je ponujena pod licenco GNU General Public License, razliˇcica 3 (ali novejˇsa). To pomeni, da se lahko prosto distribuira in/ali predeluje pod njenimi pogoji. Podrobnosti licence so dostopne na spletni strani http://www.gnu.org/

licenses/.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

(3)

Kandidat: Matej Mioˇci´c

Naslov:Uporaba simuliranih scen za izboljˇsavo uˇcenja detekcije ovir na vo- dni povrˇsini

Vrsta naloge: Diplomska naloga na univerzitetnem programu prve stopnje Raˇcunalniˇstvo in informatika

Mentor:izr. prof. dr. Matej Kristan

Opis:

V zadnjem desetletju je bil narejen izjemen napredek na podroˇcju sistemov zaznavanja okolice za vodna plovila. Zaznavanje ovir, na primer, je kljuˇcnega pomena za varno plovbo, hkrati pa je izjemno zahtevno zaradi zrcaljenja, odbleskov in sprememb izgleda vode. Trenutno najboljˇse metode se pro- blema detekcije lotevajo preko semantiˇcne segmentacije, ki pa zahteva ve- liko mnoˇzico podrobno roˇcno segmentiranih slik. V nalogi raziˇsˇcite moˇznost bogatenja uˇcne zbirke s simulacijo scen. Predlagajte metode simuliranja in analizirajte uspeˇsnost najsodobnejˇse metode za detekcijo ovir z uˇcenjem na tako generiranih slikah.

Title:Using simulated scenes for improving water surface obstacle detection Description:

Over the last decade, a remarkable progress has been made in the field of maritime environment perception. Obstacle detection, for example, is crucial for safe navigation, while extremely challenging due to mirroring, glare, and changes in the water appearance. State of the art methods address the de- tection problem through semantic segmentation, which, however, requires a large number of accurate manually segmented images. In your thesis, explore the possibility of enriching the training dataset by simulated scenes. Suggest simulation methods and analyze the performance of a state-of-the-art obsta- cle detection method when using such simulated images for training.

(4)
(5)

Iskreno se zahvaljujem mentorju, izr. prof. dr. Mateju Kristanu, za predlog teme diplomske naloge, strokovno pomoˇc, nasvete pri izdelavi diplomske na- loge ter hitro odzivnost. Zahvala gre tudi Borji Bovconu, Domnu Taberniku in Lojzetu ˇZustu za vse nasvete in pomoˇc pri nastanku tega dela. Zahvaljujem se tudi vsem prijateljem in druˇzini za vso podporo.

(6)
(7)

Kazalo

Povzetek Abstract

1 Uvod 1

1.1 Motivacija . . . 1

1.2 Sorodna dela . . . 2

1.3 Prispevki . . . 4

1.4 Struktura naloge . . . 4

2 Metode 5 2.1 Sloji konvolucijske nevronske mreˇze . . . 5

2.2 WaSR . . . 10

2.3 Simulacijsko okolje . . . 12

3 Evalvacija 31 3.1 Implementacijske podrobnosti . . . 31

3.2 Postopek evalvacije . . . 35

3.3 Rezultati in analiza . . . 38

4 Sklep 47 4.1 Nadaljnje delo . . . 48

Celotna literatura 49

(8)
(9)

Seznam uporabljenih kratic

kratica angleˇsko slovensko

RMSE root-mean-square-error korenska-sredinska -kvadratna-napaka WaSR water-obstacle separation

and refinement network

mreˇza za loˇcevanje in izboljˇsanje vodnih ovir SVM support vector machine metoda podpornih vektorjev MaSTr Marine Semantic Segmentation

Training Dataset

podatkovna zbirka

segmentacije vodnih scen IMU inertial measurement unit inercialna merska enota ARM attention refinement module modul za izboljˇsanje

pozornosti

FFM feature fusion module funkcijski fuzijski modul API application programming

interface

aplikacijski programski vmesnik

ReLU Rectified Linear Unit poravnana linearna enota

(10)
(11)

Povzetek

Naslov: Uporaba simuliranih scen za izboljˇsavo uˇcenja detekcije ovir na vodni povrˇsini

Avtor:Matej Mioˇci´c

Avtonomna plovila se zanaˇsajo na robustne metode zaznavanja ovir. Naj- sodobnejˇse metode temeljijo na segmentacijskih mreˇzah, ki so nauˇcene na velikih naborih podatkov. Ker je nabor realnih slik zelo omejen, roˇcna sege- mentacija pa ˇcasovno zahtevna in podvrˇzena ˇcloveˇskim napakam, predlagamo alternativo — izdelavo simulacijskih slik s samodejno segmentacijo. V nalogi predlagamo simulacijsko okolje za generiranje simuliranih vodnih scen in nji- hovih segmentacijskih mask. Analizirane so moˇznosti izboljˇsave segmentacij- skih mreˇz za detekcijo ovir na vodi preko uporabe generiranih simuliranih vo- dnih scen. Predstavljamo primerjavo rezultatov uˇcenja segmentacijske mreˇze na zbirki realnih slik z rezultati uˇcenja mreˇz na zbirki simuliranih vodnih scen ter z rezultati uˇcenja mreˇz na kombinaciji obeh zbirk. Rezultati analize kaˇzejo, da je F-mera znotraj nevarnega obmoˇcja z mreˇzami, ki so nauˇcene na kombinaciji obeh zbirk, za 5 % viˇsja kot z mreˇzami, ki so trenirane na zbirki brez sintetiˇcnih slik, F-mera za celotno obmoˇcje pa je za 0,3 % viˇsja.

Kljuˇcne besede: simulacijsko okolje, raˇcunalniˇski vid, semantiˇcna segmen- tacija, Blender, samodejno generirani sintetiˇcni podatki, samovozeˇca vozila.

(12)
(13)

Abstract

Title:Using simulated scenes for improving water surface obstacle detection Author: Matej Mioˇci´c

Autonomous vessels rely on robust obstacle detection methods. State-of-the- art methods are based on segmentation networks that are trained on large datasets. Since the dataset of real images is very limited, and manual seg- mentation is time-consuming and subject to human error, we suggest an al- ternative – the creation of simulation images with automatic segmentation.

In this paper, we propose a simulation environment for generating simulated water scenes and their segmentation masks. Possibilities of improving seg- mentation networks for detection of obstacles on water through the use of generated simulated water scenes are analyzed. We present a comparison of the results of training the segmentation network on a dataset of real images with the results of training the networks on the dataset of simulated water scenes and with the results of training the networks on a combination of both datasets. The results of the analysis show that the F-measure within the danger zone with networks learned on the combination of both datasets is 5 % higher than with networks trained on the dataset without synthetic images, and the F-measure for the whole area is 0.3 % higher.

Keywords: simulation environment, computer vision, semantic segmenta- tion, Blender, automatically generated synthetic data, self-driving vehicles.

(14)
(15)

Poglavje 1 Uvod

1.1 Motivacija

Avtonomna vozila so ena izmed teh tehnologij, ki se bliˇza vrhu razvoja. Prve poskuse z njimi so delali ˇze v 1920-ih [21]. Danes pa ta vozila postajajo vse bolj popularna in se bliˇzajo temu, da bi postala nekaj, kar bi lahko upora- bljali vsak dan. Velik razlog za napredek avtonomnih vozil je razvoj umetnih nevronskih mreˇz. Te so raˇcunalniˇski sistemi, katerih idejno zasnovo pred- stavljajo bioloˇske nevronske mreˇze. Umetne nevronske mreˇze temeljijo na zbirki povezanih enot ali vozliˇsˇc, imenovanih nevroni, ki so med seboj pove- zani po vzoru nevronov v bioloˇskih moˇzganih. Hiter razvoj nevronskih mreˇz temelji na dostopnosti do velikih naborov podatkov in poveˇcani zmoˇznosti grafiˇcnih kartic. Vendar pa za uˇcenje nekaterih nevronskih mreˇz teh podat- kov enostavno ni dovolj ali pa je do njih teˇzko in ˇcasovno zahtevno priti.

Za ustvarjanje podatkov je najbolj popularna metoda roˇcna segmentacija, ki vzame veliko ˇcasa in vsebuje ˇcloveˇske napake. Reˇsitev tega problema bi lahko bilo uˇcenje nevronske mreˇze iz sintetiˇcnih podatkov, ki so lahko segmentirani ˇze ob nastanku in so do piksla natanˇcni. Tako bi lahko naredili zelo velik nabor podatkov zelo hitro. Vpraˇsanje pa je, ali uˇcenje na sintetiˇcnih podat- kih deluje dovolj dobro, da lahko nadomesti uˇcenje na podatkih iz resniˇcnega sveta, in kako dobro je uˇcenje iz kombinacije obeh vrst podatkov.

1

(16)

V zadnjem ˇcasu je bil narejen velik napredek na podroˇcju detekcije ovir na vodni povrˇsini za avtonomna plovila [5, 9, 14, 24]. Z uspeˇsno detekcijo ovir na vodni gladini omogoˇcamo varno samodejno krmiljenje po vodi. Detekcija ovir najbolj pogosto poteka s segmentacijo s kamero zajetih slik. Segmen- tacija pa poteka avtomatsko z nauˇceno segmentacijsko mreˇzo. Trenutno je najbolj uspeˇsna mreˇza WaSR [5], ki opredeli vsak piksel na sliki bodisi kot:

1-voda, 2-ovira/kopno ali 3-nebo. Z mreˇzo, nauˇceno na zbirki realnih slik, so ˇze dosegli izjemne rezultate. Vendar pa je zaradi specifiˇcnosti problema nabor realnih uˇcnih slik s polno segmentacijo zelo omejen, zato ima mreˇza WaSR ˇse zmeraj teˇzave z detekcijo majhnih ovir in z zrcaljenjem ovir na vodni gladini (glej Sliko 1.1). Zato smo v nalogi raziskali moˇznost izboljˇsave uˇcenja segmentacijske mreˇze z uporabo samodejno generiranih sintetiˇcnih slik (simuliranih vodnih scen).

(a) Slika iz zbirke Modd2 [6]. (b) Segmentacijska slika.

Slika 1.1: Primer napaˇcne segmentacije (zrcaljenje v vodi je oznaˇceno kot ovira) z mreˇzo trenirano na zbirki MaSTr1325 [7].

1.2 Sorodna dela

Z detekcijo ovir za avtonomna vozila se ukvarjajo ˇze veˇc let. Leta 2005 so [16] naredili sistem za detekcijo ovir za brezpilotna letala. Takrat nevronske mreˇze ˇse niso bile popularne, zato so uporabili metodo podpornih vektorjev (angl. support vector machines, SVM) in binarizacijo slik. S takim pristopom so pridobili pozitivne rezultate samo v doloˇcenih razmerah, vendar potrebe

(17)

Diplomska naloga 3 po sintetiˇcnih slikah ni bilo.

Veliko je primerov, kjer so za uˇcenje segmentacijskih mreˇz uporabili sin- tetiˇcne podatke. V programu Unity1 so v [20] generirali sintetiˇcne podatke virtualnega mesta, ki so pripomogli k uˇcenju segmentacijskih mreˇz za samo- vozeˇca vozila na kopnem. Naredili so virtualno mesto in z nakljuˇcnim pre- mikanjem kamere ustvarili veliko podatkovno zbirko s pripadajoˇco segmen- tacijsko sliko. Z rezultati so pokazali, da je kombinacija realnih in sintetiˇcnih slik boljˇsa kot pa samo uporaba realnih slik za uˇcenje segmentacijske mreˇze.

V [25] so generirali sintetiˇcne slike v programu Blender2 [4] za segmen- tacijo rastlinskih listov. S programom so naredili manipulacijske toˇcke na nakljuˇcno izbrani sliki lista rastline. Te toˇcke so bile nakljuˇcno premaknjene, da so dobili raznolike liste. Pri uˇcenju mreˇz za avtonomna vozila to ne bi delovalo, saj bi dobili preveˇc nesmiselne rezultate. Tudi pri raziskavi z listi so pokazali, da treniranje s kombinacijo realnih in sintetiˇcnih slik pripelje do boljˇsih rezultatov kot pa treniranje samo z realnimi slikami.

Podobno so v [1] v programu Blender [4] generirali sintetiˇcno zbirko za detekcijo rok. Naredili so tridimenzionalni model roke, ki so ga nakljuˇcno premikali in zajemali uˇcne slike. Vsak prst se je s kombinacijo spreminjanja velikosti in rotacijo upognil za nakljuˇcen kot, poleg tega pa se je celotna dlan nakljuˇcno zarotirala. Nastalo sliko dlani so nakljuˇcno postavili v nakljuˇcno ozadje. Nastale slike so uporabili pri uˇcenju s kombinacijo z realnimi slikami.

Segmentacija se uporablja tudi v medicini, kjer v [13] za uˇcenje konvolucij- ske nevronske mreˇze za analizo moˇzganskih tumorjev uporabljajo sintetiˇcne slike. Z rezultati napovedujejo ˇcas preˇzivetja pacienta na podlagi volume- triˇcnih znaˇcilnosti tumorskih podregij.

1https://unity.com/

2https://www.blender.org/

(18)

1.3 Prispevki

Glavni prispevek diplomskega dela je izdelava okolja za generiranje simulira- nih vodnih slik in analiza uspeˇsnosti uˇcenja iz nastalih zbirk. S pomoˇcjo pro- grama Blender [4] in modularnega cevovoda BlenderProc [10] smo ustvarili okolje, ki lahko generira raznolike slike oceanov in njihove do piksla natanˇcne segmentirane slike. Simulacijsko okolje je dostopno vsem na strani github3. S simulacijskim okoljem smo ustvarili dve zbirki, na katerih smo uˇcili segmenta- cijsko mreˇzo WaSR [5]. Trenirali smo mreˇze, ki so vsebovale samo sintetiˇcno zbirko, samo realistiˇcno zbirko in kombinacijo obeh. Mreˇze smo evalvirali na naboru podatkov Modd2 [6], ki je trenutno najbolj zahteven javni nabor vo- dnih scen. Na koncu smo analizirali uspeˇsnost uˇcenja na omenjenih mreˇzah glede na F-mero in uspeˇsnost segmentacije.

1.4 Struktura naloge

V Poglavju 2 so razloˇzene osnove konvolucijskih mreˇz ter segmentacijska mreˇza WaSR [5]. Opisana je arhitektura mreˇze in metode predprocesiranja.

Nato je predstavljeno okolje za generiranje sintetiˇcnih slik. Razloˇzena je im- plementacija, parametrizacija ogrodja, izzivi in njihove reˇsitve. V Poglavju 3 je predstavljen naˇcin evalvacije in pridobljeni rezultati iz nauˇcenih mreˇz.

Prikazane so slike in razlike med rezultati, pridobljenimi na osnovi razliˇcnih mreˇz. Povzetek rezultatov in prispevkov diplomske naloge ter predlogi za izboljˇsavo sistema so podani v Poglavju 4.

3https://github.com/matemato/Simulacijsko-okolje-za-generiranje-vodnih- scen

(19)

Poglavje 2 Metode

V zadnjih letih se je poveˇcala uporaba segmentacijskih mreˇz za reˇsevanje pro- blemov raˇcunalniˇskega vida (na primer za avtonomna vozila). Glavna naloga segmentacijskih mreˇz je segmentacija slike, kar pomeni prireditev vrednosti vsakemu pikslu glede na opredeljen razred, s ˇcimer sliko razdeli na veˇc se- gmentov. Uspeˇsno segmentacijo lahko pridobimo z uˇcenjem konvolucijskih mreˇz, ki izvedejo segmentacijo (segmentacijske mreˇze). Te mreˇze so razde- ljene v zaporedja skupkov operacij, ki jih imenujemo sloji in so predstavljene v Poglavju 2.1. Za detekcijo ovir na vodnih scenah je uporabljena segmen- tacijska mreˇza imenovana WaSR [5]. Njena arhitektura je predstavljena v Poglavju 2.2. Na koncu, v Poglavju 2.3, pa je opisano simulacijsko okolje za generiranje sintetiˇcnih vodnih scen, ki so bile uporabljene za treniranje segmentacijske mreˇze.

2.1 Sloji konvolucijske nevronske mreˇ ze

Konvolucijske nevronske mreˇze (angl. convolutional neural network) so vrsta umetnih nevronskih mreˇz, ki so specializirane za obdelavo podatkov, organi- ziranih v polja (na primer slike). Mreˇze so razdeljene v sloje (glej Sliko 2.1), ki so opisani v tem poglavju.

5

(20)

Slika 2.1: Primer slojev konvolucijske nevronske mreˇze za klasifikacijo slike avta [22].

2.1.1 Konvolucijski sloj

Osnovni gradnik konvolucijske nevronske mreˇze je konvolucijski sloj. Glavna vloga konvolucijskega sloja je, da iz slike pridobi znaˇcilne lastnosti s pomoˇcjo konvolucije. V sploˇsnem je konvolucija operacija dveh funkcij, ki kot rezultat proizvede tretjo funkcijo. V konvolucijskih mreˇzah se uporablja dvodimen- zionalna konvolucija. Pri tej imamo kot prvo funkcijo sliko, uporabljeno za uˇcenje mreˇze, druga funkcija pa je nek konvolucijski filter oz. jedro. Izhodna matrika ima za elemente vsote zmnoˇzkov parov elementov jedra in vhodne matrike, kot se prekrivajo (glej Sliko 2.2). Filter premikamo po vhodni ma- triki in postopek ponavljamo za vsak element.

Barvne slike imajo tri kanale (RGB – red, green, blue), zato mora biti tudi filter trodimenzionalen (glej Sliko 2.3). Tako dvodimenzionalna konvolucija v tem primeru poteˇce trikrat, z vsakim kanalom posebej. Rezultat treh kon- volucij se seˇsteje (vsak element na enaki poziciji v vsakem kanalu) in dobimo tenzor, ki je dvodimenzionalen. Konvolucijski sloj ima obiˇcajno veˇc filtrov in tako dobimo izhod z veˇc kanali.

Za uˇcenje segmentacijskih mreˇz pa je popularna razˇsirjena konvolucija, kjer namesto sosednjih elementov glede na stopnjo poveˇcamo domet konvo- lucijskih filtrov, vmesnim poljem pa priredimo vrednost 0 (glej Sliko 2.4).

(21)

Diplomska naloga 7

Slika 2.2: Primer dvodimenzionalne konvolucije, kjer je na levi vhodna ma- trika, desno sledi konvolucijski filter in nato izhodna matrika, imenovana tenzor [11].

Slika 2.3: Primer konvolucije barvne slike, kjer je na levi barvna slika, sledi N konvolucijskih filtrov in nato izhodna matrika, imenovana tenzor.

(22)

Slika 2.4: Razˇsirjena konvolucija (angl. dilated/atrous convolution), s stopnjo 2 [17].

2.1.2 Aktivacijska funkcija

Aktivacijska funkcija je tesno povezana s konvolucijskim slojem, saj se po na- vadi aktivacija izvede takoj za konvolucijskim slojem. Nevronskim mreˇzam ˇzelimo dodati nelinearnost, zato da rezultat konvolucije ni preprosta tehtana vsota elementov. Z nelinearnostjo se lahko nevronska mreˇza pribliˇza funkci- jam, ki niso linearne. Tako lahko mreˇza predvidi razred, ki ga doloˇca neline- arna funkcija. Najbolj pogosta aktivacijska funkcija je ReLU (angl. Rectified Linear Unit), ki negativne izhode spremeni v vrednost 0 (glej Sliko 2.5).

Omenjena je ˇse aktivacijska funkcija softmax, saj je uporabljena v se- gmentacijski mreˇzi WaSR. Softmax se uporablja v nevronskih mreˇzah, ko ˇzelimo zgraditi veˇcrazredni klasifikator in tako zagotoviti, da je vsota izho- dov 1 in da so posamezni izhodi med 0 in 1 – verjetnosti razreda (glej Sliko 2.6).

(23)

Diplomska naloga 9

Slika 2.5: Aktivacijska funkcija ReLU, ki preslika negativne elemente v vre- dnost 0 [19].

Slika 2.6: Aktivacijska funkcija softmax, ki preslika izhodne elemente v ver- jetnosti, kjer je K ˇstevilo izhodov, z je vrednost izhoda, e pa predstavlja eksponentno funkcijo [23].

2.1.3 Zdruˇ zevalni sloj

Zdruˇzevalni sloji se uporabljajo za zmanjˇsanje dimenzij izhodov. Tako zmanjˇsujejo ˇstevilo parametrov, ki se jih je treba nauˇciti in zmanjˇsujejo tudi ˇcas uˇcenja.

Z zmanjˇsanjem slike lahko sedaj z enako velikim filtrom pri konvoluciji pri- dobimo znaˇcilnosti, ki so na originalni sliki prevelike. Najbolj uporabljeni zdruˇzevalni operaciji sta zdruˇzevanje glede na maksimalno vrednost (glej Sliko 2.7) in izraˇcun povpreˇcja prisotnih elementov (glej Sliko 2.8).

(24)

Slika 2.7: Zdruˇzevanje elementov glede na maksimalno vrednost (angl. max pooling) [15].

Slika 2.8: Zdruˇzevanje elementov z izraˇcunom povpreˇcja (angl. average poo- ling) [3].

2.2 WaSR

WaSR (angl. water-obstacle separation and refinement network) [5] je se- mantiˇcna segmentacijska mreˇza narejena za avtonomno plovbo po vodi. Mreˇzo sestavlja konvolucijska nevronska mreˇza, ki kot vhod sprejme sliko, na izhodu pa vrne segmentacijsko masko vodne scene. Ker kot rezultat mreˇze ˇzelimo segmentacijsko masko in ne na primer verjetnosti razredov, je WaSR [5] se- stavljen iz dveh delov. Prvi del je enkoder, ki iz slik pridobi znaˇcilne lastnosti, drugi del, dekoder, pa iz teh lastnosti generira segmentacijsko sliko.

Enkoder je sestavljen iz ˇstirih konvolucijskih blokov – res2, res3, res4 in res5 (glej Sliko 2.9). Vsakemu bloku pa sledijo zdruˇzevalni sloji. V blokih res4 in res5 se uporablja razˇsirjena konvolucija (glej Sliko 2.4), saj se tako bolje

(25)

Diplomska naloga 11

Slika 2.9: Struktura enkoderja in dekoderja v mreˇzi WaSR [5].

kodirajo informacije o lokalnem kontekstu. Poleg navadne slike vodne scene mreˇza sprejme ˇse IMU (angl. inertial measurement unit), ki pove kaj na sliki je pod obzorjem in kaj nad. Binarna maska pomaga napovedati poloˇzaj roba vode v izhodni segmentaciji. V dekoderju sodeluje v razliˇcnih stopnjah in se zdruˇzi z razliˇcnimi lastnostmi v enkoderju (glej Sliko 2.9). Ker pa se velikost lastnosti, dobljenih v enkoderju, razlikuje od vrednosti v binarni maski, se za laˇzje zdruˇzevanje z enkoder bloki uporablja pristop ARM (angl. Attention Refinement Module) [26].

Dekoder je sestavljen iz dveh ARM blokov – ARM1 in ARM2. Prvi blok je zadolˇzen za zdruˇzevanje binarne maske in zadnji del enkoderja. ARM2 pa vzame lastnosti pridobljene iz res3 in ARM1 ter vrednosti v binarni ma- ski. Za boljˇse zdruˇzevanje zaˇcetnih in konˇcnih lastnosti se uporablja pristop FFM (angl. Feature Fusion Module) [26]. S FFM so z veˇcjo kompleksnostjo zdruˇzene lastnosti pridobljene iz res2 in ARM2 ter vrednosti v binarni maski.

Dekoder ima ˇse en blok, kjer se izvedeta ASPP zdruˇzevanje (glej Sliko 2.10)

(26)

in softmax aktivacijska funkcija (glej Sliko 2.6).

Slika 2.10: ASPP (angl. Atrous Spatial Pyramid Pooling) je zdruˇzevanje, kjer sestavimo veˇc operacij – zdruˇzevanje glede na maksimalno vrednost, konvolucijo s filtrom velikosti 1x1 in tri operacije zdruˇzevalne konvolucije s stopnjami 2, 4 in 6 [2].

2.3 Simulacijsko okolje

Sintetiˇcne slike morajo izgledati ˇcim bolj realistiˇcno, hkrati pa morajo biti med seboj raznolike, da vsaka nekaj prispeva k uˇcenju segmentacijske mreˇze.

Za renderiranje ˇcim bolj realistiˇcnih slik smo uporabljali program Blender [4].

To je brezplaˇcna in odprtokodna zbirka 3D ustvarjanja. Podpira veliko ope- racij za 3D okolje: modeliranje, opremljanje, animiranje, simuliranje, upoda- bljanje, komponiranje in urejanje videa. Blender ima vgrajen vmesnik Python

(27)

Diplomska naloga 13 API (angl. application program interface), ki se naloˇzi ob zagonu programa Blender in ostane aktiven, medtem ko se izvaja. Python API smo uporabili za randomiziranje oceanov in predmetov postavljenih v sceno. Za laˇzjo in bolj pregledno uporabo vmesnika Python API je uporabljen modularni cevovod BlenderProc [10], ki poleg vsega tega omogoˇca segmentacijo nastale slike do piksla natanˇcno. Generiranje podatkov je sestavljeno iz dveh faz. V prvi fazi se randomizira ocean narejen v programu Blender. V drugi fazi se nakljuˇcno izbere ovire in se jih postavi v ocean ter poveˇca, poleg tega pa se nakljuˇcno izbere nebo in se ga zarotira okoli navpiˇcne osi.

2.3.1 Kreiranje oceana

Pri kreiranju oceana je bila najveˇcja teˇzava omejenost strojne opreme raˇcunalnika.

Renderiranje ogromnih stvari, kot je ocean, zahteva veliko kapaciteto pomnil- nika tako v sistemu kot v grafiˇcni kartici. Zato smo uporabili nekaj strategij, s katerimi smo zmanjˇsali koliˇcino porabljenega pomnilnika. Tako smo naredili dva oceana z razliˇcnima strategijama, od katerih ima vsak svoje prednosti in slabosti. Oba oceana imata dodano lastnost, ki ju opredeli v razred 1 za kasnejˇso segmentacijo. Veˇc o segmentaciji in razredih je opisano v nadaljeva- nju.

Ocean A

Pri prvem oceanu (glej Sliko 2.11), ki je poimenovan ocean A, je uporabljena strategija, v okviru katere smo kreirali dva manjˇsa oceana razliˇcne velikosti, jih zapekli (angl. bake) in uporabili kot teksturo za veˇcji ocean. Pri uporabi tekstur postane oˇcitno, da gre za ponovitev elementa (angl. tiling). Zato smo dodali nakljuˇcno sivinsko masko, ki pove kako visoki so valovi (glej Sliko 2.12). S tem je nastal ocean, ki je bil velik in je imel visoko loˇcljivost. Z osebnim raˇcunalnikom smo lahko uporabili loˇcljivost renderiranja kar 40.

Slaba stran tega oceana pa je, da je vedno enak, saj sta uporabljena manjˇsa oceana, ki sta zapeˇcena. Samih parametrov (glej Sliko 2.13) znotraj programa Blender [4], kot so velikost valov (angl. wave scale), hitrost pihanja vetra

(28)

(angl. wind velocity), smer valov (angl. wave direction), se ne da spreminjati.

Po dobljenih rezultatih s treniranjem mreˇze s prvim oceanom smo se zato odloˇcili za kreiranje ˇse enega oceana.

Slika 2.11: Ocean A brez randomizacije in ovir.

Slika 2.12: Primer nakljuˇcne sivinske maske, ki doloˇca, kako visoki so valovi (bolj temna barva na maski oznaˇcuje niˇzje valove).

(29)

Diplomska naloga 15

(a) Nastavitve prvega manjˇsega oceana.

(b) Nastavitve drugega manjˇsega oceana.

Slika 2.13: Fiksne nastavitve manjˇsih oceanov za teskturiranje oceana A.

Ocean B

Za kreiranje drugega oceana (glej Sliko 2.14) za razliko od prvega nismo upo- rabili zapeˇcenega elementa, poleg tega pa smo uporabili malo drugaˇcen naˇcin teksturiranja: z modifikatorjem za ustvarjanje matrik v programu Blender je manjˇsi ocean ponovljen 15-krat v oseh x in y. To omogoˇca, da je moˇzno randomizirati veˇc parametrov (glej Sliko 2.15), s tem pa smo pridobili veˇcjo raznolikost med nastalimi oceani. Ker pa ocean ni zapeˇcen, je renderiranje bolj raˇcunsko zahtevno, zato je zaradi omejitve pomnilnika ocean slabˇse kva-

(30)

litete. Osebni raˇcunalnik omogoˇca loˇcljivost renderiranja 28. Oceanu B smo dodali tudi morsko peno, da bi ocenili, kako to vpliva na uˇcenje.

Slika 2.14: Ocean B brez randomizacije parametorv in ovir.

(31)

Diplomska naloga 17

Slika 2.15: Nastavitve oceana B, kjer so parametri, ki so randomizirani ob generiranju vodne scene, podˇcrtani z rdeˇco ˇcrto.

2.3.2 Ovire

Zbirka realistiˇcnih slik vodne scene, ki so jih posneli v Kopru, se imenuje Ma- STr1325 [7] . Ker smo se pri kreiranju sintetiˇcne vodne scene hoteli pribliˇzati zbirki MaSTr1325 (glej Sliko 2.17), smo se odloˇcili kot ovire postaviti ˇcolne, boje in gore. Menimo, da bi bolj kompleksne stvari, kot so obale, pomoli in druge podrobnosti vodne scene, predstavljale problem pri randomizaciji. Slike omenjenih ovir smo dobili iz zbirk COCO [8] in LVIS [12]. Zbirka COCO ima kar 18 GB segmentacijsko anotiranih slik. Anotirane so bolj sploˇsne stvari, kot na primer gore. Zbirka LVIS vsebuje iste slike kot zbirka COCO, vendar ima anotiranih veˇc razliˇcnih stvari, na primer boje in ˇcolne. Z uporabo vme- snika COCO smo iz vseh slik, ki so vsebovale gore, ˇcolne ali boje, izrezali

(32)

(a) Primer slike iz zbirke COCO [8]. (b) Segmentacijska slika.

(c) Anotirana pozicija ˇcolna. (d) Izrezan ˇcoln s prosojnim ozadjem.

Slika 2.16: Primer postopka pridobivanja slike ˇcolna iz slike a), kjer je s pomoˇcjo roˇcne anotirane segmentacijske slike b) narejen kanal alfa in nato ˇse z anotirano pozicijo c) izrezan ˇcoln d).

omenjene ovire. Z uporabo kanala alfa, ki doloˇca deleˇz prosojnosti v slikah RGBA (red, green, blue, alpha), smo ohranili vidljivost ovire na sliki, ostalo pa naredili prosojno. Da ne bi priˇslo do ostrih robov, smo naredili dvodimen- zionalno konvolucijo (glej Sliko 2.2) z Gaussovim filtrom 5x5 na kanalu alfa.

Na koncu smo oviro ˇse izrezali iz originalne slike. Postopek (glej Sliko 2.16) smo avtomatizirali s skripto Python1 in za vse slike, ki so vsebovale ˇcoln, goro ali bojo, dobili izrezano oviro. Tako smo izrezali 2588 ˇcolnov, 396 boj in 3368 gora.

1https://www.python.org/

(33)

Diplomska naloga 19

Slika 2.17: Primera realnih vodnih scen iz zbirke MaSTr1325 [7].

2.3.3 BlenderProc

BlenderProc [10] je modularni cevovod, ki omogoˇca laˇzjo randomizacijo para- metrov, predvsem pa segmentacijo nastalih slik. Generiranje slike vodne scene in njene segmentacijske maske traja pribliˇzno 40 sekund. Randomizacija pa- rametrov je definirana v modulih, ki so poklicani iz datoteke config.yaml.

Moduli pa so navadne Blender Python API skripte [4]. V yaml datoteki lahko modulu tudi nastavimo vrednost spremenljivke. Cevovod se poˇzene s skripto run.pyalirun multiple times.py. Obe skripti sprejemata argumente, opi- sane v tem poglavju, prvi argument pa je vedno pot do yaml datoteke. Razlika med skriptama je samo v tem, da s skripto run multiple times.py lahko generiramo poljubno ˇstevilo slik, medtem ko pri skriptirun.pyto ni mogoˇce.

V nadaljevanju so vsi moduli vrstecustomModules, ki smo jih napisali za to nalogo, medtem ko so bili vsi drugi moduli ˇze spisani in smo jih samo prila- godili za uporabo.

Nastavitev

Cevovod se priˇcne z nastavitvijo, s katero podamo pot do nameˇsˇcenega pro- grama Blender [4].

"setup": {

"blender_install_path": "D:/Program Files/Blender"

}

(34)

Inicializator

Sledi inicializator, s katerim pod output dir podamo pot, kamor naj se shra- nijo generirane slike. Pot podamo ob zagonu cevovoda kot argument 2, ki zamenja vrednost <args:0>.

"module": "main.Initializer",

"config":{

"global": {

"output_dir": "<args:0>"

} }

Nalagalnik

Nato se izvede nalagalnik, ki pove, katero .blend datoteko naj cevovod uporablja. Ob zagonu cevovoda argument na mestu 3 zamenja vrednost

<args:1>, ki predstavlja pot do Blender [4] datoteke. Za ta cevovod velja, da datoteka vsebuje ocean A ali ocean B.

"module": "loader.BlendLoader",

"config": {

"path": "<args:1>"

}

Kamera

Po tem modulu se v sceno postavi kamera. Lokacijo in rotacijo kamere po- damo kot argument 4, ki nadomesti<args:2>. Kameri nastavimo vidno polje (angl. field of view) in doseg. Pri zbirki z oceanom A je kamera postavljena na viˇsino 50 metrov v razmerah simulacijskega okolja, pri zbirki z oceanom B pa na viˇsino 10 metrov. Kamera je pri generiranju scen vedno na enaki poziciji.

(35)

Diplomska naloga 21

"module": "camera.CameraLoader",

"config": {

"path": "<args:2>",

"file_format": "location rotation/value",

"intrinsics": {

"fov": 1.248,

"clip_end": 200000 }

}

Ocean

Za ocean je pomemben modul OceanModule. Vsak od obeh oceanov ima v modulu svojo funkcijo, zato je treba z nizom modulu sporoˇciti, katera funkcija naj se izvede.

"module": "customModules.OceanModule",

"config": {

"ocean": "OceanA"

}

Pri oceanu A se randomizira samo teksturiranje oceana in lokacija ter rotacija njegove sivinske maske. Za ocean B pa je randomiziranih kar nekaj parame- trov (glej Sliko 2.15): na zaˇcetku se izbere nakljuˇcno valovanje oceana, nato se z normalno porazdelitvijo randomizira velikost valov (2.1). Funkcija

wave scale=np.random.normal(1.6,0.7) (2.1) poveˇca verjetnost, da bo izbrana nakljuˇcna vrednost bliˇzja sredinski vrednosti 1,6. S standardnim odklonom 0,7 je doloˇcena razprˇsenost spremenljivke, ki pove, da ima pribliˇzno 68 % generiranih oceanov vrednost spremenljivke od 0,9 do 2,3. Ta naˇcin randomiziranja smo izbrali zato, da se generira veˇc oceanov, ki ne segajo v ekstreme valovanja (visoki valovi, mirna gladina), a ˇse vedno vsebujejo veliko primerov zrcaljenja ovir. Bolj ko je ocean umirjen,

(36)

bolj se ovire zrcalijo v njem. Sledi randomizacija smeri in poravnanosti valov.

Nato se z eksponentno funkcijo (2.2) randomizira intenzivnost morske pene, ki jo opisuje spremenljivka ocean foam. Funkcija

ocean f oam=random.unif orm(0.3(1/4),0.75(1/4))4 (2.2) poveˇca verjetnost, da bo izbrana nakljuˇcna vrednost bliˇzja minimalni vre- dnosti, pri tem pa minimalna (0,3) in maksimalna vrednost (0,75) ostajata nespremenjeni. Z veˇcanjem vrednosti n v eksponentih (1/n, n) poveˇcujemo verjetnost, da bo izbrana vrednost bliˇzja minimalni. S pomoˇcjo skripte smo doloˇcili, da je za ta primer najbolj ustrezna vrednost n v eksponentih 4 (1/4, 4). Manjˇso intenzivnost morske pene na generiranih slikah smo ˇzeleli doseˇci zato, ker prisotnost pene na evalvacijskih slikah ni pogosta. Poleg randomi- zacije oceana se v modulu OceanModule med drugim izvajajo ˇse izbira in rotacija neba ter nastavitev loˇcljivosti slike na 512 ×384.

Ovire

Najpomembnejˇsi moduli za ovire so BoatRandomizer, BuoyRandomizer in MountainRandomizer. Ti moduli dodajo razliˇcno ˇstevilo istoimenskih ovir v ocean glede na vrednost v yaml datoteki. Kot argumente podamo pot do direktorija izrezanih slik ovir. Za boje in ˇcolne smo za vsako oviro v yaml datoteki podali ˇse dve vrednosti: ˇstevilo ovir v celotni sceni in ˇstevilo ovir v bliˇznji sceni. S tem smo poveˇcali verjetnost, da so ovire bliˇze kameri. Pri bliˇznjih ovirah je zrcaljenje namreˇc bolj oˇcitno. Z veˇcjim ˇstevilom slik z zrca- ljenjem omogoˇcimo boljˇse uˇcenje razloˇcevanja med zrcaljenjem in dejanskim objektom. Klicanje modula za postavljanje boj v sceno je podobno kot za ˇcolne. Klicanje modula za postavljanje gora pa je drugaˇcno, saj se vedno postavi samo ena gora. Spodaj je prikazan samo primer klicanja modulaBo- atRandomizer.

(37)

Diplomska naloga 23

"module": "customModules.BoatRandomizer",

"config": {

"boats": 25,

"boats_close": {

"provider": "sampler.Value",

"type": "int",

"min": 1,

"max": 5 },

"path": "<args:3>"

}

ˇStevilo ovir v celotni sceni smo randomizirali z drugo funkcijo kot ˇstevilo bliˇznjih ovir. ˇStevilo ovir v celotni sliki smo randomizirali z eksponentno funkcijo podobno funkciji (2.2) z minimalno vrednostjo 0 in maksimalno vre- dnostjo 25. ˇStevilo bliˇznjih ovir pa smo randomizirali s funkcijo nakljuˇcnega izbiranja in doloˇcili minimalno vrednost 1, maksimalno vrednost pa 5. S tem smo dosegli, da je pri generiranih slikah relativno veˇc bliˇznjih ovir kot odda- ljenih, to pa pomeni manj slik z veˇcjim ˇstevilom oddaljenih ovir (ˇcolnov in boj).

Blender [4] ima dodatek (angl. add-on), ki ustvari ravnino (angl. plane) in samodejno prilepi sliko kot teksturo (glej Sliko 2.18). Ravnino prilagodi

(a) Poenoten pogled (angl. solid view).

(b) Renderiran pogled (angl. rende- red view).

Slika 2.18: Prikaz randomiziranih ovir v programu Blender [4].

(38)

dimenzijam slike, tako da se slika razteza ˇcez celo ravnino. Zgoraj omenjeni moduli naredijo ravno to: vzamejo nakljuˇcno izrezano oviro in s pomoˇcjo dodatka ustvarijo ravnino z izbrano sliko.

Kasneje pa se v cevovodu zgodi ˇse manipuliranje z nastalimi ravninami ovir. Z modulomEntityManipulator se vsaki oviri randomizira lokacija in ve- likost. Slike gora se poveˇcajo za nakljuˇcni faktor med 1000 in 2000, postavijo pa se na konec oceana. Slike boj se poveˇcajo za faktor 20, randomizacija nji- hove lokacije pa je podobna kot pri ˇcolnih. Primer klicanja modula, ki poveˇca vse ˇcolne poimenovaneBoat za faktor 80 na vseh treh oseh in nato premakne vsak ˇcoln posamiˇcno z nakljuˇcnimi vrednostmi, je podan spodaj. Premiki so omejeni zmin in max vrednostmi za posamezne osi x,y in z.

"module": "manipulators.EntityManipulator",

"config": {

"selector": {

"provider": "getter.Entity",

"conditions": {

"name": ’Boat.*’,

"type": "MESH"

} },

"location": {

"provider": "sampler.Uniform3d",

"max":[3000, 2500, 30],

"min":[-3000, -2850, 10]

},

"scale": [80,80,80]

} }

(39)

Diplomska naloga 25 Nebo

Sledi izbira neba z nalagalnikom HavenEnvironmentLoader, ki glede na pot do direktorija s Haven2 HDRI datotekami izbere nakljuˇcno nebo. Argument na mestu 8 zamenja vrednost<args:6 >.

"module": "loader.HavenEnvironmentLoader",

"config": {

"data_path": "<args:6>"

}

Nato se nebu doda ˇse dodatna lastnost, ki kasneje pove segmentaciji, da je to razred s ˇstevilko 0.

"module": "manipulators.WorldManipulator",

"config": {

"cf_set_world_category_id": 0 }

Upodabljalnik

Proti koncu se pokliˇceta ˇse upodabljalnika (angl. renderer) za nastanek para RGB in segmentacijske slike. Pri obeh nastavimo zastavico prioutput is temp naFalse, saj ˇzelimo, da se .png datoteka ne zavrˇze. Pri RGB upodabljalniku nastavimo simplify subdivision render na 0, da se upoˇstevajo uporabljene razdelitve oceana.

"module": "renderer.RgbRenderer",

"config": {

"output_is_temp": False,

"simplify_subdivision_render": 0 }

2https://polyhaven.com/hdris

(40)

Pri segmentacijskem upodabljalniku se modulu poˇslje naˇcin opredelitve segmentacije. Ovire se segmentirajo po razredih, ki so opredeljeni z lastnostmi predmetov. Vsem predmetom, ki nimajo lastnosti za opredelitev v razred, se dodeli vrednost 2. Tako se vsem oviram dodeli lastnost z enako vrednostjo in se segmentirajo v isto skupino. Na koncu ˇse sporoˇcimo, naj se upoˇsteva prosojnost izrezanih slik na ravninah.

"module": "renderer.SegMapRenderer",

"config": {

"map_by": ["class"],

"default_values": {"class": 2},

"output_is_temp": False,

"use_alpha": True }

Ker se segmentirana slika ne shrani v pravilnem formatu, se na koncu izvede ˇse pretvorba iz .npy v .png s pomoˇcjo modula SegToPngModule. Za argument se uporabi ˇze podana vrednost poti, kamor se datoteke shranjujejo.

"module": "customModules.SegToPngModule",

"config":{

"path": "<args:0>"

}

2.3.4 Primeri generiranih sintetiˇ cnih slik

Prikazani so primeri generiranih sintetiˇcnih slik. Poleg njih je na desni ˇse njihova segmentacijska maska, kjer je z vijoliˇcno barvo oznaˇceno nebo, s turkizno barvo voda in z rumeno barvo ovire. Vse generirane slike so javno dostopne na spletnih straneh laboratorija Vicos.

(41)

Diplomska naloga 27 Zbirka z oceanom A

Spodaj (2.19) so prikazani primeri generiranih slik z oceanom A in njihove se- gmentacijske slike. Ocean se razlikuje samo glede na nebo in rotacije teksture oceana. Same slike pa vsebujejo nakljuˇcno postavljene ovire.

(42)

Slika 2.19: Prikaz nekaj primerov iz zbirke sintetiˇcnih slik z oceanom A.

(43)

Diplomska naloga 29 Zbirka z oceanom B

Spodaj (2.20) so prikazani primeri generiranih slik z oceanom B in njihove segmentacijske slike. Ocean ima veliko nakljuˇcno doloˇcenih parametrov, zato je tudi bolj raznolik. Pri nekaterih scenah ocean vsebuje morsko peno. Tako kot pri oceanu A se tudi tukaj nakljuˇcno izbere in rotira nebo ter se nakljuˇcno postavijo ovire.

(44)

Slika 2.20: Prikaz nekaj primerov iz zbirke sintetiˇcnih slik z oceanom B.

(45)

Poglavje 3 Evalvacija

Z ustvarjenimi sintetiˇcnimi zbirkami je natrenirana segmentacijska mreˇza WaSR [5] in nato izvedena evalvacija rezultatov. Na zaˇcetku je v Poglavju 3.1 predstavljena uporabljena strojna in programska oprema ter druge podrob- nosti implementacije. V naslednjem Poglavju 3.2 je opisana zbirka Modd2 [6], na kateri so bile natrenirane mreˇze evalvirane. Predstavljen je naˇcin eval- viranja nastalih segmentacijskih slik in performanˇcne mere. Na koncu so v Poglavju 3.3 ˇse rezultati in analiza uˇcinkovitosti uˇcenja iz sintetiˇcnih zbirk in iz realne zbirke MaSTr1325 [7] oziroma iz kombinacije navedenih zbirk.

3.1 Implementacijske podrobnosti

3.1.1 Strojna in programska oprema

Generiranje sintetiˇcnih slik in treniranje mreˇze je potekalo na razliˇcnih stroj- nih opremah. Generiranje je potekalo na osebnem raˇcunalniku s specifikaci- jami prikazanimi v Tabeli 3.1. Ker pa treniranje nevronskih mreˇz zahteva boljˇso strojno opremo, smo jih uˇcili na razliˇcnih streˇznikih v laboratoriju Vicos FRI. Specifikacije streˇznikov so prikazane v Tabelah 3.2, 3.3 in 3.4.

Generiranje podatkov je implementirano v programskem jeziku Python in s programom Blender [4]. Segmentacijska mreˇza je tudi implementirana v jeziku Python v ogrodju PyTorch.

31

(46)

komponenta specifikacije

CPU Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz (4 jeder)

RAM 16 GB

GPU GeForce GTX 1060 (6 GB VRAM)

Tabela 3.1: Specifikacije osebnega raˇcunalnika.

komponenta specifikacije

CPU Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (6 jeder)

RAM 126 GB

GPU 4x NVIDIA TITAN X (12 GB VRAM)

Tabela 3.2: Specifikacije streˇznika donbot.

komponenta specifikacije

CPU Intel(R) Xeon(R) CPU E5-1650 v3 @ 3.50GHz (6 jeder)

RAM 126 GB

GPU GeForce GTX 1080 Ti (11 GB VRAM)

Tabela 3.3: Specifikacije streˇznika morbo.

komponenta specifikacije

CPU Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz (12 jeder)

RAM 377 GB

GPU 4x NVIDIA Quadro RTX 5000 (16 GB VRAM) in 2x NVIDIA Quadro RTX 8000 (48 GB VRAM)

Tabela 3.4: Specifikacije streˇznika flexo.

(47)

Diplomska naloga 33

3.1.2 Metode uporabljene pri uˇ cenju

Z isto sintetiˇcno zbirko je natreniranih veˇc mreˇz z razliˇcnimi metodami in hiperparametri. Vse mreˇze so vsebovale razˇsirjanje uˇcne mnoˇzice in bile tre- nirane s paketi velikosti 4 za 50 epoh. Zaˇcetna stopnja uˇcenja pri mreˇzah je 10-6, razen pri mreˇzah, pri katerih sta za uˇcenje uporabljeni celotni zbirki, torej 2650 slik. Pri teh je zaˇcetna stopnja uˇcenja enaka 10-5. Polinomsko upadanje (angl. polynomial decay) stopnje uˇcenja povsod znaˇsa 0,9. V tem poglavju so posamezne metode razloˇzene, v naslednjem pa je opisano, katere metode so uporabljene pri treniranju razliˇcnih mreˇz.

Razˇsirjanje uˇcne mnoˇzice

Metoda razˇsirjanja uˇcne mnoˇzice (angl. data augmentation) je uporabljena, preden je slika poslana v mreˇzo. Z razliˇcnimi metodami lahko generiramo bolj raznolike slike in s tem zmanjˇsamo problem prekomernega prilagajanja in poveˇcamo robustnost mreˇze. Oboje je doseˇzeno z navpiˇcnim zrcaljenjem, osrednjo rotacijo za najmanj ±5 in najveˇc ±15 stopinj, barvnim prenosom in elastiˇcno deformacijo vode.

Uporaba paketov

Zaradi teˇznje po hitrejˇsem treniranju in hitrejˇsi konvergenci v mreˇzo poˇsiljamo po veˇc slik hkrati. Slike zdruˇzimo v paket (angl. data batch) in uteˇzi v mreˇzi se spremenijo glede na paket. Zaradi omejitev pomnilnika in procesorske moˇci so bile mreˇze trenirane s ˇstirimi slikami v paketu. Da bi zagotovili prisotnost sintetiˇcnih slik pri treniranju, smo pri nekaterih mreˇzah slike zdruˇzili v pa- ket tako, da je vsak paket vseboval tri slike iz zbirke MaSTr1325 [7] in eno sintetiˇcno sliko.

Prenos barv

S prenosom barv [18] doseˇzemo veˇcjo podobnost med slikama. S pretvorbo slike v barvni prostor Lab* lahko, z uporabo povpreˇcja in standardnega od-

(48)

klona kanalov, prenesemo barve iz ene slike v drugo (glej Sliko 3.1). Tako smo pri treniranju nekaterih mreˇz prenesli barve iz zbirke MaSTr1325 [7] na sintetiˇcne slike. Za vsako sintetiˇcno sliko smo izbrali nakljuˇcno sliko iz zbirke MaSTr1325 in izvedli postopek prenosa barv.

(a) Sintetiˇcna slika. (b) Sintetiˇcna slika po prenosu barve.

Slika 3.1: Primer rezultata metode prenosa barv iz zbirke MaSTr1325 [7] na sintetiˇcno sliko oceana A.

Hiperparametri

Na zaˇcetku poglavja so omenjeni nekateri hiperparametri, ki so uporabljeni pri uˇcenju segmentacijske mreˇze. Stopnja uˇcenja (angl. learning rate) vpliva na to, kako hitro bo model konvergiral pri uˇcenju. Hitrost uˇcenja se zmanjˇsuje po krivulji polinomskega upadanja. Pri uˇcenju z veˇcjimi zbirkami je zato zaˇcetna stopnja uˇcenja nekoliko veˇcja. S ˇstevilom epoh doloˇcamo, koliko- krat se bo mreˇza uˇcila iz celotne zbirke. V vsakem obhodu se vrstni red slik pri uˇcenju randomizira in tako tudi vsebina paketov. Ker nebo ni naj- bolj pomembno za detekcijo ovir na vodni povrˇsini, je pri nekaterih mreˇzah uˇcenje loˇcevanja neba in ovir izpuˇsˇceno. Loˇcevanje upravljamo z zastavico separation-loss-sky.

(49)

Diplomska naloga 35

3.2 Postopek evalvacije

Uˇcinkovitost mreˇz se ocenjuje na naboru podatkov Modd2 [6] (glej Sliko 3.2).

Trenutno je to najbolj kompleksen javni nabor podatkov za vodna vozila brez posadke. Vsebuje kar 94 sekvenc slik posnetih v razliˇcnih okoljih. Odlikuje ga velika raznolikost in vsebuje zapletene scene (zrcaljenje predmetov, blesk sonca in razliˇcne vremenske razmere). Slike so roˇcno segmentirane, ovire pa so poleg tega omejene s pravokotnikom.

Slika 3.2: Primer Modd2 zbirke [6] z moˇcnim bleskom sonca in zrcaljenjem ovir.

3.2.1 Performanˇ cne mere

Natrenirana mreˇza naredi segmentacijo ˇzelene slike. Sliko razdeli v tri se- gmente (voda, nebo ali ovira). Glede na roˇcno anotirane slike, lahko preve- rimo, kako uspeˇsno je segmentacija potekla. Detekcije ovir v segmentirani sliki so razdeljene v pravilne (angl. true positive – TP), napaˇcne (angl. false positive – FP) in manjkajoˇce detekcije (angl. false negative – FN). ˇCe je ovira vsaj 50-odstotno pravilno segmentirana (vsaj 50 odstotkov pikslov ovire je v

(50)

segmentacijski sliki oznaˇcenih kot ovira), velja za pravilno detekcijo. V na- sprotnem primeru gre za manjkajoˇco detekcijo. Napaˇcna detekcija pa pomeni, da je na segmentacijski sliki skupek slikovnih pik oznaˇcen kot ovira, ˇceprav je tam voda. Ker za vodno vozilo ni najbolj pomembno, kaj se dogaja na nebu, se napaˇcne detekcije tam ne ˇstejejo. Detekcije so razdeljene na detekcije zno- traj nevarnega obmoˇcja in detekcije na celotni sliki, saj bliˇzje ovire predsta- vljajo veˇcjo nevarnost plovilu. Poleg detekcije ovir se evalvira tudi zaznavo vodnega roba. Meri se kot korenska napaka (angl. root-mean-square-error – RMSE) poloˇzaja vodnega roba in se uporablja za doloˇcanje obmoˇcij, ki so varna za navigacijo. Z vsoto dobljenih detekcij lahko izraˇcunamo natanˇcnost, priklic in F-mero, ki opisujejo uspeˇsnost mreˇze evalvirane na celotni Modd2 zbirki. V nadaljevanju je ˇstevilo pravilnih detekcij oznaˇceno s TP, ˇstevilo napaˇcnih detekcij s FP in ˇstevilo manjkajoˇcih detekcij s FN.

Postopek evalviranja je avtomatiziran in generira skupek slik. V zgor- njem levem kotu leˇzi originalna slika, na sredini je segmentacija slike, desno pa so izpisani podatki o evalvaciji. Poleg tega se na segmentacijski sliki, ki se razteza ˇcez celoten okvir, oznaˇcijo detekcije. Z zelenimi pravokotniki so oznaˇcene pravilne detekcije, z rdeˇcimi pravokotniki manjkajoˇce detekcije in z rumenimi pravokotniki napaˇcne detekcije (glej Sliko 3.3).

(51)

Diplomska naloga 37

Slika 3.3: Primer evalvacije na sliki iz zbirke Modd2 [6]. Segmentacijska slika je bila generirana z mreˇzo trenirano na zbirki MaSTr1325 [7].

3.2.2 Mere

Natanˇcnost

Z natanˇcnostjo (angl. precision – Pr) oznaˇcujemo deleˇz pravilnih detekcij.

Veˇcji kot je TP in poslediˇcno natanˇcnost, veˇc detekcij je pravilnih. Na- tanˇcnost se izraˇcuna po formuli (3.1):

P r= T P

T P +F P. (3.1)

(52)

Priklic

Deleˇz vseh detektiranih ovir oznaˇcuje priklic (angl. recall – Re). Veˇcji kot je TP in poslediˇcno priklic, veˇc je detektiranih ovir. Priklic se izraˇcuna po formuli (3.2):

Re= T P

T P +F N. (3.2)

F-mera

Za laˇzje primerjavo modelov uvedemo F-mero (angl. F-score), ki zdruˇzuje natanˇcnost in priklic. Veˇcja F-mera pomeni boljˇso detekcijo ovir. Izraˇcuna se po formuli (3.3):

F = 2

P r−1+Re−1. (3.3)

3.3 Rezultati in analiza

V tem poglavju so prikazani rezultati uˇcenja segmentacijskih mreˇz. Rezultate uˇcenja teh mreˇz smo primerjali z rezultati uˇcenja dveh mreˇz, treniranih na zbirki MaSTr1325 [7]. Od teh dveh mreˇz je imela ena pri uˇcenju zastavico separation-loss-sky nastavljeno na False, druga pa na True. V nadaljevanju so vse mreˇze, trenirane z zastavico separation-loss-sky nastavljeno na True, oznaˇcene s podpisomSky. Mreˇze trenirane s sintetiˇcnimi zbirkami, na katerih je bila izvedena metoda prenosa barv, so oznaˇcene s podpisom Colour. S podpisom Mix so oznaˇcene mreˇze, ki so trenirane na sintetiˇcnih zbirkah, kjer paketi pri uˇcenju vsebujejo eno sintetiˇcno sliko in tri slike iz zbirke MaSTr1325. Detekcije in F-mera so razdeljene na vse detekcije in detekcije v nevarnem obmoˇcju. V tabelah so ˇstevila detekcij v nevarnem obmoˇcju podana v oklepajih. Pri mreˇzah, ki so trenirane na sintetiˇcnih slikah, je v podpisu napisano ˇstevilo uporabljenih sintetiˇcnih slik pri treniranju. Pri mreˇzah, ki pa so trenirane na zbirki MaSTr1325 [7] je ˇstevilo uporabljenih slik vedno 1325.

(53)

Diplomska naloga 39

3.3.1 Uˇ cenje na zbirki MaSTr1325

Mreˇza uˇcena na zbirki MaSTr1325 [7] prinaˇsa izjemne rezultate pri segmen- taciji vodnih scen. ˇSe zmeraj pa se sreˇcuje z nekaterimi teˇzavami, kot je zr- caljenje ovir na vodni gladini (glej Sliko 1.1 in 3.3). Teˇzave nastopijo tudi pri detekciji ovir v daljavi (glej Sliko 3.4). Rezultati evalvacije mreˇz so prikazani v Tabeli 3.5.

mreˇza TP FP FN RMSE F-mera [%]

WaSR M 47.252 (678) 1.623(290) 4.962 (16) 23 93,5 (81,6) WaSR Msky 47.853(675) 1.849 (284) 4634(19) 23 93,7(81,7)

WaSR M: segmentacijska mreˇza nauˇcena na zbirki MaSTr1325 [7];Sky: upoˇstevanje metode loˇcevanja neba in ovir. Pri rezultatih prvo ˇstevilo oznaˇcuje ˇstevilo detekcij v celotnem obmoˇcju, ˇstevilo v oklepaju pa oznaˇcuje ˇstevilo detekcij v nevarnem obmoˇcju.

Tabela 3.5: Rezulati evalvacij mreˇz nauˇcenih na zbirki MaSTr1325 [7].

Slika 3.4: Primer velikega ˇstevila manjkajoˇcih detekcij (ovire v daljavi niso oznaˇcene kot ovire) pri evalvaciji mreˇze trenirane na zbirki MaSTr1325 [7].

(54)

3.3.2 Uˇ cenje na sintetiˇ cnih zbirkah

Zbirka trenirana na slikah, ki so bile generirane z oceanom A, je poimenovana kar Ocean A. Ravno tako se zbirka s slikami, ki so bile generirane na oceanu B, imenuje kar Ocean B. Vsaka od zbirk vsebuje 1325 generiranih sintetiˇcnih slik. Treniranje samo na sintetiˇcnih zbirkah z omejeno strojno opremo in samodejnim generiranjem ne prinese zadovoljivih rezultatov. Primerjava re- zultatov evalvacij mreˇz so prikazani v Tabeli 3.6.

mreˇza TP FP FN RMSE F-mera [%]

WaSR M 47.252 (678) 1.623(290) 4.962 (16) 23 93,5 (81,6) WaSR Msky 47.853(675) 1.849 (284) 4.634(19) 23 93,7(81,7) WaSR A1325 38.651 (659) 29.070 (20746) 13.836 (35) 51 64,3 (6,0) WaSR B1325 42.566 (391) 4.061 (21) 9.921 (303) 37 85,9 (70,7)

WaSR M: segmentacijska mreˇza nauˇcena samo na zbirki MaSTr1325 [7];WaSR A: segmentacijska mreˇza nauˇcena samo na zbirki Ocean A; WaSR B: segmentacijska mreˇza nauˇcena samo na zbirki Ocean B;

Sky: upoˇstevanje metode loˇcevanja neba in ovir. ˇStevila v podpisu oznaˇcujejo ˇstevilo sintetiˇcnih slik, uporabljenih pri uˇcenju. Pri rezultatih prvo ˇstevilo oznaˇcuje ˇstevilo detekcij v celotnem obmoˇcju, ˇstevilo v oklepaju pa oznaˇcuje ˇstevilo detekcij v nevarnem obmoˇcju.

Tabela 3.6: Primerjava rezultatov evalvacij mreˇz nauˇcenih na celotni zbirki Ocean A ali na celotni zbirki Ocean B z mreˇzama, ki sta nauˇcena samo na zbirki MaSTr1325 [7].

Pri mreˇzi, trenirani na zbirki Ocean A, je veliko napaˇcnih detekcij ovir, kjer je v resnici samo vodna gladina (glej Sliko 3.5). Nasprotno se pri mreˇzi, trenirani na zbirki Ocean B, pojavi malo napaˇcnih detekcij, vendar veˇc manjkajoˇcih detekcij. V nevarnem obmoˇcju ima ta mreˇza presenetljivo malo napaˇcnih in veliko manjkajoˇcih detekcij. Iz rezultatov lahko sklepamo, da se mreˇza, trenirana na zbirki Ocean B, ni dovolj dobro nauˇcila segmenta- cije bliˇznje okolice (glej Sliko 3.6). Sintetiˇcne slike niso dovolj realistiˇcne in raznolike, da bi lahko odliˇcno napovedovale segmentacijo slik zajetih s kamero. Kljub slabˇsim rezultatom obstajajo primeri, kjer se segmentacija izvede uspeˇsno (glej Sliko 3.7).

(55)

Diplomska naloga 41

Slika 3.5: Primer slabe segmentacije (vodna gladina je oznaˇcena kot ovira) pri evalvaciji mreˇze trenirane na zbirki Ocean A.

Slika 3.6: Primer pomanjkljive segmentacije ovire (del plovila je oznaˇcen kot nebo) pri evalvaciji mreˇze trenirane na zbirki Ocean B.

(56)

Slika 3.7: Primer uspeˇsne segmentacije pri evalvaciji mreˇze trenirane na zbirki Ocean A.

3.3.3 Uˇ cenje z meˇ sanjem sintetiˇ cnih slik in MaSTr1325

Z uˇcenjem s kombinacijo sintetiˇcnih in realnih slik je moˇzno doseˇci boljˇso F- mero in bolj natanˇcne segmentacije. Za uˇcenje je uporabljena celotna zbirka MaSTr1325 [7] v kombinaciji s 441 ali 1325 sintetiˇcnimi slikami. Z metodami in hiperparametri, opisanimi v zaˇcetku poglavja, je doseˇzeno veˇcje ˇstevilo pra- vilnih detekcij in manjˇse ˇstevilo napaˇcnih detekcij. Pri preverjanju uspeˇsnosti uˇcenja mreˇz smo uporabili posamezne metode ter vse moˇzne permutacije teh metod. Zaradi preglednosti so v tabelah 3.7 in 3.8 prikazani samo rezultati mreˇz, treniranih brez dodatnih metod, in mreˇz, ki so imele boljˇse rezultate pri evalvaciji kot mreˇze, trenirane samo na zbirki MaSTr1325. Za primerjavo rezultatov evalvacije so na zaˇcetku prikazani tudi rezultati mreˇz, trenirane samo na zbirki MaSTr1325.

(57)

Diplomska naloga 43 Uˇcenje z meˇsanjem zbirk Ocean A in MaSTr1325

Uˇcenje mreˇz z zbirko MaSTr1325 [7] v kombinaciji z zbirko Ocean A prinaˇsa obetavne rezultate. Veˇcina nauˇcenih mreˇz s 441 slikami iz zbirke Ocean A ima veliko napaˇcnih detekcij v nevarnem obmoˇcju, kar pomeni nizko F-mero v nevarnem obmoˇcju. Mreˇza, ki je bila nauˇcena s 441 slikami iz zbirke Ocean A in metodama prenosa barv ter upoˇstevanja neba, pa je po obeh F-merah celo presegla mreˇzo, nauˇceno samo z zbirko MaSTr1325 [7]. S poveˇcanjem ˇstevila slik sintetiˇcne zbirke pa so rezultati v nevarnem obmoˇcju opazno boljˇsi, ven- dar slabˇsi v celotnem obmoˇcju. V Tabeli 3.7 je prikazana primerjava rezul- tatov evalvacij mreˇz.

mreˇza TP FP FN RMSE F-mera [%]

WaSR M 47.252 (678) 1.623 (290) 4.962 (16) 23 93,5 (81,6) WaSR Msky 47.853 (675) 1.849 (284) 4.634 (19) 23 93,7 (81,7) WaSR MA441 47.881 (677) 1.991 (443) 4.606 (17) 21 93,6 (74,6) WaSR MA441,colour,mix 48.188(675) 2.024 (485) 4.299(19) 23 93,8 (72,8) WaSR MA441,colour,sky 47.830 (680) 1.410(240) 4.657 (14) 21 94,0(84,3) WaSR MA1325 46.224 (684) 2.624 (258) 6.263 (10) 21 91,2 (83,6) WaSR MA1325,colour,sky 46.699 (683) 2.682 (215) 5.788 (11) 21 91,7 (85,8)

WaSR M: segmentacijska mreˇza nauˇcena samo na zbirki MaSTr1325;WaSR MA: segmentacijska mreˇza nauˇcena na zbirkah MaSTr1325 in Ocean A; colour: metoda prenosa barv;mix: metoda s paketi, ki vsebujejo 1 sintetiˇcno in 3 realne slike;Sky: upoˇstevanje metode loˇcevanja neba in ovir. ˇStevila v podpisu oznaˇcujejo ˇstevilo sintetiˇcnih slik, uporabljenih pri uˇcenju. Pri rezultatih prvo ˇstevilo oznaˇcuje ˇstevilo detekcij v celotnem obmoˇcju, ˇstevilo v oklepaju pa oznaˇcuje ˇstevilo detekcij v nevarnem obmoˇcju.

Tabela 3.7: Primerjava rezultatov evalvacij mreˇz nauˇcenih na kombinaciji zbirke Ocean A in celotne zbirke MaSTr1325 [7] z mreˇzama, ki sta nauˇcena samo na zbirki MaSTr1325.

Uˇcenje z meˇsanjem zbirk Ocean B in MaSTr1325

F-mera iz mreˇze, nauˇcene z zbirko MaSTr1325 [7] v kombinaciji z zbirko Ocean B, v nasprotju s priˇcakovanji ni nikoli presegla F-mer iz obeh mreˇz, nauˇcenih samo na zbirki MaSTr1325. S 441 slikami nauˇcene mreˇze niso prika- zale boljˇsih rezultatov, ˇceprav so rezultati pri uˇcenju samo na zbirki Ocean B

(58)

boljˇsi kot pri uˇcenju samo na zbirki Ocean A. F-mera za nevarno obmoˇcje je najviˇsja pri uˇcenju mreˇze s kombinacijo zbirke MaSTr1325 in celotne zbirke Ocean B ter z metodo upoˇstevanja neba. V Tabeli 3.8 je prikazana primerjava rezultatov evalvacij mreˇz.

mreˇza TP FP FN RMSE F-mera [%]

WaSR M 47.252 (678) 1.623 (290) 4.962 (16) 23 93,5 (81,6) WaSR Msky 47.853 (675) 1.849 (284) 4.634 (19) 23 93,7(81,7) WaSR MB441 47.461 (671) 2.190 (373) 5.026 (23) 22 92,9 (77,2) WaSR MB441,colour 48.135(672) 2.959 (403) 4.352(22) 20 92,9 (76,0) WaSR MB441,sky 46.526 (675) 1.544 (258) 5.961 (19) 22 92,5 (83,0) WaSR MB1325 45.215 (677) 1.485(235) 7.272 (17) 20 91,2 (84,3) WaSR MB1325,sky 46.168 (679) 1.763 (196) 6.319 (15) 22 92,0 (86,6)

WaSR M: segmentacijska mreˇza nauˇcena samo na zbirki MaSTr1325;WaSR MB: segmentacijska mreˇza nauˇcena na zbirkah MaSTr1325 in Ocean B; colour: metoda prenosa barv;Sky: upoˇstevanje metode loˇcevanja neba in ovir. ˇStevila v podpisu oznaˇcujejo ˇstevilo sintetiˇcnih slik, uporabljenih pri uˇcenju. Pri rezultatih prvo ˇstevilo oznaˇcuje ˇstevilo detekcij v celotnem obmoˇcju, ˇstevilo v oklepaju pa oznaˇcuje ˇstevilo detekcij v nevarnem obmoˇcju.

Tabela 3.8: Primerjava rezultatov evalvacij mreˇz nauˇcenih nauˇcenih na kom- binaciji zbirke Ocean B in celotne zbirke MaSTr1325 [7] z mreˇzama, ki sta nauˇcena samo na zbirki MaSTr1325.

Primerjava najboljˇsih rezultatov

Uˇcenje s kombinacijo sintetiˇcnih zbirk in zbirke MaSTr1325 [7] je precej obe- tavno. S treniranjem s 441 slikami iz zbirke Ocean A in celotno zbirko Ma- STr1325 sta doseˇzeni viˇsji obe F-meri (za celotno in za nevarno obmoˇcje) v primerjavi s treniranjem samo z zbirko MaSTr1325. Superiornost se po- zna pri ˇstevilu napaˇcnih detekcij (glej Tabelo 3.7) in detekciji manjˇsih ovir (glej Sliko 3.8). S treniranjem s celotnima zbirkama Ocean B in MaSTr1325 je doseˇzena F-mera v nevarnem obmoˇcju viˇsja za kar 5 % v primerjavi s treniranjem samo z zbirko MaSTr1325 (glej Tabelo 3.8). Rezultati so boljˇsi tudi pri ˇstevilu napaˇcnih detekcij, zlasti v nevarnem obmoˇcju (glej Sliko 3.9), slabˇsi pa so pri manjkajoˇcih detekcijah.

(59)

Diplomska naloga 45

Slika 3.8: Evalvacija mreˇze, trenirane na kombinaciji 441 slik iz zbirke Ocean A in celotne zbirke MaSTr1325 [7]. V primerjavi z evalvacijo na Sliki 3.4 je segmentacija manjˇsih ovir v daljavi bolj natanˇcna.

Slika 3.9: Evalvacija mreˇze, trenirane na kombinaciji celotne zbirke Ocean B in MaSTr1325 [7]. V primerjavi z evalvacijo na Sliki 3.3 je segmentacija vidno boljˇsa. Napaˇcna detekcija zrcaljenja ovire je pri segmentaciji minimalna.

(60)
(61)

Poglavje 4 Sklep

Naloga vsebuje analizo podatkov za oceno F-mere, ki opisuje, koliko se lahko segmentacijske metode za vodno okolje nauˇcijo segmentacije iz simuliranih slik. Naredili smo simulacijsko okolje, ki je zmoˇzno generirati sintetiˇcne slike vodnih scen in njihove segmentacijske maske. Postopek samodejnega gene- riranja poteka s programom Blender [4], ki s pomoˇcjo modularnega cevo- voda BlenderProc [10] omogoˇca laˇzje generiranje nakljuˇcnih vodnih scen in segmentacijske maske za vsako sceno. Segmentacijska maska opredeli vsak piksel na sliki kot: 1-voda, 2-ovira/kopno ali 3-nebo. Z dovolj veliko podat- kovno zbirko sintetiˇcnih slik je omogoˇceno treniranje segmentacijskih mreˇz, ki vsebujejo samo zbirko sintetiˇcnih slik, samo zbirko, posneto v Kopru, ime- novano MaSTr1325 [7] ter kombinacijo obeh zbirk. Rezultati so evalvirani na posebni zbirki, ki se imenuje Modd2 [6]. F-mera je izraˇcunana loˇceno za de- tekcije celotnega obmoˇcja in detekcije znotraj nevarnega obmoˇcja. Z mreˇzo, ki je trenirana na kombinaciji obeh zbirk, je dobljena F-mera znotraj nevar- nega obmoˇcja za 5 % viˇsja kot z mreˇzo, uˇceno na zbirki brez sintetiˇcnih slik.

F-mera za celotno obmoˇcje pa je z mreˇzo, ki je trenirana na kombinaciji obeh zbirk, za 0,3 % viˇsja kot z mreˇzo, uˇceno na zbirki brez sintetiˇcnih slik. Na osnovi teh rezultatov ugotavljamo, da je z uˇcenjem na kombinaciji realnih in sintetiˇcnih slik mogoˇce izboljˇsati segmentacijske mreˇze za detekcijo ovir na vodi.

47

(62)

4.1 Nadaljnje delo

Tekom razvoja simulacijskega okolja in treniranja mreˇz so se pogosto poja- vljale ideje za moˇzne izboljˇsave. S ˇstevilom ovir in njihovimi pozicijami na slikah moˇcno vplivamo na uˇcenje mreˇz. Na uˇcenje vplivajo tudi lastnosti sa- mega oceana in velikost valov. Z veˇc poskuˇsanj bi lahko ugotovili idealne parametre, s katerimi bi lahko zveˇcali ˇstevilo pravilnih in zmanjˇsali ˇstevilo napaˇcnih detekcij. Naslednja stvar so slike ovir, ki so v nekaterih primerih glede na COCO [8] ali LVIS [12] anotacije nerealistiˇcne. ˇCe bi se v vodno sceno postavljale samo ovire, ki izgledajo dovolj realistiˇcne, bi bili rezultati zagotovo boljˇsi. Poleg tega bi uˇcenje mreˇze lahko avtomatizirali tako, da se glede na to, kje mreˇza odpove, samodejno generira veˇc vodnih scen, kar bi lahko napako popravilo. ˇCe na primer segmentacija nauˇcene mreˇze odpove pri zrcaljenju ovir v nevarnem obmoˇcju, bi simulacijsko okolje lahko generiralo veˇc sintetiˇcnih slik z bolj mirujoˇco vodo in ovirami bliˇzje kameri.

(63)

Celotna literatura

[1] Barbara Aljaˇz.Uˇcenje konvolucijskih nevronskih mreˇz iz sintetiˇcnih po- datkov na primeru detekcije rok: diplomsko delo: univerzitetni ˇstudijski program prve stopnje Raˇcunalniˇstvo in informatika. Bibliografija: str.

45-49 Povzetek ; Abstract: Using synthetic data to train convolutional neural networks for the case of hand detection. [B. Aljaˇz], 2018. url: http://eprints.fri.uni-lj.si/4169/.

[2] Atrous Spatial Pyramid Pooling). url: https://www.researchgate.

net / profile / Lin - Chen - 108 / publication / 331556645 / figure / fig1 / AS : 733487137054723 @ 1551888369843 / Illustration - of - Atrous - Spatial - Pyramid - Pooling - ASPP - Max - pooling - a - 11 - convolution-and.ppm (pridobljeno 3. 9. 2021).

[3] Average pooling. url: https : / / media . geeksforgeeks . org / wp - content/uploads/20190721030705/Screenshot- 2019- 07- 21- at- 3.05.56-AM.png(pridobljeno 3. 9. 2021).

[4] Blender. url:https://www.blender.org/ (pridobljeno 3. 9. 2021).

[5] Borja Bovcon in Matej Kristan.A water-obstacle separation and refine- ment network for unmanned surface vehicles. 2020. arXiv:2001.01921 [cs.CV].

[6] Borja Bovcon in sod. “Stereo obstacle detection for unmanned surface vehicles by IMU-assisted semantic segmentation”. V:Robotics and Au- tonomous Systems 104 (2018), str. 1–13.issn: 0921-8890. doi:https:

49

(64)

//doi.org/10.1016/j.robot.2018.02.017. url: https://www.

sciencedirect.com/science/article/pii/S0921889017305808.

[7] Borja Bovcon in sod. “The MaSTr1325 dataset for training deep USV obstacle detection models”. V: 2019 IEEE/RSJ International Confe- rence on Intelligent Robots and Systems (IROS). 2019, str. 3431–3438.

doi: 10.1109/IROS40897.2019.8967909.

[8] Holger Caesar, Jasper Uijlings in Vittorio Ferrari. “COCO-Stuff: Thing and Stuff Classes in Context”. V: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Jun. 2018.

[9] Xiang Chen, Yuanchang Liu in Kamalasudhan Achuthan. “WODIS:

Water Obstacle Detection Network Based on Image Segmentation for Autonomous Surface Vehicles in Maritime Environments”. V: IEEE Transactions on Instrumentation and Measurement 70 (2021), str. 1–

13. doi: 10.1109/TIM.2021.3092070.

[10] Maximilian Denninger in sod. BlenderProc. 2019. arXiv: 1911.01911 [cs.CV].

[11] Dvodimenzionalna konvolucija.url:https://docs-assets.developer.

apple . com / published / 09348c5368 / a55b1477 - 4f79 - 4221 - 8aa1 - ab3ae9f01f89.png(pridobljeno 3. 9. 2021).

[12] Agrim Gupta, Piotr Dollar in Ross Girshick. “LVIS: A Dataset for Large Vocabulary Instance Segmentation”. V:Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.

[13] Mohammad Hamghalam, Baiying Lei in Tianfu Wang. “Brain Tumor Synthetic Segmentation in 3D Multimodal MRI Scans”. V: Brainle- sion: Glioma, Multiple Sclerosis, Stroke and Traumatic Brain Injuries.

Ur. Alessandro Crimi in Spyridon Bakas. Cham: Springer International Publishing, 2020, str. 153–162.isbn: 978-3-030-46640-4.

(65)

Diplomska naloga 51 [14] Image-Based Ship Detection and Classification for Unmanned Surface Vehicle Using Real-Time Object Detection Neural Networks. Zv. All Days. International Ocean and Polar Engineering Conference. ISOPE- I-18-411. Jun. 2018. eprint: https : / / onepetro . org / ISOPEIOPEC / proceedings - pdf / ISOPE18 / All - ISOPE18 / ISOPE - I - 18 - 411 / 1205554/isope-i-18-411.pdf.

[15] Max pooling.url:https://media.geeksforgeeks.org/wp-content/

uploads/20190721025744/Screenshot- 2019- 07- 21- at- 2.57.13- AM.png (pridobljeno 3. 9. 2021).

[16] T.G. McGee, R. Sengupta in K. Hedrick. “Obstacle Detection for Small Autonomous Aircraft Using Sky Segmentation”. V:Proceedings of the 2005 IEEE International Conference on Robotics and Automation. 2005, str. 4679–4684. doi:10.1109/ROBOT.2005.1570842.

[17] Razˇsrijena konvolucija.url:https://paragmali.me/content/images/

2019/09/dilation.gif(pridobljeno 3. 9. 2021).

[18] E. Reinhard in sod. “Color transfer between images”. V:IEEE Compu- ter Graphics and Applications 21.5 (2001), str. 34–41. doi: 10.1109/

38.946629.

[19] ReLU aktivacijska funkcija. url: https://www.researchgate.net/

profile / Leo - Pauly / publication / 319235847 / figure / fig3 / AS : 537056121634820@1505055565670/ReLU-activation-function.png (pridobljeno 3. 9. 2021).

[20] German Ros in sod. “The SYNTHIA Dataset: A Large Collection of Synthetic Images for Semantic Segmentation of Urban Scenes”. V:Pro- ceedings of the IEEE Conference on Computer Vision and Pattern Re- cognition (CVPR). Jun. 2016.

[21] Self-driving car. url: https : / / en . wikipedia . org / wiki / Self - driving_car(pridobljeno 3. 9. 2021).

[22] Sloji konvolucijske nevronske mreˇze.url:https://miro.medium.com/

max/2000/1*vkQ0hXDaQv57sALXAJquxA.jpeg(pridobljeno 3. 9. 2021).

Reference

POVEZANI DOKUMENTI

Alterna- tivno, ˇ ce zamrznemo tudi preostali del mreˇ ze se katastrofalno pozabljanje ne pojavi v veˇ cji meri, vendar ˇ ce imamo podmnoˇ zici razliˇ cnih kompleksnosti in se

Algoritem je preprost ter je lahko uporabljen na razliˇ cnih video sekvencah, brez ponovnega uˇ cenja nevronske mreˇ ze.. Metoda, ki jo predstavimo v tej diplomski nalogi, je

Za razpoznavanje objek- tov na slikah se ˇ ze nekaj ˇ casa uporabljajo konvolucijske nevronske mreˇ ze, vendar so pristopi prostorsko in ˇ casovno kompleksni tako za uˇ cenje ter

Medtem, ko je vsebina e-uˇ cenja ˇ ze nekako vnaprej doloˇ cena in postavljena v uˇ cno okolje, je pri mobilnem uˇ cenju le ta bolj di- namiˇ cna zaradi narave sodelovanja

Uporabnik lahko do podatkov temperaturnih senzorjev dostopa na veˇ c razliˇ cnih naˇ cinov, in sicer preko ˇ ze obstojeˇ ce lokalne baze, neposredno z uporabo MQTT protokola in

Torej, ˇ ce imamo bolj enostavno aplikacijo, ki uporablja na primer podatke GPS, potem bi se odloˇ cili za Tile38, ˇ ce je potrebno bolj napredno iskanje prostorskih podatkov, tudi

V primeru manjˇse mnoˇ zice podatkov se rekurenˇ cne mreˇ ze v eni iteraciji nauˇ cijo manj kot v primeru veˇ cje mnoˇ zice podatkov, zato je razumljivo, da veˇ c podatkov kot

• algoritem za uravnoteˇ zenje podatkovnih mnoˇ zic (podatkovne mnoˇ zice smo obdelovali z nakljuˇ cnim podvzorˇ cenjem, nakljuˇ cnim nadvzorˇ cenjem, SMOTE, SMOTER ASC, SMOTER