Ves projekt je bil narejen z naslednjimi zahtevami:
- Python verzija: >= 3.9.4 https://www.python.org/downloads/ (pip je že vključen, potrebno ga je dodati v path)
- pip verzija: 21.1
- Blender verzija 2.91 https://www.blender.org/download/releases/2-91/
- Testirano na windows operacijskem sistemu.
Za uporabo simulacijskega okolja je poleg kloniranja repozitorija, potrebno narediti naslednje stvari:
V config.yaml datoteki, ki se nahaja pod ocean/OceanA ali ocean/OceanB je potrebno dodati pot do programa Blender.
Primeri slik iz COCO zbirke so pod images/, če pa želite dostopati do celotne zbirke pa je potrebno naložiti
- COCO train http://images.cocodataset.org/zips/train2017.zip (18GB) ali
- COCO val http://images.cocodataset.org/zips/val2017.zip (1GB)
- anotacije hribov in gora http://calvin.inf.ed.ac.uk/wp-content/uploads/data/cocostuffdataset/stuff_trainval2017.zip
- anotacije čolnov in boj https://s3-us-west-2.amazonaws.com/dl.fbaipublicfiles.com/LVIS/lvis_v1_train.json.zip in https://s3-us-west-2.amazonaws.com/dl.fbaipublicfiles.com/LVIS/lvis_v1_val.json.zip
Pridobljene slike je potrebno unzipati in prestaviti v mapi resources/COCO_train in resources/COCO_val. Naložene anotacije je ravno tako potrebno unzipati vendar v mapo resources/annotations. Izrezane slike se pridobi s skripto get_segmented_pics.py v mapi /scripts. Z argumentoma lahko povemo kateri objekt želimo in pa katere anotacije bomo uporabili. Nastala mapa bo enaka kot object_type v /resources/object_type.
Primer ukaza:
python get_segmented_pics.py --object_type boat --annotation_type lvis_v1_train
V mapi resources/Haven/hdris je primer Haven .hdr datoteke neba. Če želimo pridobiti več Haven datotek uporabimo skripto download_haven.py v mapi /scripts
Primer uporabe:
python download_haven.py --types hdris --categories skies --resolution 4k
Generiranje oceana lahko poženemo na dva načina:
i) S skripto run.py
python run.py ocean/OceanA/config.yaml outputs/Output0 ocean/OceanA/OceanA.blend ocean/OceanA/camera_position resources/boats resources/mountains resources/buoys resources/Haven
ali
ii) S skripto run_multiple_times.py
config_file
- pot do config.yaml datotekecam_file
- pot do konfiguracije kamereblend_file
- pot do .blend datotekeoutput_path
- pot do mape, kamor se bodo generirale slikehaven_dir
- pot do mape s Haven .hdr datotekamiboat_dir
- pot do mape z izrezanimi čolnimountain_dir
- pot do mape z izrezanimi goramibuoy_dir
- pot do mape z izrezanimi bojamistarting_output
- število s katero naj se začne generiranje podatkovnumber_of_outputs
- število koliko slik naj se generira
Primer uporabe skripte s privzetimi nastavitvami:
python run_multiple_times.py
Ko imamo generirano zbirko s skripto move_outputs_to_images.py premaknemo vse outpute v isti folder in sicer v images/. Ko imamo slike v images/ lahko naredimo prenos barv s skripto transferColors.m, spremenimo segmentacijske slike, da so pripravljene za treniranje mreže WaSR s skripto seg_to_my_seg.py. Za treniranje potrebujemo tudi train.txt datoteko z vsebino zbirke, ki jo lahko naredimo z skripto create_train_text.py.
Generirane slike | Segmentacijske slike |
---|---|
[1] Bovcon et. al, The MaSTr1325 Dataset for Training Deep USV Obstacle Detection Models, IROS 2019
[2] COCO zbirka in anotacije https://github.com/nightrome/cocostuff
[3] LVIS anotacije https://www.lvisdataset.org/dataset
[4] BlenderProc https://github.com/DLR-RM/BlenderProc
[5] Haven HDRIs https://polyhaven.com/hdris
[6] Color transfer between images https://www.mathworks.com/matlabcentral/fileexchange/63256-color-transfer-between-images
[7] Navdih za ocean A: https://www.youtube.com/watch?v=CwJrb3vjAaA&t=216s
[8] Navdih za ocean B: https://www.youtube.com/watch?v=nOdNUFPbBJM