init
This commit is contained in:
50
datasets/eurosat.py
Normal file
50
datasets/eurosat.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import os
|
||||
|
||||
from .utils import Datum, DatasetBase, read_json, write_json, build_data_loader
|
||||
from .oxford_pets import OxfordPets
|
||||
|
||||
|
||||
template = ['a centered satellite photo of {}.']
|
||||
|
||||
|
||||
NEW_CNAMES = {
|
||||
'AnnualCrop': 'Annual Crop Land',
|
||||
'Forest': 'Forest',
|
||||
'HerbaceousVegetation': 'Herbaceous Vegetation Land',
|
||||
'Highway': 'Highway or Road',
|
||||
'Industrial': 'Industrial Buildings',
|
||||
'Pasture': 'Pasture Land',
|
||||
'PermanentCrop': 'Permanent Crop Land',
|
||||
'Residential': 'Residential Buildings',
|
||||
'River': 'River',
|
||||
'SeaLake': 'Sea or Lake'
|
||||
}
|
||||
|
||||
|
||||
class EuroSAT(DatasetBase):
|
||||
|
||||
dataset_dir = 'eurosat'
|
||||
|
||||
def __init__(self, root, num_shots):
|
||||
self.dataset_dir = os.path.join(root, self.dataset_dir)
|
||||
self.image_dir = os.path.join(self.dataset_dir, '2750')
|
||||
self.split_path = os.path.join(self.dataset_dir, 'split_zhou_EuroSAT.json')
|
||||
|
||||
self.template = template
|
||||
|
||||
train, val, test = OxfordPets.read_split(self.split_path, self.image_dir)
|
||||
train = self.generate_fewshot_dataset(train, num_shots=num_shots)
|
||||
super().__init__(train_x=train, val=val, test=test)
|
||||
|
||||
def update_classname(self, dataset_old):
|
||||
dataset_new = []
|
||||
for item_old in dataset_old:
|
||||
cname_old = item_old.classname
|
||||
cname_new = NEW_CLASSNAMES[cname_old]
|
||||
item_new = Datum(
|
||||
impath=item_old.impath,
|
||||
label=item_old.label,
|
||||
classname=cname_new
|
||||
)
|
||||
dataset_new.append(item_new)
|
||||
return dataset_new
|
||||
Reference in New Issue
Block a user