Skip to content

Instantly share code, notes, and snippets.

@pmeier
Last active November 8, 2022 08:29
Show Gist options
  • Save pmeier/67c14f375ae8a1e425309a73f60bfabb to your computer and use it in GitHub Desktop.
Save pmeier/67c14f375ae8a1e425309a73f60bfabb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "c771e6f7",
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import PIL.Image\n",
"\n",
"image = PIL.Image.open(\"test/assets/fakedata/logos/rgb_pytorch.png\")\n",
"\n",
"mask = torch.zeros((100, 100), dtype=torch.uint8)\n",
"mask[..., 24:36, 55:66] = 255\n",
"mask = PIL.Image.fromarray(mask.numpy(), mode=\"L\")\n",
"\n",
"batch = [(image, mask)] * 5"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "0018b9f2",
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"from torchvision.utils import draw_segmentation_masks, make_grid\n",
"from torchvision.prototype import transforms, features\n",
"from torchvision.prototype.transforms import functional as F\n",
"\n",
"\n",
"def show(batch):\n",
" annotated_images = []\n",
" for image, mask in batch:\n",
" if not isinstance(image, torch.Tensor):\n",
" image = F.to_image_tensor(image)\n",
" if not isinstance(mask, torch.Tensor):\n",
" mask = F.pil_to_tensor(mask)\n",
" annotated_images.append(draw_segmentation_masks(image, mask.bool(), alpha=0.4, colors=\"white\"))\n",
" annotated_batch = torch.stack(annotated_images)\n",
" plt.imshow(make_grid(annotated_batch, pad_value=255).permute(1, 2, 0))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "fe194fa8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"show(batch)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "0c2d5c9e",
"metadata": {},
"outputs": [],
"source": [
"class WrapIntoFeatures(transforms.Transform):\n",
" def forward(self, sample):\n",
" image, mask = sample\n",
" # This is the minimum you need to do\n",
" mask = features.Mask(F.pil_to_tensor(mask))\n",
" # Optionally, you can also wrap the image to use our Tensor kernels rather than PIL\n",
" # image = features.Image(F.to_image_tensor(image))\n",
" return image, mask"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "23330046",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"augmentations = transforms.Compose(\n",
" [\n",
" WrapIntoFeatures(),\n",
" transforms.RandomApply([transforms.ColorJitter(brightness=0.5, contrast=0.5)], p=0.75),\n",
" transforms.RandomHorizontalFlip(p=0.5),\n",
" transforms.RandomApply([transforms.RandomRotation(degrees=45)], p=0.75),\n",
" transforms.RandomApply([transforms.RandomAffine(degrees=0.0, scale=(0.5, 2.0))], p=0.25),\n",
" transforms.RandomPerspective(distortion_scale=0.5, p=0.25),\n",
" ]\n",
")\n",
"\n",
"torch.manual_seed(123)\n",
"augmented_batch = [augmentations(sample) for sample in batch]\n",
"\n",
"show(augmented_batch)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment