Skip to content
Snippets Groups Projects
Commit 833335da authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

[all] Passed black on all python files

parent c3dc9915
No related branches found
No related tags found
1 merge request!12Streamlining
Pipeline #38202 passed
Showing
with 273 additions and 164 deletions
......@@ -7,13 +7,10 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([
Pad((8,8,8,8))
,ToTensor()
])
transforms = Compose([Pad((8, 8, 8, 8)), ToTensor()])
# bob.db.dataset init
bobdb = RIMONER3(protocol = 'default_od')
bobdb = RIMONER3(protocol="default_od")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='test', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="test", transform=transforms)
......@@ -7,17 +7,19 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([
Pad((2,1,2,2))
,RandomHFlip()
,RandomVFlip()
,RandomRotation()
,ColorJitter()
,ToTensor()
])
transforms = Compose(
[
Pad((2, 1, 2, 2)),
RandomHFlip(),
RandomVFlip(),
RandomRotation(),
ColorJitter(),
ToTensor(),
]
)
# bob.db.dataset init
bobdb = STARE(protocol = 'default')
bobdb = STARE(protocol="default")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='train', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="train", transform=transforms)
......@@ -7,19 +7,21 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([
RandomRotation()
,Pad((0,32,0,32))
,Resize(1024)
,CenterCrop(1024)
,RandomHFlip()
,RandomVFlip()
,ColorJitter()
,ToTensor()
])
transforms = Compose(
[
RandomRotation(),
Pad((0, 32, 0, 32)),
Resize(1024),
CenterCrop(1024),
RandomHFlip(),
RandomVFlip(),
ColorJitter(),
ToTensor(),
]
)
# bob.db.dataset init
bobdb = STARE(protocol = 'default')
bobdb = STARE(protocol="default")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='train', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="train", transform=transforms)
......@@ -7,19 +7,21 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([
RandomRotation()
,Crop(50,0,500,705)
,Resize(1168)
,Pad((1,0,1,0))
,RandomHFlip()
,RandomVFlip()
,ColorJitter()
,ToTensor()
])
transforms = Compose(
[
RandomRotation(),
Crop(50, 0, 500, 705),
Resize(1168),
Pad((1, 0, 1, 0)),
RandomHFlip(),
RandomVFlip(),
ColorJitter(),
ToTensor(),
]
)
# bob.db.dataset init
bobdb = STARE(protocol = 'default')
bobdb = STARE(protocol="default")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='train', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="train", transform=transforms)
......@@ -7,17 +7,20 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([ RandomRotation()
,Resize(471)
,Pad((0,37,0,36))
,RandomHFlip()
,RandomVFlip()
,ColorJitter()
,ToTensor()
])
transforms = Compose(
[
RandomRotation(),
Resize(471),
Pad((0, 37, 0, 36)),
RandomHFlip(),
RandomVFlip(),
ColorJitter(),
ToTensor(),
]
)
# bob.db.dataset init
bobdb = STARE(protocol = 'default')
bobdb = STARE(protocol="default")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='train', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="train", transform=transforms)
......@@ -7,19 +7,21 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([
RandomRotation()
,Pad((0,32,0,32))
,Resize(960)
,CenterCrop(960)
,RandomHFlip()
,RandomVFlip()
,ColorJitter()
,ToTensor()
])
transforms = Compose(
[
RandomRotation(),
Pad((0, 32, 0, 32)),
Resize(960),
CenterCrop(960),
RandomHFlip(),
RandomVFlip(),
ColorJitter(),
ToTensor(),
]
)
# bob.db.dataset init
bobdb = STARE(protocol = 'default')
bobdb = STARE(protocol="default")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='train', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="train", transform=transforms)
......@@ -7,4 +7,4 @@ import torch
#### Config ####
# PyTorch dataset
dataset = torch.utils.data.ConcatDataset([stare,chase,hrf,iostar])
\ No newline at end of file
dataset = torch.utils.data.ConcatDataset([stare, chase, hrf, iostar])
......@@ -5,30 +5,38 @@ from bob.ip.binseg.configs.datasets.hrf544 import dataset as hrf
from bob.db.drive import Database as DRIVE
from bob.ip.binseg.data.transforms import *
import torch
from bob.ip.binseg.data.binsegdataset import BinSegDataset, SSLBinSegDataset, UnLabeledBinSegDataset
from bob.ip.binseg.data.binsegdataset import (
BinSegDataset,
SSLBinSegDataset,
UnLabeledBinSegDataset,
)
#### Config ####
# PyTorch dataset
labeled_dataset = torch.utils.data.ConcatDataset([stare,chase,iostar,hrf])
labeled_dataset = torch.utils.data.ConcatDataset([stare, chase, iostar, hrf])
#### Unlabeled STARE TRAIN ####
unlabeled_transforms = Compose([
CenterCrop((544,544))
,RandomHFlip()
,RandomVFlip()
,RandomRotation()
,ColorJitter()
,ToTensor()
])
unlabeled_transforms = Compose(
[
CenterCrop((544, 544)),
RandomHFlip(),
RandomVFlip(),
RandomRotation(),
ColorJitter(),
ToTensor(),
]
)
# bob.db.dataset init
drivebobdb = DRIVE(protocol = 'default')
drivebobdb = DRIVE(protocol="default")
# PyTorch dataset
unlabeled_dataset = UnLabeledBinSegDataset(drivebobdb, split='train', transform=unlabeled_transforms)
unlabeled_dataset = UnLabeledBinSegDataset(
drivebobdb, split="train", transform=unlabeled_transforms
)
# SSL Dataset
dataset = SSLBinSegDataset(labeled_dataset, unlabeled_dataset)
\ No newline at end of file
dataset = SSLBinSegDataset(labeled_dataset, unlabeled_dataset)
......@@ -7,13 +7,10 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
#### Config ####
transforms = Compose([
Pad((2,1,2,2))
,ToTensor()
])
transforms = Compose([Pad((2, 1, 2, 2)), ToTensor()])
# bob.db.dataset init
bobdb = STARE(protocol = 'default')
bobdb = STARE(protocol="default")
# PyTorch dataset
dataset = BinSegDataset(bobdb, split='test', transform=transforms)
\ No newline at end of file
dataset = BinSegDataset(bobdb, split="test", transform=transforms)
......@@ -26,13 +26,23 @@ scheduler_gamma = 0.1
model = build_driu()
# pretrained backbone
pretrained_backbone = modelurls['vgg16_bn']
pretrained_backbone = modelurls["vgg16_bn"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = SoftJaccardBCELogitsLoss(alpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,14 +26,24 @@ scheduler_gamma = 0.1
model = build_driu()
# pretrained backbone
pretrained_backbone = modelurls['vgg16_bn']
pretrained_backbone = modelurls["vgg16_bn"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = MixJacLoss(lambda_u=0.05, jacalpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,13 +26,23 @@ scheduler_gamma = 0.1
model = build_driuod()
# pretrained backbone
pretrained_backbone = modelurls['vgg16']
pretrained_backbone = modelurls["vgg16"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = SoftJaccardBCELogitsLoss(alpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,14 +26,24 @@ scheduler_gamma = 0.1
model = build_driu()
# pretrained backbone
pretrained_backbone = modelurls['vgg16']
pretrained_backbone = modelurls["vgg16"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = MixJacLoss(lambda_u=0.05, jacalpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -27,13 +27,23 @@ scheduler_gamma = 0.1
model = build_hed()
# pretrained backbone
pretrained_backbone = modelurls['vgg16']
pretrained_backbone = modelurls["vgg16"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = HEDSoftJaccardBCELogitsLoss(alpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,14 +26,24 @@ scheduler_gamma = 0.1
model = build_m2unet()
# pretrained backbone
pretrained_backbone = modelurls['mobilenetv2']
pretrained_backbone = modelurls["mobilenetv2"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = SoftJaccardBCELogitsLoss(alpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,14 +26,24 @@ scheduler_gamma = 0.1
model = build_m2unet()
# pretrained backbone
pretrained_backbone = modelurls['mobilenetv2']
pretrained_backbone = modelurls["mobilenetv2"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = MixJacLoss(lambda_u=0.05, jacalpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,14 +26,24 @@ scheduler_gamma = 0.1
model = build_res50unet()
# pretrained backbone
pretrained_backbone = modelurls['resnet50']
pretrained_backbone = modelurls["resnet50"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = SoftJaccardBCELogitsLoss(alpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -26,14 +26,24 @@ scheduler_gamma = 0.1
model = build_unet()
# pretrained backbone
pretrained_backbone = modelurls['vgg16']
pretrained_backbone = modelurls["vgg16"]
# optimizer
optimizer = AdaBound(model.parameters(), lr=lr, betas=betas, final_lr=final_lr, gamma=gamma,
eps=eps, weight_decay=weight_decay, amsbound=amsbound)
optimizer = AdaBound(
model.parameters(),
lr=lr,
betas=betas,
final_lr=final_lr,
gamma=gamma,
eps=eps,
weight_decay=weight_decay,
amsbound=amsbound,
)
# criterion
criterion = SoftJaccardBCELogitsLoss(alpha=0.7)
# scheduler
scheduler = MultiStepLR(optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma)
scheduler = MultiStepLR(
optimizer, milestones=scheduler_milestones, gamma=scheduler_gamma
)
......@@ -3,6 +3,7 @@
from torch.utils.data import Dataset
import random
class BinSegDataset(Dataset):
"""PyTorch dataset wrapper around bob.db binary segmentation datasets.
A transform object can be passed that will be applied to the image, ground truth and mask (if present).
......@@ -19,18 +20,19 @@ class BinSegDataset(Dataset):
mask : bool
whether dataset contains masks or not
"""
def __init__(self, bobdb, split = 'train', transform = None,index_to = None):
def __init__(self, bobdb, split="train", transform=None, index_to=None):
if index_to:
self.database = bobdb.samples(split)[:index_to]
else:
self.database = bobdb.samples(split)
self.transform = transform
self.split = split
@property
def mask(self):
# check if first sample contains a mask
return hasattr(self.database[0], 'mask')
return hasattr(self.database[0], "mask")
def __len__(self):
"""
......@@ -40,8 +42,8 @@ class BinSegDataset(Dataset):
size of the dataset
"""
return len(self.database)
def __getitem__(self,index):
def __getitem__(self, index):
"""
Parameters
----------
......@@ -56,12 +58,12 @@ class BinSegDataset(Dataset):
gt = self.database[index].gt.pil_image()
img_name = self.database[index].img.basename
sample = [img, gt]
if self.transform :
if self.transform:
sample = self.transform(*sample)
sample.insert(0,img_name)
sample.insert(0, img_name)
return sample
......@@ -77,10 +79,10 @@ class SSLBinSegDataset(Dataset):
unlabeled_dataset : :py:class:`torch.utils.data.Dataset`
UnLabeledBinSegDataset with unlabeled data
"""
def __init__(self, labeled_dataset, unlabeled_dataset):
self.labeled_dataset = labeled_dataset
self.unlabeled_dataset = unlabeled_dataset
def __len__(self):
"""
......@@ -90,8 +92,8 @@ class SSLBinSegDataset(Dataset):
size of the dataset
"""
return len(self.labeled_dataset)
def __getitem__(self,index):
def __getitem__(self, index):
"""
Parameters
----------
......@@ -123,13 +125,14 @@ class UnLabeledBinSegDataset(Dataset):
transform : :py:mod:`bob.ip.binseg.data.transforms`, optional
A transform or composition of transfroms. Defaults to ``None``.
"""
def __init__(self, db, split = 'train', transform = None,index_from= None):
def __init__(self, db, split="train", transform=None, index_from=None):
if index_from:
self.database = db.samples(split)[index_from:]
else:
self.database = db.samples(split)
self.transform = transform
self.split = split
self.split = split
def __len__(self):
"""
......@@ -139,8 +142,8 @@ class UnLabeledBinSegDataset(Dataset):
size of the dataset
"""
return len(self.database)
def __getitem__(self,index):
def __getitem__(self, index):
"""
Parameters
----------
......@@ -155,9 +158,9 @@ class UnLabeledBinSegDataset(Dataset):
img = self.database[index].img.pil_image()
img_name = self.database[index].img.basename
sample = [img]
if self.transform :
if self.transform:
sample = self.transform(img)
sample.insert(0,img_name)
return sample
\ No newline at end of file
sample.insert(0, img_name)
return sample
......@@ -8,16 +8,18 @@ import torch
import torchvision.transforms.functional as VF
import bob.io.base
def get_file_lists(data_path):
data_path = Path(data_path)
image_path = data_path.joinpath('images')
image_file_names = np.array(sorted(list(image_path.glob('*'))))
gt_path = data_path.joinpath('gt')
gt_file_names = np.array(sorted(list(gt_path.glob('*'))))
image_path = data_path.joinpath("images")
image_file_names = np.array(sorted(list(image_path.glob("*"))))
gt_path = data_path.joinpath("gt")
gt_file_names = np.array(sorted(list(gt_path.glob("*"))))
return image_file_names, gt_file_names
class ImageFolder(Dataset):
"""
Generic ImageFolder dataset, that contains two folders:
......@@ -32,7 +34,8 @@ class ImageFolder(Dataset):
full path to root of dataset
"""
def __init__(self, path, transform = None):
def __init__(self, path, transform=None):
self.transform = transform
self.img_file_list, self.gt_file_list = get_file_lists(path)
......@@ -44,8 +47,8 @@ class ImageFolder(Dataset):
size of the dataset
"""
return len(self.img_file_list)
def __getitem__(self,index):
def __getitem__(self, index):
"""
Parameters
----------
......@@ -58,22 +61,22 @@ class ImageFolder(Dataset):
"""
img_path = self.img_file_list[index]
img_name = img_path.name
img = Image.open(img_path).convert(mode='RGB')
img = Image.open(img_path).convert(mode="RGB")
gt_path = self.gt_file_list[index]
if gt_path.suffix == '.hdf5':
gt = bob.io.base.load(str(gt_path)).astype('float32')
if gt_path.suffix == ".hdf5":
gt = bob.io.base.load(str(gt_path)).astype("float32")
# not elegant but since transforms require PIL images we do this hacky workaround here
gt = torch.from_numpy(gt)
gt = VF.to_pil_image(gt).convert(mode='1', dither=None)
gt = VF.to_pil_image(gt).convert(mode="1", dither=None)
else:
gt = Image.open(gt_path).convert(mode='1', dither=None)
gt = Image.open(gt_path).convert(mode="1", dither=None)
sample = [img, gt]
if self.transform :
if self.transform:
sample = self.transform(*sample)
sample.insert(0,img_name)
sample.insert(0, img_name)
return sample
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment