{ "cells": [ { "cell_type": "markdown", "id": "71b1eb19-3148-46ca-8a9a-fdf18bd2b18d", "metadata": {}, "source": [ "# Demonstrating Lens Flare Perturbations\n", "\n", "## Introduction\n", "This notebook is part of the NRTK demonstration suite, demonstrating how perturbations can be applied and their impact measured via MAITE evaluation workflows.\n", "\n", "## Layout\n", "This notebook demonstrates how a particular condition (in this case, a lens flare caused by a bright light source), can affect an object detection model, and how that impact can be measured. The overall structure is:\n", "\n", "- **Traditional vs. relative mAP:**\n", " - An overview of the nuances of what we'll be evaluating.\n", "- **Setup:**\n", " - Notebook initialization, loading the supporting python code. Depending on if this is the first time you've run this notebook, this may take some time.\n", " - Loading the source image, which will be used throughout the notebook.\n", "- **Image perturbation examples:**\n", " - The NRTK perturbation is demonstrated on the source image.\n", "- **Baseline detections:**\n", " - The object detection model is loaded and run on the unperturbed image. These will serve as \\\"ground truth\\\" for comparisons against the perturbed images.\n", " \n", "At this point, we have the fundamental elements of our evaluation: the model, our reference image, and a mechanism for creating the perturbed test images. Next we adapt these elements to be used with the MAITE evaluation workflow:\n", "\n", "- **Wrapping the detection model**\n", "- **Wrapping the reference image as a dataset**\n", "- **Wrapping the perturbation as augmentation objects**\n", "- **Wrapping the metrics**\n", "\n", "After the evaluation elements have been wrapped, we can run the evaluation:\n", "\n", "- **Preparing the augmentations:**\n", " - We specify the range of perturbation values to evaluate and optionally specify which ones we'd like to visualize.\n", "- **Evaluation of augmented data:**\n", " - Each augmentation is run through MAITE's evaluation workflow, computing the mean average precision metric relative to the unperturbed detections.\n", "- **Evaluation analysis:**\n", " - We plot and discuss the mAP@50 metric from each of the perturbed images, as well as per-class and per-area results." ] }, { "cell_type": "markdown", "id": "4b2e1964-46e2-4497-88ff-274eaca17960", "metadata": {}, "source": [ "# Evaluation guidance: traditional vs. relative mAP\n", "\n", "This notebook will be evaluating the perturbed images using mean average precision (mAP) **relative** to detections from the unperturbed image. Traditional mAP scores the computed detections to ground-truth annotations vetted by an analyst; the mAP metric indicates how well the detector does compared to that analyst and thus measures the detector's \"absolute\" performance (\"absolute\" in the sense that the assumption is no detector can do better than the analyst.)\n", "\n", "In contrast, in this notebook, we're not concerned with the **absolute** ability of the detector to find objects of interest. Rather, we're interested in how the **perturbations** affect the detector *relative to the unperturbed image*. It's expected that the detector won't find every target in the unperturbed image; instead, we're measuring the **change in the detections** (or classifications) caused by the perturbations.\n", "\n", "To support relative mAP, we'll be computing detections on the unperturbed image and using those as our \"ground truth\" dataset, and using the MAITE dataset class slightly differently than usual. For example, there's no on-disk json file of reference annotations with an associated data loader; instead, we'll be taking the computed detections and manually copying them over into the dataset." ] }, { "cell_type": "markdown", "id": "f9268412-0d13-4fed-ae78-f6ee02c94c9c", "metadata": {}, "source": [ "# Setup: Notebook initialization\n", "The next few cells import the python packages used in the rest of the notebook.\n", "\n", "**Note:** We are suppressing warnings within this notebook to reduce visual clutter for demonstration purposes. If any issues arise while executing this notebook, we recommend that the first cell is **not** executed so that any related warnings are shown." ] }, { "cell_type": "code", "execution_count": 1, "id": "796743f8-2f1e-42aa-ad6b-f71e721602f8", "metadata": {}, "outputs": [], "source": [ "from __future__ import annotations\n", "\n", "# warning suppression\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "code", "execution_count": 2, "id": "2561179f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Beginning package installation...\n", "Installing required packages...\n", "\u001b[33mWARNING: nrtk 0.20.0 does not provide the extra 'albumentations'\u001b[0m\u001b[33m\n", "\u001b[0mDoing a fresh install of opencv-python-headless...\n" ] } ], "source": [ "import sys # noqa: F401\n", "\n", "print(\"Beginning package installation...\")\n", "!{sys.executable} -m pip install -qU pip\n", "\n", "print(\"Installing required packages...\")\n", "!{sys.executable} -m pip install -q \"matplotlib\" --no-cache-dir\n", "!{sys.executable} -m pip install -q \"torchvision\" --no-cache-dir\n", "!{sys.executable} -m pip install -q \"torchmetrics\" --no-cache-dir\n", "!{sys.executable} -m pip install -q \"ultralytics\" --no-cache-dir\n", "!{sys.executable} -m pip install -q \"nrtk[maite, albumentations]\" --no-cache-dir\n", "\n", "# OpenCV must be uninstalled and reinstalled last due to other packages installing OpenCV\n", "print(\"Doing a fresh install of opencv-python-headless...\")\n", "!{sys.executable} -m pip uninstall -qy \"opencv-python\" \"opencv-python-headless\"\n", "!{sys.executable} -m pip install -q \"opencv-python-headless\" --no-cache-dir" ] }, { "cell_type": "code", "execution_count": 3, "id": "c18e6bd1-1c56-447a-b1e4-16df26269ed8", "metadata": {}, "outputs": [], "source": [ "import os\n", "import urllib.request\n", "from collections.abc import Sequence\n", "from typing import Any\n", "\n", "import numpy as np\n", "\n", "# some initial imports\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = \"jpeg\" # Use JPEG format for inline visualizations\n", "\n", "from matplotlib import pyplot as plt # type: ignore\n", "from PIL import Image\n", "\n", "from nrtk.impls.perturb_image.generic.albumentations_perturber import AlbumentationsPerturber" ] }, { "cell_type": "markdown", "id": "242e9bfa-fcea-4a1d-a8e0-9455b28777a2", "metadata": {}, "source": [ "# Setup: Source image\n", "\n", "In the next cell, we'll download and display a source image from the __[VisDrone](https://github.com/VisDrone/VisDrone-Dataset)__ dataset. The image will be cached in a local `data` subdirectory.\n", "\n", "### A note on image storage\n", "\n", "Typically in ML workflows, batches of images are processed as tensors of the color channels. Both our perturber (NRTK) and object detector (YOLO) accept numpy `ndarray` objects, and we will use [matplotlib.imshow](https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.imshow.html) to view them. The complication is that although YOLO inferences on `ndarray`, [it expects the color channels to be in BGR](https://docs.ultralytics.com/modes/predict) order. If we naively view the same data YOLO inferences on, the colors will be wrong; if we naively inference on what we view, the detections will be wrong. (Our NRTK perturbation is agnostic to the channel order.)\n", "\n", "In this notebook, we'll convert the channel order to BGR when we load, and convert back whenever we explicitly call `imshow`.\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "57facb8b-4cb6-476b-a321-f48d70e773ba", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.20.0\n" ] }, { "data": { "image/jpeg": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import nrtk\n", "\n", "print(nrtk.__version__)\n", "data_dir = \"./data\"\n", "os.makedirs(data_dir, exist_ok=True)\n", "img_path = os.path.join(data_dir, \"visdrone_img.jpg\")\n", "if not os.path.isfile(img_path):\n", " url = \"https://data.kitware.com/api/v1/item/623880f14acac99f429fe3ca/download\"\n", " _ = urllib.request.urlretrieve(url, img_path) # noqa: S310\n", "\n", "img_pil = Image.open(img_path)\n", "img_nd_bgr = np.asarray(img_pil)[\n", " :,\n", " :,\n", " ::-1,\n", "] # tip o' the hat to https://stackoverflow.com/questions/4661557/pil-rotate-image-colors-bgr-rgb\n", "plt.figure()\n", "plt.axis(\"off\")\n", "\n", "_ = plt.imshow(img_nd_bgr[:, :, ::-1]) # explicitly changing BGR to RGB for imshow" ] }, { "cell_type": "markdown", "id": "efe2e2a3-a3a2-4101-9872-bae618effab0", "metadata": {}, "source": [ "# NRTK Lens Flare: examples and guidance\n", "\n", "Lens flare (i.e. \"Sun flare\") is created by unwanted scattering of light from bright sources within the optics of the camera. These flares are present in most outdoor images with the sun present, and since they are not actually a part of the image, they should be ignored in an object detection model. However, because the flare is typically very bright and extend across many parts of the image, they can easily obscure objects and confuse a model which is not trained to ignore them.\n", "\n", "While the flare is a complex phenomenon which depends on the camera's lens, it has two main components: The first is a bright glow or haze near the bright object which reduces the image contrast. This can happen even if the bright object is just out of frame. The second component is a series of circles or geometrical shapes which represent the internal reflections of the light in the optical components. Most often, these shapes are colocated along a line emanating from the bright source.\n", "\n", "The `AlbumentationsPerturber` serves as an interface from the perturbations available from [Albumentations](https://albumentations.ai/). We can simulate a lens flare on our input image by using the `RandomSunFlare` perturber from Albumentations with the following parameters:\n", "\n", "- `flare_center`: An (x, y) tuple of floats representing the location in the image to draw the flare\n", "- `src_radius`: The radius of the primary sun flare\n", "- `src_color`: A tuple of integers representing the RGB color of the flare\n", "- `circles`: A list of additional circle overlays. Each includes an alpha value, center, radius and color.\n", "- `p`: The probability of applying a perturbation to the image\n", "\n", "If `p` is 0, the output image will be unchanged.\n", "\n", "These parameters are all optional. For any parameter that isn't provided, Albumentations will select some random default value. " ] }, { "cell_type": "code", "execution_count": 5, "id": "5a370d2a-2489-4c48-b29a-ea8ad3ef98fa", "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_, ax = plt.subplots(2, 4, figsize=(10, 4))\n", "\n", "params = {\n", " \"p\": 1.0,\n", "}\n", "\n", "for idx in range(0, 8):\n", " (row, col) = (int(idx / 4), idx % 4)\n", " factor = (idx - 1) / 2\n", " radius = (idx + 1) * 100\n", " params[\"src_radius\"] = radius\n", " perturber = AlbumentationsPerturber(perturber=\"RandomSunFlare\", seed=idx, parameters=params)\n", " ax[row, col].set_title(f\"Lens Flare Radius: {radius}\")\n", " ax[row, col].imshow(perturber(img_nd_bgr)[0][:, :, ::-1])\n", " _ = ax[row, col].axis(\"off\")\n", "\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "id": "30eb653b-6be9-4d58-8d69-db4b64c3d81c", "metadata": {}, "source": [ "# Baseline detections\n", "\n", "In the next cell, we'll download a [YOLOv11](https://docs.ultralytics.com/models/yolo11/) model, compute object detections on the source image, and display the results. As discussed above, these detections will serve as the \"ground truth\" for our relative mAP evaluation later.\n", "\n", "*Note that here, we're using YOLO's built-in visualization tool, which automatically adjusts for BGR / RGB order.*" ] }, { "cell_type": "code", "execution_count": 6, "id": "55600de0-089f-4dd6-ac4d-7896b8df5494", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ultralytics 8.3.85 🚀 Python-3.10.12 torch-2.6.0+cu124 CUDA:0 (NVIDIA RTX A2000 Laptop GPU, 3782MiB)\n", "Setup complete ✅ (16 CPUs, 62.5 GB RAM, 269.2/914.7 GB disk)\n", "Downloading model...\n", "Computing baseline...\n", "\n", "0: 384x640 5 persons, 15 cars, 1 motorcycle, 2 trucks, 47.2ms\n", "Speed: 4.4ms preprocess, 47.2ms inference, 81.1ms postprocess per image at shape (1, 3, 384, 640)\n" ] } ], "source": [ "# Import YOLO support\n", "import ultralytics\n", "\n", "ultralytics.checks()\n", "print(\"Downloading model...\")\n", "model = ultralytics.YOLO(\"yolo11n.pt\")\n", "print(\"Computing baseline...\")\n", "baseline = model(img_nd_bgr)\n", "baseline[0].show()" ] }, { "cell_type": "markdown", "id": "39050929-bf48-44b1-9247-5cac7f44cd8c", "metadata": {}, "source": [ "# MAITE Evaluation workflow preparation\n", "\n", "We'll use the [MAITE Evaluation workflow](https://jatic.pages.jatic.net/cdao/maite/generated/maite.workflows.evaluate.html) to evaluate the performance of the perturbed data against our baseline detections. We'll need to \"wrap\" our model, data, and perturbations into callable objects to pass to the `maite.workflows.evaluate` function:\n", "\n", "- We'll wrap the **model** to make predictions on input data when called.\n", "\n", "- The wrapped **dataset** will return our test image when called. Note that this will be the original, unperturbed image; we'll apply our perturbations via...\n", "\n", "- ...the **augmentation** object, which applies the perturbation to the image inside the evaluation.\n", "\n", "- Finally, the **metric** object will define our precise scoring methodology.\n", "\n", "The evaluation workflow in this notebook is slightly unusual. Typical ML workflows apply many different augmentations / perturbations to much larger datasets, and only call `evaluate` once to get a statistical view of performance. But since the goal of this notebook is to drill down into how perturbation affects performance, we've essentially flipped process, calling `evaluate` (and thus our wrapped objects) many times, once per loop on our single image perturbed to a known degree, and then observing how the metrics respond." ] }, { "cell_type": "markdown", "id": "da908c7f-b499-4361-8e2b-cf7647b45de6", "metadata": {}, "source": [ "## Some helper classes\n", "\n", "The following cell adds two classes to allow us to use YOLO detections with the MAITE evaluation workflow:\n", "\n", "1. The `YOLODetectionTarget` helper class that stores the bounding boxes, label indices, and confidence scores for a single image's detections.\n", "\n", "2. The `MaiteYOLODetection` adapter class that conforms to the MAITE [Object Detection Dataset](https://jatic.pages.jatic.net/cdao/maite/generated/maite.protocols.object_detection.Dataset.html) protocol by providing the `__len__` and `__getitem__` methods. The returned item is a tuple of (image, `YOLODetectionTarget`, metadata-dictionary)." ] }, { "cell_type": "code", "execution_count": 7, "id": "346f4207", "metadata": {}, "outputs": [], "source": [ "from dataclasses import dataclass\n", "\n", "import torch\n", "from maite.protocols.object_detection import DatumMetadataType\n", "\n", "from nrtk.interop.maite.interop.object_detection.dataset import JATICObjectDetectionDataset\n", "\n", "##\n", "## Helper class for containing the boxes, label indices, and confidence scores.\n", "##\n", "\n", "\n", "@dataclass\n", "class YOLODetectionTarget:\n", " \"\"\"\n", " A helper class to represent object detection results in the format expected by YOLO-based models.\n", "\n", " Attributes:\n", " boxes (torch.Tensor): A tensor containing the bounding boxes for detected objects in\n", " [x_min, y_min, x_max, y_max] format.\n", " labels (torch.Tensor): A tensor containing the class labels for the detected objects.\n", " These may be floats for compatibility with specific datasets or tools.\n", " scores (torch.Tensor): A tensor containing the confidence scores for the detected objects.\n", " \"\"\"\n", "\n", " boxes: torch.Tensor\n", " labels: torch.Tensor\n", " scores: torch.Tensor\n", "\n", "\n", "##\n", "## Prepare results for ingestion into maite dataset by puttin them into detection object\n", "## Images must be channel first (c, h, w) in maite dataset objects\n", "##\n", "imgs = [np.transpose(img_nd_bgr, (2, 0, 1))]\n", "dets = []\n", "metadata: list[DatumMetadataType] = [{\"id\": 0}]\n", "for _detection in baseline:\n", " boxes = baseline[0].boxes.xyxy.cpu()\n", " labels = baseline[0].boxes.cls.cpu() # note, these are floats, not ints\n", " scores = baseline[0].boxes.conf.cpu()\n", "\n", " dets.append(YOLODetectionTarget(boxes, labels, scores))" ] }, { "cell_type": "markdown", "id": "45cd8fb3-2ea6-492c-ab84-f3432b9d3440", "metadata": {}, "source": [ "## (1) Wrapping the detection model\n", "\n", "The first object we'll wrap will be the detection model. The cell below defines a class adapting YOLO for the [MAITE Object Detection Model](https://jatic.pages.jatic.net/cdao/maite/generated/maite.protocols.object_detection.Model.html) protocol. The `__call__` method runs the model on images in the batch and is called by the MAITE evaluation workflow later in the notebook." ] }, { "cell_type": "code", "execution_count": 8, "id": "e1131aa7-3716-479f-838b-0464b74106e9", "metadata": {}, "outputs": [], "source": [ "import maite.protocols.object_detection as od\n", "import ultralytics.models\n", "from maite.protocols import ArrayLike, ModelMetadata\n", "\n", "\n", "class MaiteYOLODetector:\n", " \"\"\"\n", " A wrapper class for a YOLO model to simplify its usage with input batches and object detection targets.\n", "\n", " This class takes a YOLO model instance, processes input image batches, and converts predictions into\n", " `YOLODetectionTarget` instances.\n", "\n", " Attributes:\n", " _model (ultralytics.models.yolo.model.YOLO): The YOLO model instance used for predictions.\n", "\n", " Methods:\n", " __call__(batch):\n", " Processes a batch of images through the YOLO model and returns the predictions as\n", " `YOLODetectionTarget` instances.\n", " \"\"\"\n", "\n", " def __init__(self, model: ultralytics.models.yolo.model.YOLO) -> None:\n", " \"\"\"\n", " Initializes the MaiteYOLODetector with a YOLO model instance.\n", "\n", " Args:\n", " model (ultralytics.models.yolo.model.YOLO): The YOLO model to use for predictions.\n", " \"\"\"\n", " self._model = model\n", " # Dummy model metadata type to pass type checking\n", " self.metadata = ModelMetadata(id=\"0\")\n", "\n", " def __call__(self, batch: Sequence[ArrayLike]) -> Sequence[YOLODetectionTarget]:\n", " \"\"\"\n", " Processes a batch of images using the YOLO model and converts the predictions to `YOLODetectionTarget`\n", " instances.\n", "\n", " Args:\n", " batch (Sequence[ArrayLike]): A batch of images in (c, h, w) format (channel-first).\n", "\n", " Returns:\n", " Sequence[YOLODetectionTarget]: A list of YOLODetectionTarget instances containing the predictions for each\n", " image in the batch.\n", " \"\"\"\n", " # Convert images to channel-last format (h, w, c) for YOLO model\n", " batch_transposed = [np.transpose(batch[i], (1, 2, 0)) for i in range(len(batch))]\n", "\n", " yolo_predictions = self._model(batch_transposed, verbose=False)\n", " return [\n", " YOLODetectionTarget(\n", " p.boxes.xyxy.cpu(), # Bounding boxes in (x_min, y_min, x_max, y_max) format\n", " p.boxes.cls.cpu(), # Class indices for the detected objects\n", " p.boxes.conf.cpu(), # Confidence scores for the detections\n", " )\n", " for p in yolo_predictions\n", " ]\n", "\n", "\n", "# create the wrapped model object\n", "yolo_model: od.Model = MaiteYOLODetector(model)" ] }, { "cell_type": "markdown", "id": "3cef0788-137f-41c1-a9e4-80e7d08b47d1", "metadata": {}, "source": [ "## (2) Wrapping the dataset\n", "\n", "MAITE pairs images and their reference detections (aka targets, ground truth) into **datasets**. Typical ML workflows have many images per dataset; when these do not all fit in memory simultaneously, a *dataloader* object is used which can page images and annotations in from disk. For this notebook, however, each invocation of `evaluate` will use the same single-image dataset (our reference image with its baseline detections.)" ] }, { "cell_type": "code", "execution_count": 9, "id": "1dcbb5d0-b899-4355-9922-9d52fb866b4b", "metadata": {}, "outputs": [], "source": [ "# our single image, its baseline detections, and metadata dictionary\n", "# switch image to channel first\n", "single_image_dataset: od.Dataset = JATICObjectDetectionDataset(imgs, dets, metadata, dataset_id=\"visdrone_ex\")" ] }, { "cell_type": "markdown", "id": "7963f7fa-052c-476d-944e-5bbdae3181b5", "metadata": {}, "source": [ "## (3) Wrapping the perturbations as augmentations\n", "\n", "The `evaluate` function will perturb the image from the dataset using instances of the class defined below, one instance per perturbation value. Note that the object doesn't perform any augmentations until called by the `evaluate` workflow." ] }, { "cell_type": "code", "execution_count": 10, "id": "aa7a398f", "metadata": {}, "outputs": [], "source": [ "from nrtk.impls.perturb_image.generic.albumentations_perturber import AlbumentationsPerturber\n", "from nrtk.interop.maite.interop.object_detection.augmentation import JATICDetectionAugmentation\n", "\n", "perturber = AlbumentationsPerturber(perturber=\"RandomSunFlare\", parameters={\"p\": 0.0}, seed=1)\n", "identity_augmentation = JATICDetectionAugmentation(perturber, augment_id=\"identity\")" ] }, { "cell_type": "markdown", "id": "81020be7-76ba-43e3-b231-7d2bd7c30387", "metadata": {}, "source": [ "## (4) Wrapping the metrics\n", "\n", "We'll compare the detections in each perturbed image to the unperturbed detections using the Mean Average Precision (mAP) metric from the `torchmetrics` package. The following cell creates a mAP metrics object, wraps it in a MAITE [MAITE Object Detection Metric](https://jatic.pages.jatic.net/cdao/maite/generated/maite.protocols.object_detection.Metric.html) protocol-compatible class, and then creates an instance of this class, which will be called by `evaluate`.\n", "\n", "This code is copied directly from the [MAITE object detection tutorial](https://jatic.pages.jatic.net/cdao/maite/tutorials/torchvision_object_detection.html#metrics) (with the exception of setting `class_metrics=True`.)" ] }, { "cell_type": "code", "execution_count": 11, "id": "e33407c5-f1d7-4c7a-9a31-2d500f97edcc", "metadata": {}, "outputs": [], "source": [ "from maite.protocols import MetricMetadata\n", "from torchmetrics import Metric as TorchMetric\n", "from torchmetrics.detection.mean_ap import MeanAveragePrecision\n", "\n", "##\n", "## Create an instance of the MAP metric object\n", "##\n", "\n", "tm_metric = MeanAveragePrecision(\n", " box_format=\"xyxy\",\n", " iou_type=\"bbox\",\n", " iou_thresholds=[0.5],\n", " rec_thresholds=[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0],\n", " max_detection_thresholds=[1, 10, 100],\n", " class_metrics=True,\n", " extended_summary=False,\n", " average=\"macro\",\n", ")\n", "\n", "##\n", "## This wrapper associates the MAP metric object with methods called by the evaluate\n", "## workflow to accumulate detection data and compute the metrics.\n", "##\n", "\n", "\n", "class WrappedTorchmetricsMetric:\n", " \"\"\"\n", " A wrapper class for a Torchmetrics metric designed to simplify its usage for object detection tasks.\n", "\n", " This class facilitates the conversion of object detection targets and predictions into the format\n", " expected by Torchmetrics metrics, allowing for easier integration with existing pipelines.\n", "\n", " Attributes:\n", " _tm_metric (Callable): The Torchmetrics metric to be wrapped, which takes lists of dictionaries\n", " containing torch.Tensor objects representing predictions and targets.\n", "\n", " Methods:\n", " to_tensor_dict(target):\n", " Converts an `ObjectDetectionTarget` into a dictionary format compatible with the Torchmetrics\n", " metric's `update` method.\n", "\n", " update(preds, targets):\n", " Updates the wrapped Torchmetrics metric with batches of predictions and targets in their native format.\n", "\n", " compute():\n", " Computes the final metric values using the wrapped Torchmetrics metric.\n", "\n", " reset():\n", " Resets the state of the wrapped Torchmetrics metric.\n", " \"\"\"\n", "\n", " def __init__(\n", " self,\n", " tm_metric: TorchMetric,\n", " ) -> None:\n", " \"\"\"\n", " Initializes the WrappedTorchmetricsMetric with the given Torchmetrics metric.\n", "\n", " Args:\n", " tm_metric (Callable): A Torchmetrics metric instance that expects predictions and targets as lists of\n", " dictionaries containing torch.Tensor objects.\n", " \"\"\"\n", " self._tm_metric = tm_metric\n", " # Dummy metric metadata type to pass type checking\n", " self.metadata = MetricMetadata(id=\"0\")\n", "\n", " @staticmethod\n", " def to_tensor_dict(target: od.ObjectDetectionTarget) -> dict[str, torch.Tensor]:\n", " \"\"\"\n", " Converts an ObjectDetectionTarget into a dictionary format compatible with the Torchmetrics metric's\n", " `update` method.\n", "\n", " Args:\n", " target (od.ObjectDetectionTarget): An object detection target instance containing boxes, labels, and scores.\n", "\n", " Returns:\n", " dict[str, torch.Tensor]: A dictionary with keys `boxes`, `scores`, and `labels`, each mapping to a tensor.\n", " \"\"\"\n", " return {\n", " \"boxes\": torch.as_tensor(target.boxes),\n", " \"scores\": torch.as_tensor(target.scores),\n", " \"labels\": torch.as_tensor(target.labels).type(torch.int64),\n", " }\n", "\n", " def update(self, preds: od.TargetBatchType, targets: od.TargetBatchType) -> None:\n", " \"\"\"\n", " Updates the wrapped Torchmetrics metric with the given predictions and targets.\n", "\n", " Args:\n", " preds (od.TargetBatchType): A batch of predictions in the format expected by the Torchmetrics metric.\n", " targets (od.TargetBatchType): A batch of targets in the format expected by the Torchmetrics metric.\n", " \"\"\"\n", " preds_tm = [self.to_tensor_dict(pred) for pred in preds]\n", " targets_tm = [self.to_tensor_dict(tgt) for tgt in targets]\n", " self._tm_metric.update(preds_tm, targets_tm)\n", "\n", " def compute(self) -> dict[str, Any]:\n", " \"\"\"\n", " Computes and returns the final metric values using the wrapped Torchmetrics metric.\n", "\n", " Returns:\n", " dict[str, Any]: A dictionary containing the computed metric values.\n", " \"\"\"\n", " return self._tm_metric.compute()\n", "\n", " def reset(self) -> None:\n", " \"\"\"Resets the state of the wrapped Torchmetrics metric, clearing any accumulated data.\"\"\"\n", " self._tm_metric.reset()\n", "\n", "\n", "##\n", "## This is our instance variable that can compute the MAP metrics.\n", "##\n", "\n", "mAP_metric: od.Metric = WrappedTorchmetricsMetric(tm_metric) # noqa: N816" ] }, { "cell_type": "markdown", "id": "0102dfde-cb9b-46a7-8e4a-d12ccd948864", "metadata": {}, "source": [ "# Running the evaluation\n", "\n", "We now have all the wrappings required to evaluate our range of perturbations:\n", "- The `yolo_model` object, wrapping the YOLO model\n", "- The `single_image_dataset` object, providing our source image and its baseline detections\n", "- The `augmentation` object, which when instantiated, applies a single perturbation value to its input\n", "- The `mAP_metrics` object, defining the metrics to compute at each perturbation value" ] }, { "cell_type": "markdown", "id": "38a7fef1-a3cc-4e63-8a2b-6133274e4b1c", "metadata": {}, "source": [ "## Evaluation sanity check: ground truth against itself\n", "\n", "Here we quickly check the evaluation workflow by creating an *identity augmentation* (with a cn2_at_1m value of 1.7e-14, leaving the image unchanged) and scoring it. The detections should also be unchanged from the baseline and thus give an mAP of 1.0." ] }, { "cell_type": "code", "execution_count": 12, "id": "a0af9f36-c69b-400f-82ec-f1fd7e9d98ea", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████| 1/1 [00:00<00:00, 61.64it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Sanity check: overall mAP (should be 1.0): 1.0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from maite.workflows import evaluate\n", "\n", "# call the model for each image in the dataset (in this case, just the source image),\n", "# scoring the resulting detections against those from the dataset\n", "sanity_check_results, _, _ = evaluate(\n", " model=yolo_model,\n", " dataset=single_image_dataset,\n", " augmentation=identity_augmentation,\n", " metric=mAP_metric,\n", ")\n", "\n", "print(\"Sanity check: overall mAP (should be 1.0):\", sanity_check_results[\"map\"].item())" ] }, { "cell_type": "markdown", "id": "2a1a72bb-dbf1-431e-892e-132771cd7b92", "metadata": {}, "source": [ "## Preparing the data\n", "\n", "Now we'll prepare the augmentation instances for the evaluation. In the cell below, you can set three parameters for sweeping the set of perturbation values:\n", "- **sweep_low**: the minimum perturbation value (`0.0` is no haze)\n", "- **sweep_high**: the maximum perturbation value (we use something high to see where accuracy will drop to zero)\n", "- **sweep_count**: how many perturbations to generation\n", "\n", "You can also optionally select perturbations to visualize:\n", "- **visualization_indices**: a list of perturbation indices *p*, 0 <= *p* < sweep_count. These instances will be rendered along with their corresponding detections." ] }, { "cell_type": "code", "execution_count": 13, "id": "48b5e334-d8eb-415c-b263-4c4bd3618b43", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generated 100 perturbation augmentations\n" ] } ], "source": [ "SWEEP_LOW = 100\n", "SWEEP_HIGH = 800\n", "SWEEP_COUNT = 10\n", "VISUALIZATION_INDICES = [0, 25, 50, 75]\n", "\n", "##\n", "## end user-settable parameters\n", "##\n", "\n", "perturbation_values = np.linspace(SWEEP_LOW, SWEEP_HIGH, SWEEP_COUNT, endpoint=True)\n", "augmentations = [\n", " JATICDetectionAugmentation(\n", " AlbumentationsPerturber(perturber=\"RandomSunFlare\", parameters={\"p\": 1, \"src_radius\": int(p)}, seed=seed),\n", " augment_id=str(p),\n", " )\n", " for _, p in enumerate(perturbation_values)\n", " for seed in range(10)\n", "]\n", "\n", "print(f\"Generated {len(augmentations)} perturbation augmentations\")" ] }, { "cell_type": "markdown", "id": "549d0d4d-eabd-4f54-a487-7cfbc99916c9", "metadata": {}, "source": [ "## Calling evaluate on the augmented data\n", "\n", "We loop over all the augmentations, calling `evaluate` on each one and building up a list of resulting metrics for analysis.\n", "\n", "The location of the sun-flare will have a high impact on our results. If the area of the image obscured by the flare contains no objects, it would not interefere with detection. Because we select the locations randomly, this results in a high variation in relative mAP depending on the random seed used to place the flare. To get more meaningful results, we will repeat the evaluation for 10 different random seeds.\n", "\n", "Any augmentation indices specified above will be rendered in this step." ] }, { "cell_type": "code", "execution_count": 14, "id": "a4951dfc-c2cc-434a-8fd2-1786ba3acf96", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████| 1/1 [00:00<00:00, 21.62it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #0: Radius 100\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████| 1/1 [00:00<00:00, 18.84it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 21.35it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 20.16it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 23.05it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 20.91it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 21.46it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 24.02it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 23.63it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 23.85it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 17.49it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 21.59it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 19.26it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 17.22it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 18.70it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 15.10it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 17.75it/s]\n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #25: Radius 255\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #50: Radius 488\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|█| 1/1 [00:00<00:00, \n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.00it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #75: Radius 644\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.99it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.14it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.41it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.93it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.47it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.30it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.93it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 6.75it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.22it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 6.84it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.48it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.36it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.98it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.26it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.22it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.02it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.98it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 6.94it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.66it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.76it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 7.80it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.10it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.15it/s]\n", "100%|██████████████████████████████████| 1/1 [00:00<00:00, 8.01it/s]\n" ] } ], "source": [ "perturbed_metrics = dict()\n", "for idx, a in enumerate(augmentations):\n", " # reset the metric object for each dataset\n", " mAP_metric.reset()\n", " src_radius = a.augment.get_config()[\"parameters\"][\"src_radius\"]\n", " result, _, _ = evaluate(model=yolo_model, dataset=single_image_dataset, augmentation=a, metric=mAP_metric)\n", " if src_radius not in perturbed_metrics:\n", " perturbed_metrics[src_radius] = list()\n", " perturbed_metrics[src_radius].append(result)\n", "\n", " if idx in VISUALIZATION_INDICES:\n", " # quickest way is to re-evaluate\n", " print(f\"Perturbation #{idx}: Radius {src_radius}\")\n", " datum = single_image_dataset[0]\n", " batch = ([datum[0]], [datum[1]], [datum[2]])\n", " # Extract the image from the augmentation and switch it to channel last\n", " aug = np.transpose(a(batch)[0][0], (1, 2, 0))\n", " _ = model(aug)[0].show()" ] }, { "cell_type": "markdown", "id": "d0303b6a-f587-43c8-ae9f-0057a7884241", "metadata": {}, "source": [ "# Evaluation analysis\n", "\n", "Now we can plot how the metrics (for example, mAP @ IoU=50) vary with perturbation level, keeping in mind this is a **relative** mAP against the detections in the unperturbed image.\n", "\n", "Because we repeated each perturbation 10 times with different random seeds, we will plot the average, worst-case, and best-case relative mAP for each flare radius." ] }, { "cell_type": "code", "execution_count": 15, "id": "09b6804b-c98c-46fb-af98-ab5598892ba7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/jpeg": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "map50s_dict = dict()\n", "for radius, metrics in perturbed_metrics.items():\n", " for m in metrics:\n", " if radius not in map50s_dict:\n", " map50s_dict[radius] = list()\n", " map50s_dict[radius].append(m[\"map_50\"].item())\n", "\n", "map50_avg = [np.average(map50s_dict[m]) for m in map50s_dict]\n", "map50_best = [np.max(map50s_dict[m]) for m in map50s_dict]\n", "map50_worst = [np.min(map50s_dict[m]) for m in map50s_dict]\n", "\n", "plt.title(\"relative mAP@50\")\n", "plt.xlabel(\"Flare Radius\")\n", "plt.ylabel(\"relative mAP @ 50% IoU\")\n", "_ = plt.plot(perturbation_values, map50_avg, label=\"Average\")\n", "_ = plt.plot(perturbation_values, map50_worst, label=\"Worst\")\n", "_ = plt.plot(perturbation_values, map50_best, label=\"Best\")\n", "plt.legend()" ] }, { "cell_type": "markdown", "id": "3a8720fd-32dc-493d-ab5c-81c313615504", "metadata": {}, "source": [ "## Evaluation interpretation\n", "\n", "The general trend is that mAP decreases as the flare radius increases, as the flare is able to obscure a greater number of objects. However, the most important factor in effected mAP will be the location of the flare and whether it could obscure any of the objects in the image. It is possible even with a smaller lens flare for it to significantly impact mAP, if the location of that flare happens to obscure multiple objects. As the size of the flare increases, the probability of each object being obscured also increases." ] }, { "cell_type": "markdown", "id": "b28b9f2a-7217-4427-9c4f-f84656a4dcf2", "metadata": {}, "source": [ "# End of notebook" ] } ], "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.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }