17
17
import os
18
18
import sys
19
19
20
+ import daiquiri
20
21
import pandas as pd
21
22
22
23
from deeposlandia import utils
23
- from deeposlandia .dataset import AerialDataset , MapillaryDataset , ShapeDataset
24
+ from deeposlandia .datasets import AVAILABLE_DATASETS
25
+ from deeposlandia .datasets .mapillary import MapillaryDataset
26
+ from deeposlandia .datasets .aerial import AerialDataset
27
+ from deeposlandia .datasets .shapes import ShapeDataset
28
+ from deeposlandia .datasets .tanzania import TanzaniaDataset
29
+
30
+
31
+ logger = daiquiri .getLogger (__name__ )
32
+
24
33
25
34
def add_instance_arguments (parser ):
26
35
"""Add instance-specific arguments from the command line
@@ -38,8 +47,9 @@ def add_instance_arguments(parser):
38
47
parser .add_argument ('-a' , '--aggregate-label' , action = 'store_true' ,
39
48
help = "Aggregate labels with respect to their categories" )
40
49
parser .add_argument ('-D' , '--dataset' ,
41
- required = True ,
42
- help = "Dataset type (either mapillary, shapes or aerial)" )
50
+ required = True , choices = AVAILABLE_DATASETS ,
51
+ help = ("Dataset type (to be chosen amongst available"
52
+ "datasets)" ))
43
53
parser .add_argument ('-p' , '--datapath' ,
44
54
default = "data" ,
45
55
help = "Relative path towards data directory" )
@@ -95,18 +105,22 @@ def add_instance_arguments(parser):
95
105
train_dataset = AerialDataset (args .image_size )
96
106
validation_dataset = AerialDataset (args .image_size )
97
107
test_dataset = AerialDataset (args .image_size )
108
+ elif args .dataset == "tanzania" :
109
+ train_dataset = TanzaniaDataset (args .image_size )
110
+ validation_dataset = TanzaniaDataset (args .image_size )
111
+ test_dataset = TanzaniaDataset (args .image_size )
98
112
else :
99
- utils . logger .error ("Unsupported dataset type. Please choose "
100
- "'mapillary', 'shapes' or 'aerial'" )
113
+ logger .error ("Unsupported dataset type. Please choose amongst %s "
114
+ % AVAILABLE_DATASETS )
101
115
sys .exit (1 )
102
116
103
117
# Dataset populating/loading (depends on the existence of a specification file)
104
118
if os .path .isfile (prepro_folder ["training_config" ]):
105
119
train_dataset .load (prepro_folder ["training_config" ],
106
120
args .nb_training_image )
107
121
else :
108
- utils . logger .info (("No existing configuration file for this dataset. Create {} "
109
- "" ). format ( prepro_folder [" training_config" ]))
122
+ logger .info (("No existing configuration file for this dataset. "
123
+ "Create %s." % prepro_folder [' training_config' ]))
110
124
input_image_dir = os .path .join (input_folder , "training" )
111
125
train_dataset .populate (prepro_folder ["training" ], input_image_dir ,
112
126
nb_images = args .nb_training_image ,
@@ -117,8 +131,8 @@ def add_instance_arguments(parser):
117
131
validation_dataset .load (prepro_folder ["validation_config" ],
118
132
args .nb_validation_image )
119
133
else :
120
- utils . logger .info (("No existing configuration file for this dataset. Create {} "
121
- "" ). format ( prepro_folder [" validation_config" ]))
134
+ logger .info (("No existing configuration file for this dataset. "
135
+ "Create %s." % prepro_folder [' validation_config' ]))
122
136
input_image_dir = os .path .join (input_folder , "validation" )
123
137
validation_dataset .populate (prepro_folder ["validation" ],
124
138
input_image_dir ,
@@ -129,8 +143,8 @@ def add_instance_arguments(parser):
129
143
if os .path .isfile (prepro_folder ["testing_config" ]):
130
144
test_dataset .load (prepro_folder ["testing_config" ], args .nb_testing_image )
131
145
else :
132
- utils . logger .info (("No existing configuration file for this dataset. Create {} "
133
- "" ). format ( prepro_folder [" testing_config" ]))
146
+ logger .info (("No existing configuration file for this dataset. "
147
+ "Create %s." % prepro_folder [' testing_config' ]))
134
148
input_image_dir = os .path .join (input_folder , "testing" )
135
149
test_dataset .populate (prepro_folder ["testing" ],
136
150
input_image_dir ,
@@ -141,5 +155,5 @@ def add_instance_arguments(parser):
141
155
142
156
glossary = pd .DataFrame (train_dataset .labels )
143
157
glossary ["popularity" ] = train_dataset .get_label_popularity ()
144
- utils . logger .info ("Data glossary:\n {}" . format ( glossary ) )
158
+ logger .info ("Data glossary:\n %s" % glossary )
145
159
sys .exit (0 )
0 commit comments