Datasets

class fgvc.datasets.BinarySegmentationDataset(coco_dict: dict, transform: Compose, **kwargs)
get_image(idx: int) Tuple[ndarray, str]

Get i-th image and its file path in the dataset.

get_image_bboxes(idx: int) Tuple[ndarray, ndarray, str]

Get image and detection bounding boxes of i-th element in the dataset.

get_image_mask(idx: int) Tuple[ndarray, ndarray, str]

Get image and segmentation mask of i-th element in the dataset.

plot_image_bboxes(idx: int, *, preds: List[dict] | None = None, ax=None, plot_text=True)

Visualize image with detection bounding boxes of i-th element in the dataset.

plot_image_mask(idx: int, apply_transform: bool = False, ax1=None, ax2=None)

Visualize image with segmentation mask of i-th element in the dataset.

class fgvc.datasets.ImageDataset(df: DataFrame, transform: Compose | Compose, **kwargs)
apply_transforms(image: Image) Tensor

Apply augmentation transformations on the image.

get_class_id(idx: int) int

Get class id of i-th element in the dataset.

get_image(idx: int) Tuple[Image, str]

Get i-th image and its file path in the dataset.

class fgvc.datasets.PoisonDataset(df: DataFrame, transform: Compose | Compose, **kwargs)
class fgvc.datasets.PredictionDataset(image_paths: list, transform: Compose | Compose, **kwargs)
class fgvc.datasets.TaxonomyDataset(df: DataFrame, transform: Compose | Compose, **kwargs)
get_family_id(idx: int) int

Get family id of i-th element in the dataset.

get_genus_id(idx: int) int

Get genus id of i-th element in the dataset.

fgvc.datasets.get_dataloaders(train_data: ~pandas.core.frame.DataFrame | list | dict | None, val_data: ~pandas.core.frame.DataFrame | list | dict | None, augmentations: str, image_size: tuple, model_mean: tuple = (0.485, 0.456, 0.406), model_std: tuple = (0.229, 0.224, 0.225), batch_size: int = 32, num_workers: int = 8, *, transforms_fns: ~typing.Dict[str, callable] | None = None, transforms_kws: dict | None = None, dataset_cls: ~typing.Type[~fgvc.datasets.image_dataset.ImageDataset] = <class 'fgvc.datasets.image_dataset.ImageDataset'>, dataset_kws: dict | None = None, dataloader_kws: dict | None = None) Tuple[DataLoader, DataLoader, tuple, tuple]

Create training and validation augmentation transformations, datasets, and DataLoaders.

The method is generic and allows to create augmentations and datasets of any given class.

Parameters:
  • train_data – Training data of any type supported by Dataset defined using dataset_cls.

  • val_data – Validation data of any type supported by Dataset defined using dataset_cls.

  • augmentations – Name of augmentations to use (light, heavy, …).

  • image_size – Image size used for resizing in augmentations.

  • model_mean – Model mean used for input normalization in augmentations.

  • model_std – Model mean used for input normalization in augmentations.

  • batch_size – Batch size used in DataLoader.

  • num_workers – Number of workers used in DataLoader.

  • transforms_fns – A dictionary with names of augmentations (light, heavy, …) as keys and corresponding functions to create training and validation augmentations as values.

  • transforms_kws – Additional keyword arguments for the transformation function.

  • dataset_cls – Dataset class that implements __len__ and __getitem__ functions and inherits from torch.utils.data.Dataset PyTorch class.

  • dataset_kws – Additional keyword arguments for the Dataset class.

  • dataloader_kws – Additional keyword arguments for the DataLoader class.

Returns:

  • trainloader – Training PyTorch DataLoader.

  • valloader – Validation PyTorch DataLoader.

  • (trainset, valset) – Tuple with training and validation dataset instances.

  • (train_tfm, val_tfm) – Tuple with training and validation augmentation transformations.