{ "cells": [ { "cell_type": "markdown", "id": "71b1eb19-3148-46ca-8a9a-fdf18bd2b18d", "metadata": {}, "source": [ "# Demonstrating Fog/Haze 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, fog or haze), 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", "Doing 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", "\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.haze_perturber import HazePerturber" ] }, { "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 Haze perturbation: examples and guidance\n", "\n", "The Haze perturbation is set by the following parameters:\n", "\n", "- `factor`: strength of haze applied to the image\n", "- `sky_color`: optional sky color to use for weathering\n", "- `depth_map`: optional depth map for adding haze\n", "\n", "When a `depth_map` is not provided, the image is assumed to be planar and and a default depth map of all ones, consistent with the input image dimensions, is used. When the `sky_color` is not provided, the average pixel color of the input image is used. When neither of these parameters are provided, the resulting image is effectively a lower contrast version of the input.\n", "\n", "For the purpose of this example notebook, we will only change the `factor` value. All other parameters will use the values from the original image. Note that a haze factor of `0.0` represents no change to the image.\n", "\n", "We calculate a sample `depth_map` by generating a linear gradient with `1.0` at the top of the image and `0.2` at the bottom. Decreasing the `depth_map` from the top down indicates a horizon near the top of the image.\n", "\n", "We obtain a `sky_color` by sampling the original image.\n", " " ] }, { "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", "sky_color = [236, 240, 239] # Taken from the visible sky at the top of the image\n", "depth_map = np.zeros_like(img_nd_bgr, dtype=\"float\") # Depth map size = image size\n", "depth_map[...] = np.linspace(1.0, 0.2, depth_map.shape[0])[..., None, None] # Decreasing linspace\n", "params = {\n", " \"sky_color\": sky_color,\n", " \"depth_map\": depth_map,\n", "}\n", "\n", "ax[0, 0].set_title(\"Depth Map\")\n", "ax[0, 0].imshow(depth_map)\n", "ax[0, 0].axes.get_xaxis().set_visible(False)\n", "ax[0, 0].axes.get_yaxis().set_visible(False)\n", "\n", "for idx in range(1, 8):\n", " (row, col) = (int(idx / 4), idx % 4)\n", " factor = (idx - 1) / 2\n", " perturber = HazePerturber(factor=factor)\n", " ax[row, col].set_title(f\"Haze factor: {factor}\")\n", " ax[row, col].imshow(perturber(img_nd_bgr, additional_params=params)[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.14 torch-2.6.0+cu124 CPU (11th Gen Intel Core(TM) i9-11950H 2.60GHz)\n", "Setup complete ✅ (16 CPUs, 62.5 GB RAM, 288.4/914.7 GB disk)\n", "Downloading model...\n", "Computing baseline...\n", "\n", "0: 384x640 5 persons, 15 cars, 1 motorcycle, 2 trucks, 92.1ms\n", "Speed: 5.3ms preprocess, 92.1ms inference, 1.6ms 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.interop.maite.interop.object_detection.augmentation import JATICDetectionAugmentation\n", "\n", "perturber = HazePerturber(factor=0.0)\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, 11.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 30 perturbation augmentations\n" ] } ], "source": [ "SWEEP_LOW = 0.0\n", "SWEEP_HIGH = 4.0\n", "SWEEP_COUNT = 30\n", "VISUALIZATION_INDICES = [0, 1, 3, 5, 7, 9]\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(HazePerturber(factor=p), augment_id=str(idx))\n", " for idx, p in enumerate(perturbation_values)\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", "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, 11.69it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #0: haze factor 0.0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.64it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #1: haze factor 0.13793103448275862\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.52it/s]\n", "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.75it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #3: haze factor 0.41379310344827586\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 12.00it/s]\n", "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 10.58it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #5: haze factor 0.6896551724137931\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.16it/s]\n", "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.05it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #7: haze factor 0.9655172413793103\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.31it/s]\n", "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.25it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Perturbation #9: haze factor 1.2413793103448276\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████| 1/1 [00:00<00:00, 11.85it/s]\n", " 0%| | 0/1 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "map50_list = [m[\"map_50\"].item() for m in perturbed_metrics]\n", "plt.title(\"relative mAP@50\")\n", "plt.xlabel(\"Haze factor\")\n", "plt.ylabel(\"relative mAP @ 50% IoU\")\n", "_ = plt.plot(perturbation_values, map50_list)" ] }, { "cell_type": "markdown", "id": "3a8720fd-32dc-493d-ab5c-81c313615504", "metadata": {}, "source": [ "## Evaluation interpretation\n", "\n", "The metric shown, mAP@50, is the average precision of detections across all classes when the bounding box IoU is at least 0.5 (for more details, [see here](https://lightning.ai/docs/torchmetrics/stable/detection/mean_average_precision.html).) The mAP value appears to decrease almost linearly as the haze factor increases. It reaches zero when the haze factor is around 2.5.\n", "\n", "Viewing the object detection boundaries in the perturbed image highlights the fact that objects closer to the foreground are more easily detected when using the haze perturber. With our approximated depth map input, this means any object closer to the bottom of the image." ] }, { "cell_type": "markdown", "id": "3f0f9b97-ce54-4d21-be91-160f4a5d3054", "metadata": {}, "source": [ "## Additional plots\n", "\n", "For further insight, we can plot the mAP per class:" ] }, { "cell_type": "code", "execution_count": 16, "id": "65d28ff5-838e-467a-a703-81432a408b35", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/jpeg": "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hY96qpJA6sABz6V6H/Ztp/a39qeV/pvkfZ/M3H/V7t2MZx15zjNUbrwto15BeQz2e5by5W7mIldWMyqqh1YHKEBF+6R09zQBy+i6/qF1ZeJLLWNUvtLOlNFJ9uuIrZbiOJkD/OFDxZ4PIHQjgGqTa14q0rwyt9PdX11Lq2oQ22nxz29uLi3hYH5mAEaF2AJCtwuVBycg9Q3gHw09ld2hsJPKvHjkuCLqYPI8ZyjF9+7IPOc5PfNWk8JaOunXNhLFc3VtcFTIl5ezXHKnIKmR2KkHnKkcgHtQBS8JXPiGS4v4NZtr4WqCNrW4v0t0mcndvVhAxXAwpBwPvEds1jiB7X4oeINTuNZuI7a00q3mdGiiZBHm4+U/Ju2qVLcEEk8kjAHXaToVhool+xJPumxvee5lnY4zgbpGY4GTx71I2j2D3t3ePbK895AttcFiSJI13YUqTjHzt25zzQBw2i+KdXi8R2FtdHVrmx1GznniOoW1vCxMYVgYxEd2CG5DjPI561oaINb1zwnHrl14hlA1GwacWsFvD5cG9MqEJUsWXI5YkEg8Vsab4L0DSb63vbOydbm2Ro4ZJLmWQxoRgqN7HC46DoO2KmsPCmjaXfNd2VrJC5LHy1uJPJUt94rEW2LnJ6KOtAHE6DNq2meAvBlna61P5msrbQJPNDERZx/Z2kKxgIMkhNo37uvfvNqOv+IbC11TS4tUSa+s9WsLaG+kt0y8dw0eVkQALkbiCVA4Ixg811UfgvQItKfTFs5TZM6usLXUrCJl+6Yst+6x22bamh8KaJb6etjHZHyBdJeHdM7O8yMGV2ctuYgqvUnoB0oAv6fbXFpZrDdX819KCSZ5URWOT0wigcdOn51aoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#\n", "# Each instance of the metrics object has, potentially, a different set of observed classes.\n", "# Loop through them to accumulate a unified set of classes to ensure consistent plotting across\n", "# all thresholds.\n", "#\n", "\n", "unified_classes = set()\n", "for m in perturbed_metrics:\n", " for class_idx in m[\"classes\"].tolist():\n", " unified_classes.add(class_idx)\n", "\n", "#\n", "# dictionary of class_idx -> list of per-class mAP, or 0 if not present at that threshold\n", "#\n", "\n", "class_mAP = {class_idx: list() for class_idx in unified_classes} # noqa: N816\n", "\n", "#\n", "# populate the lists across the perturbation values\n", "#\n", "\n", "for m in perturbed_metrics:\n", " this_perturbation_classes = m[\"classes\"].tolist()\n", " for class_idx in unified_classes:\n", " if class_idx in this_perturbation_classes:\n", " # the index of the class in this individual metric instance\n", " this_class_idx = this_perturbation_classes.index(class_idx)\n", " class_mAP[class_idx].append(m[\"map_per_class\"][this_class_idx].item())\n", " else:\n", " class_mAP[class_idx].append(0)\n", "\n", "#\n", "# plot\n", "#\n", "\n", "plt.title(\"Relative mAP per class\")\n", "plt.xlabel(\"Haze factor\")\n", "plt.ylabel(\"relative mAP @ 50% IoU\")\n", "for class_idx, class_mAP_list in class_mAP.items(): # noqa: N816\n", " plt.plot(perturbation_values, class_mAP_list, label=baseline[0].names[class_idx])\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "3aef482b-1a2b-4b2e-b522-7032776320d2", "metadata": {}, "source": [ "This plot shows several interesting results:\n", "\n", "- Each class sees a dramatic decrease in accuracy at some haze factor.\n", "\n", "- Detection of the motorcycle class was mostly unaffected for low haze factors but quickly dropped to 0 at around 0.5.\n", "\n", "- The person class is the most robust to haze perturbations.\n", "\n", "- At some haze levels, a motorcycle adjacent to a sign is detected as a traffic light, resulting in the negative mAP line as no traffic lights are detected in the original image.\n", "\n", "- As noted above, elements in the foreground are less affected by the haze perturber. The input image features several cars close to the bottom of the image, which continue to be detected as the haze factor increases. This explains the more gradual decline of car detection accuracy.\n" ] }, { "cell_type": "code", "execution_count": 17, "id": "23ec21e7-e682-4d08-ad1d-6c42d850402f", "metadata": {}, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAHHAjcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKp6rqlloml3GpajN5Nnbpvlk2lto9cKCT+AoAuUVzy+OfDbWV3ejU0FrasqSTGNwjMxIUISP3hJB+5moz4u03VvDusXeiX2+4sreRmV4mSSJthKlkcAjpxkYOKAOlorlLPxjY6d4T0C9128cXV/YxTfu7d5Gkby1LsEjU4GWHbAzUPiT4gadpXggeJNNkS+hkmjhi2I7AkuFYNgZUgbuuOQB1IBAOxormf+Ejs9TvNDlsdXmtYbi6ki+zzafIrXZWJm2fOoKYxu3d9uO9aUHiPSbjQZtbjux/Z0CytLMyMuwRkh8qRuBBU8Y7UAalFYWo+MtB0mCzlvL4p9sjE0EawSPK6YB3eWqlgOR1AxWnpup2WsafDf6dcx3NpMN0csZyD2/PPGO1AFqiue1Txx4c0a+uLG/wBR8u6t1R5IVgkdgrAkEBVORhTkjOO+Mimf8J94WN1aW66xC73ewQsisyEuMoC4G1ScjAYg80AdJRXL+Ntf1PRbC1g0K2t7rWb6Yx20M4YoQqM7khSDwqkdepFQa74xkt/hi3ivSUheR7aGaFJwWQb2UEMAQeNx7jkUAdfRXFw+IPEekeLdI0XX10u5i1YTLBPYJJE0bxpvIZHZsgjuD1rp77VbLTZ7KG7m8p72b7Pb5RiHk2lguQMA4U9cZxQBdoqhNrWn2+qf2bLchbv7M12Y9rcRKQCxOMAZPc8/hWdpXjfw7rWopp9jqG66kUvHHJBJF5oHUoXUB8dflzQB0FFcfpfin7PJ4puNavNtlp+rraQt5WfLV0hCr8oycvJ1OevXArpLjVbK11Oz06abbd3oka3j2k7wgBbkDAwCOpFAFyiucuPHnhi11RtOm1WNbhJRA58tzGkh42NIBsVs8YJzU2seMdB0K9Wy1C9Zbop5hiigkmZUzjcwRTtHB5OKAN2io7e4iu7aK5gcPDKgkRx0ZSMg/lXMy/EfwlBcPBLrCK8czQSkwybYnVihDttwg3AgFiAexoA6qisjWvE+j+HhB/ad4Innz5UaRvLJJjqVRAWIHc44qJ/GPh9NBi1xtUh/syWVYVuAGKh2baA3GV54OcY74oA3KKz9H1zT9ftHutNleWBJDGXaF48kAHjcBkYI5HB9azdT8deG9H1CSxv9R8maJlWUmCQxxFgCN7hSq8EHkjrQB0VFY2s+LND0Ca2h1O/WCS5RngXYzeYFKg7doOT8y4HU54zVW98eeG9OjtmutQZDcQi4SMW0rSCM9GZFUsg92A70AdHRWPe+KdF0/SrXU575Ws7rAt5IUaXzcjI2hASeATwKn0XXdM8Q2TXelXa3EKuY3wpVkcdVZWAKnkcEDrQBo0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUhYL1IH1oAWim70/vL+dG9P7y/nQA6im70/vL+dG9P7y/nQA6im70/vL+dG9P7y/nQA6im70/vL+dG9P7y/nQA6im70/vL+dG9P7y/nQA6im70/vL+dG9P7y/nQA6im70/vL+dG9P7y/nQA6uP+Kn/JLvEP8A16H+Yrrt6f3l/Ojen95fzoA89+IVjNb2/he9t57my03TLrNxNaQLK1spiZEk2MrAhScE4OA2RVCwXSb9fEer2fiu7167/sWW3kd4ESNUwzL8yRqCwOe5OCa9R3p/eX86N6f3l/OgDyp/EF3pmieDLGXWjoOlT6JHI+orbLKXlCRgRAsCq5BLcjJxgViW5muvhT43dXu7vZ4gE3mTQBJXRWtpGcoqjGRlsYH0r3Den95fzo3p/eX86AOD1bWdN17xJ4IvdKvYbu2/tK4TzImyMi2kyPrXO65DLD4rv/AKI/2XxFqEOoKQOFtzlroZ7ZaHp/01r17en95fzo3p/eX86APLPEe/RfiRfahqHiG80GxvLGCO1vIreOSIlC+6JmdG2HLBgOM5PXFdZ4Bs9PtdBuJNN1O51KC6vJbhrmeIR7nYjdtAVRtzk8DHJrp96f3l/Ojen95fzoA4zRIkPxb8VylAZFsbFVbHIB80kfoPyri44IoP2b7nyo1T/SJH+UY+YXxAP4YH5V7PvT+8v50b0/vL+dAHnd4uu+IfiTe3OhXdhBFoNuLINeQNMpmlw8hXay4IURqfqa5jVftel/Dfxp4U1KWF7mwniuImgUohhnlVxsBJIAfzF6nGBXte9P7y/nRvT+8v50AYGleC9G0nVF1ONbu5v1QxpcXt5LcPGp6hS7Hbn2qPx9pk+peD7w2Y/wBPs9t9ZkdRNEQ6gfXaV/Guj3p/eX86N6f3l/OgDzfw1q1zrWneKvH2n2jTzXEBg0uB1JLRwRkgevzSl+PYVzaa22ra94LuP+EputYnOpoZ4hZRww2rNFJlMhAwbqNpY8A56CvbN6f3l/Ojen95fzoA8l1WCa48NfEPyIXmeLXobgpGuWKxi2kbA7/KprUk8T6X4k+JvhJtIuDdW8UF8WnVGCbiifKCRywxyO2RnrXo29P7y/nRvT+8v50AeEabDZ23hOfwv4m8ZanptwGlhutL+xRMZMux3Rnyi7hshgwJOTXUeJ73TPDut3V3p/iyTS9c+yRRzW1za+dHe7FJj4IBLfMRlG79K9P3p/eX86N6f3l/OgClod3d6hoGn3l/a/Zbye2jkmg5/duVBK888H1ryPTfEei6d4S8a6ReRP8Ab77U9RSC2EDM16zsyLswPmOflPpjntXtO9P7y/nWN4b0RPD1neW/2xbj7TfT3m7Zs2+a5bb1OcZxnv6CgDza7tL7w54g0W61nXrzRYP+Eft7E38MEcqCeM5kjdnRguchgeM468Uuo2GlN4HZ7LVbjWLfUPEtpLcT3EIjEjtJGG2gKoKkAcgYJzXsO9P7y/nRvT+8v50AOrx3xb4ju7pvFWnah4gudOlh82C00e2sUdruLyxhyzoxIbJyQQFA59a9g3p/eX86N6f3l/OgDzHS0W48RfDKWUB3XQZpFZuSG8qAZ+uCfzqpqUjaF8QfEU2qeKb3w/DqDQS2s6W0TxXCLGFK73jbDKwPy5H3s45r1nen95fzo3p/eX86APK5L9fCvhXw3Z6Rr09pod1cXBn1qezBaIEs6qFZQqhmLAErjAGOtXPhncG58T+MJBf3V/E0toyXVzCsTTDyiN21VUYOBg45ABr0jen95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3p/eX86AHUU3en95fzo3qSAGGT70AOooooAKKKKACiimyP5cbPtZtoJ2qMk+woAdRWNoHiOHX5L+JLG9sprGVYporxFVssiuCArHjaw64NJrHiSHSb2CxSxvdQvpo2mFtZIrOsakAudzKAMkDrknoDQBtVyfjOws9T1LwrZ39pBdW0mqvvhnjDo2LS4IyDweQD+FdBpWqWutaXb6jZOXtrhN6EqQR6gg9CDkEdiKyPEv/Ie8I/9hV//AEjuaAF/4QHwd/0Kuif+AEX/AMTR/wAID4O/6FXRP/ACL/4muiooA53/AIQHwd/0Kuif+AEX/wATR/wgPg7/AKFXRP8AwAi/+JroDIgfYXUNjO3POKN6/wB4fnRcDn/+EB8Hf9Cron/gBF/8TR/wgPg7/oVdE/8AACL/AOJroN6/3h+dG9f7w/OldDsc/wD8ID4O/wChV0T/AMAIv/iaP+EB8Hf9Cron/gBF/wDE10G9f7w/Ojev94fnRdBY5/8A4QHwd/0Kuif+AEX/AMTR/wAID4O/6FXRP/ACL/4muhBB6HNLTEc7/wAID4O/6FXRP/ACL/4mj/hAfB3/AEKuif8AgBF/8TXRUUAc7/wgPg7/AKFXRP8AwAi/+Jo/4QHwd/0Kuif+AEX/AMTXRUUAc7/wgPg7/oVdE/8AACL/AOJo/wCEB8Hf9Cron/gBF/8AE10VFAHO/wDCA+Dv+hV0T/wAi/8AiaP+EB8Hf9Cron/gBF/8TXRUUAc7/wAID4O/6FXRP/ACL/4mj/hAfB3/AEKuif8AgBF/8TXRUUAc7/wgPg7/AKFXRP8AwAi/+Jo/4QHwd/0Kuif+AEX/AMTXRUUAc7/wgPg7/oVdE/8AACL/AOJo/wCEB8Hf9Cron/gBF/8AE10VFAHO/wDCA+Dv+hV0T/wAi/8AiaP+EB8Hf9Cron/gBF/8TXRUUAc7/wAID4O/6FXRP/ACL/4mj/hAfB3/AEKuif8AgBF/8TXRUUAc7/wgPg7/AKFXRP8AwAi/+Jo/4QHwd/0Kuif+AEX/AMTXRUUAc7/wgPg7/oVdE/8AACL/AOJo/wCEB8Hf9Cron/gBF/8AE10VFAHO/wDCA+Dv+hV0T/wAi/8AiaP+EB8Hf9Cron/gBF/8TXRUUAc7/wAID4O/6FXRP/ACL/4mj/hAfB3/AEKuif8AgBF/8TXRUUAc7/wgPg7/AKFXRP8AwAi/+Jo/4QHwd/0Kuif+AEX/AMTXRUUAc7/wgPg7/oVdE/8AACL/AOJo/wCEB8Hf9Cron/gBF/8AE10VFAHO/wDCA+Dv+hV0T/wAi/8AiaP+EB8Hf9Cron/gBF/8TXRUUAc43gPwailm8LaGAOpNhF/8TUX/AAhngb/oW9B/8Aov/ia6C5AaS3UjIMnI/A1PtX0H5UAcx/whngb/AKFvQf8AwCi/+Jo/4QzwN/0Leg/+AUX/AMTXT7V9B+VG1fQflQBzH/CGeBv+hb0H/wAAov8A4mj/AIQzwN/0Leg/+AUX/wATXT7V9B+VG1fQflQBzH/CGeBv+hb0H/wCi/8AiaP+EM8Df9C3oP8A4BRf/E10+1fQflRtX0H5UAcx/wAIZ4G/6FvQf/AKL/4mj/hDPA3/AELeg/8AgFF/8TXT7V9B+VG1fQflQBzH/CGeBv8AoW9B/wDAKL/4mj/hDPA3/Qt6D/4BRf8AxNdPtX0H5UbV9B+VAHMf8IZ4G/6FvQf/AACi/wDiaP8AhDPA3/Qt6D/4BRf/ABNdPtX0H5UbV9B+VAHMf8IZ4G/6FvQf/AKL/wCJo/4QzwN/0Leg/wDgFF/8TXT7V9B+VG1fQflQBzH/AAhngb/oW9B/8Aov/iaP+EM8Df8AQt6D/wCAUX/xNdPtX0H5UbV9B+VAHNJ4K8ESMFTw1oLMewsYv/iazdS8MaDo3ibwncaXounWMzanIjSW1skbFfslwcEqBxkA/hXYXSgRoQBkSLg/iKxPEv8AyHvCP/YVf/0juaAOjooooAKKKKACkZgqliCQBnAGTS0UAcD4b1sDxN4puW0nW0ju5o7m3Mulzx+YsdtGrAFlADbkYAEgntVq8u5tO8W2viR9L1KWxvdJW3KQWrSzQSB/MCvGuSMhyM9AV5xXaUUAc94H0+603wlaw3sJguZJJ7h4SQTF5sryBDjuA4B9xWTqugWem+K/C13BNqDyS6pKGW41CeZBm0uDwjuVHTsBjpXb1zniX/kPeEf+wq//AKR3NAHR0UUUAcZ418PSTY1uwj33UAHnQnOJox9O49u3vTvDtt4Z8RWHn29mElTAmhMz7oz+fI9DXY15n4l0e68La4mu6MwhhlbDr/ArH+Fv9hv0PpxXPLDUHPmqRTv1aWn/AAO/39zKWIr4b3qcny9Um/v/AMzs/wDhFNE/58v/ACK/+NH/AAimif8APl/5Ff8AxqHSfF2l6hZ77i5hsblDsmt7iQIyMOvXGR71f/t/Rv8AoLWH/gSn+NU8vop2dJfcjqWYVWrqq/vZW/4RTRP+fL/yK/8AjR/wimif8+X/AJFf/GrP9v6N/wBBaw/8CU/xo/t/Rv8AoLWH/gSn+NH1Cj/z6X/gK/yH9erf8/X97/zM/SYI9K8QXunQrsgliSeJck4xwevvXQVzt/eWr6vpeo2lzDPGJTbSNE4YfMOASPzroqzw0fZ89K1uV/g9f1sXiJc6jVve6/FafoFFFFdRzBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEE/+ut/9/8Aoax9R0nxBc38s1l4k+x27Y2QfYkk2cAH5icnJyfxrYn/ANdb/wC//Q1PVRk4u6/zJlBSVn+dvyOX/sPxV/0OH/lOj/xo/sPxV/0OH/lOj/xrqKKv20uy+5f5GfsI9397/wAzl/7D8Vf9Dh/5To/8a6jtRRUym5b/AJJfkXCCjt+bf5nCapoem678UWt9UtUurddDU+TJyhJnYZI7kdj2zXM6PAmm+G/AniGGKW41a4uDDcTFy0tzGbec+WxPUZRMA9MCvYaKgs8Y8IX0H/Ca+G5dObSIRfwzreW2mQSKYz5W8JO7OQ7gr3UNwexqt4a/sb+yPD/9mZ/4Sz+1huxu87yPtDeZu/6Y+Vu/2c/7Ve4Vn6JpFvoOkQabavK8MJYq0pBY7mLHOAB1J7UAaFFFFABRRRQAUUUUAFFFFAEF3/qV/wB9f5isPxL/AMh7wj/2FX/9I7mty7/1K/76/wAxWH4l/wCQ94R/7Cr/APpHc0AdHRRRQAUUUUAFFFFABRRRQAVzniX/AJD3hH/sKv8A+kdzXR1zniX/AJD3hH/sKv8A+kdzQB0dFFFABUN1aw3trLbXEYkhlUq6nuKmoo3Bq+jPP47LTNDvTYeI9PhntyQtpqMsIYFOyO3Yjp9PYV0yeFvDsiK6aRYsrDIYRKQRWtPbw3UDwXESSxOMMjjII+lcw+j6n4cdp9Ac3NlnL6dM3T/rmx6fT+dQp1KSsm2vyOX2ap/ZuvxX+f5mn/winh//AKA1l/35FH/CKeH/APoDWX/fkVWt/G2iSxZuLo2kwOHgnQq6H0PFS/8ACY+Hv+grB+v+FV9Z/v8A4lKWHfb8DmfFGhf2FINQ0qIRWUxSO5hjGFRgfkkA7c8H6+9d5Z3Au7KC4XpLGr/mKp22paTr1vPBbXUN0hUrIinnB9utc94V1hrTU5vDt4cMjN9lc/xYPzJ9R1+h+lZOTnXUlreP/pL/AMm/kjrhyLDvleil+f8AwUvmzs6KKK2ICiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIJ/9db/7/wDQ0ybU7C3laKa9t45F6q8oBH4Zp8/+ut/9/wDoaZNplhcStLNZW8kjdWeIEn8cVFTnt7lr+ZdPkv797eQz+2dL/wCgjaf9/l/xo/tnS/8AoI2n/f5f8aP7G0v/AKB1p/35X/Cj+xtL/wCgdaf9+V/wrH/af7v4mv8As/8Ae/AP7Z0v/oI2n/f5f8au1S/sbS/+gdaf9+V/wq7WlP2mvtLfIzqez+xf5nP6t4tg0vWv7Ij0zUr+9Nr9rEdnGjfu9xU8syjII6d8jGTxUGm+O9M1W400W9tfLaalkWd7JCFhlcKWKDncGwrdVAO04Jq6NHuB43fWt8X2ZtNW0C5O/eJC+cYxjB9fwrn4vBepp4T8LaULu3iudJuPNmmjZiAPJmTKcckGRTzjoa1MzcsfFEd1qsOnXOl6lp01wjPbm8jQLMFwWAKs2CAc4bBx9Koad8QtO1L7HIunanBZXdwbWK9mhUQ+duKhCQxPLDAONueM5rD8P/D/AFHTPEGg6jNaaJbnTklS5ntWkee8LRFN7Myg5zztJPU8npVXwjo+t6x4Q0a1mlsE0WG+N40oZ/PYR3DSLHtxtA3qPm3dO2eaAPUmYIpZjhQMk+lc5p/jGHUdOl1JNJ1SLTltWu4rqVIwk8YGflAcsCRyAwWp08ZeGbmRYLXxLostxIQkUa30bFnPAAAbJyewrm7XwXqq3F66QaXpMM9jcW722n3ErQ3EkgG12Qqqx7efugn5jzQBpW/xDsrlrNE0fWQ+oQefYK0CA3agAkJ8/BAYH59oxyCRWlb+KIr3RE1Kx0zUbpmme3e0jjQTRSIWV1cMwUYKkZ3Y6Yzmqlv4bvIbzwnM0kG3R7OSCcBjlmaNEBTjkZU9cVj3ngjU5bExA2F2n9tXOoPY3ErrBcRSl9quQpOV3A42kZH40AX9R8WPc6bptzppmtZG1qCwu4Z4lEkeXAdGHIGQRyD0IINaXhbUrvUTrf2uXzPs2qz28PygbY1C4HA56nk81zeleAtRsNMNr/xLIc+IYtVWK1DJFHCojyijb1Gw47Hg5GcDqfDukXGkHVzcPE32zUpbuPyyThHC4ByBzx/9egDaooooAgu/9Sv++v8AMVh+Jf8AkPeEf+wq/wD6R3Nbl3/qV/31/mKw/Ev/ACHvCP8A2FX/APSO5oA6OiiigAooooAKKKKACiiigArnPEv/ACHvCP8A2FX/APSO5ro65zxL/wAh7wj/ANhV/wD0juaAOjooooAKKKKACiiigCCSztZnLy20LuerMgJpv9nWP/Pnb/8Afpf8Ks0UrIXKuxh6p4Xsr5kuLUmwvo/9Xc242kexA6iuI1RLm3v7i11uRLa/YpcWV/EMR+avAJ/uhu/bPNep1z/iK3h+3aZcTxJJC0pt5VcZBVxxn6VzV17JqtDeLX+T/Bjp4f2jlCDtzJ+jtqvxW61LHhnWxr2jpcsuy4jYxXEf92Qdce3f8a2K850+DVNA8UazaaJEk1rAY5jZO3MiMvVT6jp7+9djo/iCx1pWWFmjuY+JbaUbZIz7j+tdMpe/Zqz/AK2OejWuuWe/52NWiiimdAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEE/+ut/9/wDoanqCf/XW/wDv/wBDWVqGqa7b30kVn4e+12642TfbETdwM/KRkc5H4VMpKKuyZTUVd/lf8jcormv7a8T/APQp/wDlQj/wo/trxP8A9Cn/AOVCP/Cp9rHz+5/5Gft49n9z/wAjpaK5r+2vE/8A0Kf/AJUI/wDCul7VUZqW35Fwmpbfk1+YUVx+qza3feOzo1hrL6daDShclo7eOR/M81lGN6kYx1HtxjrWJpXifXE0zwr4g1TVI2ttWkMF1aLbqsUQ8mVxIrY35zFkgkj5jgDFUWel0V5xoPifVm8T6LbzTapc6dq8UrRy6ha28IO1N6tEIzvAI7OO45qvpGveIx4e0fxHd62LpLrU1spbH7NGqNG9wYQQwAbeOG644xjvQB6WIIQQRFGCOhCipKK8s07WPFkuh+GdUk19XfV702UsLWkeyNSJCJFwAd48sdTtOelAHqdFeb3vinXNIstW0zz5dQv7fWLfT4LsQxCQpNHHJkr8kZcbmUZ2gnbn3WTXvFml6RqX2qC8jVpbSCyvdTitxIjzSiJyywMVKruVgcDOcH1oA76bULK2kljnvLeJ4oTPIryqpSIZy5BPC8HnpxU6OkkayRsrowBVlOQQe4NeYX76rofijxHLJq7Xt1a+FnnguJIY1dSHkI3KoCnDDI+Xpwc4yel0bWr648R3Nrc3ANumi2d2qlFGJHaUO2QM87F46DFAHWUV5pous+I9fHhK3XWmtTqGhyXt5NHbxM7SK0IDLlSqn5z2xgnjOCF0zXvEZ0vQ9ZvNVSVbjVf7MmtEtkWN1814fMzjcHLLu4IXnGO9AHod3/qV/wB9f5isPxL/AMh7wj/2FX/9I7mty7/1K/76/wAxWH4l/wCQ94R/7Cr/APpHc0AdHRRRQAUUUUAFFFFABRRRQAVzniX/AJD3hH/sKv8A+kdzXR1zniX/AJD3hH/sKv8A+kdzQB0dFFFABRRRQAUUUUAFFFFABWX4itjc6FdKv30XzFI6grz/AErUpGUOpVhlSMEVnVgqkHB9VYulN05qa6M4+3uR/wAJ7p94OF1LSypH+2p3H9OK2dY8OWerstxl7a+j/wBVdwna6n39R7VycjGyudAkY82GqyWJb/ZkFeiVUZKtQpzl1WvqjKrRjGrUpPZPT0exzC2/jSNQgvdIlC8B5I3DN7kDjNO8rxp/z8aL/wB8yV0tFT7Lzf3mfsV/M/vOZ8zxpD96DR7kf7DOp/Xij+2vEkP+v8Llx/ehvEP6da6aij2b6SYeyfST/D/I5n/hLpIv+Prw9rEXqVg3qPxzSjx3oanFxLcWx9Jrdx/IGulprossbI6hkYYIPcUuWotpfgHJVW0vvX/DDLa4hu7aO4t5BJDIoZGHQg1LXM+DHa3sbzSJCTJp1y8Qz1KE5U/jzXTVUJc0Uy6c+eKkFFFFWWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEE/8Arrf/AH/6Gp6jliEqgElSpyGU8g0zyJP+fmX8l/woAnoqDyJP+fmX8l/wo8iT/n5l/Jf8KAJ6Kg8iT/n5l/Jf8KPIk/5+ZfyX/CgBg020GrHVPK/00wC3Mm4/6sMWxjOOpJzjNUk8MaMmnadp4sgbXTn8y1iZ2IRtrJzk/N8rsMHI5rQ8iT/n5l/Jf8KPIk/5+ZfyX/CgDG0/wR4e0u+tby0sXW4tAwt3e5lk8lSpUqoZiAuCflHHtWb4X8Aafo1lZS3ttHNqdtJJKGSeQw7yzYcISF3bSBu25966vyJP+fmX8l/wo8iT/n5l/Jf8KAMeC+8VtcRLPoGlRwlwJHTVndlXPJC+QMnHbI+oq1F4b0mCy0+zjtNtvp0wntU8xz5b4YZznJ++3ByOaveRJ/z8y/kv+FHkSf8APzL+S/4UAUrjw3pF2upLcWSSrqTpJdB2JEjKqqp6/KQEXGMcjPXmoIPCWiw2N5ZG1kngvECTrdXMs5dRnAzIxIxk4weK1PIk/wCfmX8l/wAKPIk/5+ZfyX/CgDGt/BPh+1F55dlIzXtqbS4eW5lkeWI9VLMxPfGc5HY1NfeEtE1GW3kubIs9vCLdCs0ibov7j7WG9f8AZbIrT8iT/n5l/Jf8KPIk/wCfmX8l/wAKAKVh4c0nTHsXs7TymsLU2dsfMdtkJKkryTnlF5OTx160ieG9JjsLaxW0xbW119siTzH+WbzDJuznJ+ZicHjnpir3kSf8/Mv5L/hR5En/AD8y/kv+FABd/wCpX/fX+YrD8S/8h7wj/wBhV/8A0jua3PsxJXfNI4BztOMZ/AVh+Jf+Q94R/wCwq/8A6R3NAHR0UUUAFFFFABWP4tu7nT/But3lkSLqCwnlhI6h1jJB/MVsUjoroyOoZWGCpGQRQB57p2lWHh7xP4T/ALGXyxqVrOt4VYn7Sqxq4lf+8wbHzdfnI707xjZPqvjSys4dLtdaaHT5JXsL6XyoIwzgLKGw2XypXG08Z5Xv0Vl4K8P6etwttYFRPbtatunkbZC3WNMsfLX2XA4HpUt74T0XUEtBPayBrSLyIZIbmWKRY+Pl3owYjgcEmgCp8P5PM8DaYPOmmaNXiczfeV0dlZOpyFIKg5OQorN1WfXZPFfhZNR07T7e0GqS+XJb3ryux+yXGMqYlA4yfvH8etddYWFppdhDY2MCQW0K7Y40GAorF8S/8h7wj/2FX/8ASO5oA6OiiigAooooAKKKKACiiigAooooA8+8URNHZ+INg+e2nt7yP65GT+td9DKs8McqHKuoYfQjNcxrdr5+raja4/4/NLdR/vjOK0PCN19s8JaXNnJ8hUJ91+U/yrPDfwHH+WUvx1ReJ/jqX80Y/hobVFFFaEBRRRQAUUUUAcw//Es+IKN0h1W2Kn3lj/8Asf5109c340iePSYNThGZtOuEuBjqVzhh+v6V0MUqTQpLGdyOoZT6g8isoaScfn9//BMafuzlH5/f/wAG4+iiitTYKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuc8S/8h7wj/wBhV/8A0jua6Ouc8S/8h7wj/wBhV/8A0juaAOjooooAKKKKACiiigAooooAK5zxL/yHvCP/AGFX/wDSO5ro65zxL/yHvCP/AGFX/wDSO5oA6OiiigAooooAKKKKACiiigAooooAxNU/deItHn7MZIm/FeP1qj4E/c6Te6eeDY300AHtnI/maveJf3cFjc/88LyNifboao6F/ovjbxFZ9Fl8m5QfVcN+tZ4b4q0PSX4WLxPw0Z+sf1OpooorQgKKKKACiiigCG8tkvbKe1l/1c0bRt9CMVieC7l5fDyW03/HxYyNayD0KHj9MV0NcxYf8Szx3qFn0i1CFbqP03r8rD6nrWU9JqXyMZ+7OMvkdPRRRWpsFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXOeJf+Q94R/wCwq/8A6R3NdHXOeJf+Q94R/wCwq/8A6R3NAHR0UUUAFFFFABRRRQAUUUUAFc54l/5D3hH/ALCr/wDpHc10dc54l/5D3hH/ALCr/wDpHc0AdHRRRQAUUUUAFFFFABRRRQAUUUUAZPieLzfDt2B1VQ4/Ag/0rHMvl/EDS7ocLqOmtH9Sp3/yrptQi8/TrqH+/Ey/mDXF3su2x8Iann/U3a27H0VgVP8A6DWdDTFtfzR/K/8AmXX1wif8sl+Nv8jvKKKK0ICiiigAooooAK5jxd/oM2la2vH2K5Cyn/pk/wArf0/OunqrqWnw6pp09jcbvKmXaxXqPce+aipHmi0jOrFyg0typqviLTNHAW6uAZm+5BGN0jemFH9ayxJ4l145jUaLYn+JxvuHH06L/P61p6T4b0zRfmtbfdOfvTyndI349vwxWtU8spfE7eS/zJ5Jz+N2XZf5/wDDHM/8IeZf+PnX9Zm9vtO1fyxVbUfAWmvp1wbcXD3gjJhkknZiHHI74rr6KHRptaoHh6TVmjL8O6n/AGvoNpeE/vGTbJ7OOG/UVqVy+h/8SrxTqujniGci+tx7Nw4H4/yrqKdNtx13KoybhrutAooorQ0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArnPEv8AyHvCP/YVf/0jua6Ouc8S/wDIe8I/9hV//SO5oA6OiiigAoorD1Lxj4e0fVY9M1DVYILyTbiNs/LuOF3EDC5PTcRQBuUUUUAFFFFABXOeJf8AkPeEf+wq/wD6R3NdHXOeJf8AkPeEf+wq/wD6R3NAHR0UUUAFFFFABRRRQAUUUUAFFFFABXn+qQs3w91GJP8AWafdEp7FXB/kTXoFculr9oHifTMcygsB7yIaxcuTE0p+bX6/oa8vPhqsPJP9P1OjtplubWKdPuyoHH0IzUtYXg26+2eD9LlzkiERn/gB2/0rdronHlk49jCEuaKl3CiiipKCiiigAooooAKKKKACiiigDmPFoNhPpuvID/oU4SbHeJ+D+XH510wIYAggg8giq+o2Ueo6dcWcv3JoyhPpkdfwrJ8H3sl1oEcFx/x9WTtazA9inA/TFZL3alu5ivdqtd/zX9I36KKK1NgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5zxL/yHvCP/AGFX/wDSO5ro65zxL/yHvCP/AGFX/wDSO5oA6OiiigArgte8L+I7t/E8FhNowsNcGHa6WQyxj7OkR6ccbSw+td7XFeIfDWqXuszX8kcGuaa23ZpFzO8Cx4UA4xmOTJBOJF4yRnFAF/wnrd3qk1/bXeo6NeyWnlqTpbOwQndkOW4zx0HI5z2rZ1jUotG0W+1SdS0VnbyXDqOpCKWIH5VgfDx5LbwrZaJdadd2N7plrFDcJPDtVmwRuRxlXBKnkE++M1v6xpsWs6LfaXOxWK8t5Ld2HUB1Kkj86AOe0vXteh1jSrPXodP2atA8kH2RXBgkRQxjfcTv+Un5ht5U8c0zxX4yfR9atdFtJbeG6lt2uXmntpbjagbaAsUWGYk7iTkBQvPUUy10LxNLe2F5qUulmbSbSWOyELSFZ53QKJJcqNgwPuru+8eeBVm/0TWl1+y8RaeunSakLA2N3DcSOkTAsH3I4ViMMDwRyD2xQBu6Ne/2jo9pefara686MN51qCI391BJIHsScVy+reItE1XxV4Ws9P1iwu7qLVJGkhguEd0AtLgElQcjBIH41v8AhfRn0Dw9b6fLMs0ytJLK6LtUvJI0jbR2UFiB7AVS8SKBr3hEgAH+1X7f9OdzQB0lFFFABRRRQAUUUUAFFFFABRRRQAViRfufGdwvae0V/qVbFbdYmofufFOky9pUliJ/DI/WubE6KMu0l+On6nThtXKPdP8ADX9DMt/B+pWCNDp/iW4trbezpCLdWC5OcZJqX/hHNf8A+huuf/AVP8a6miu/283vb7l/kcCoQW1/vf8Amct/YHiaP/VeL3PtJYxt/Wj+zvGUf3ddsZf+ulpt/lXU0UvbS6pfcg9hHo397/zOW2eOY+kuhTD/AGllB/Ska98awqS+l6XNgZxFMwz+ddVRR7XvFB7HtJmboGrprmi2+oImwyAh4852MDgj8xWlXJ6H/wASfxfqujHiC6/0+2HbnhwPx7egrrKVWKjLTZlUpOUdd1owooorM0CiiigArl4f+JR48li6W+rQ+Yvp5ydR+I5/GuorH8QaPLqsFu9rMsF7aTCaCRhkZHY+x/pWdRNq63RlVi2k47r+vyNiiuYj8VT6dItv4jsWsmJwt1Fl4HP16r9DXRwzxXMKzQSpLEwyrowIP4inGcZbFQqRnsSUUUVZYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVzniX/kPeEf+wq//pHc10dc54l/5D3hH/sKv/6R3NAHR0UUUAFcR49ngj1HRILx9UmspjMJLDSmlE8zAKVc+UQxROc8jl164rt65/xDoGoarf6dfaZrA0y5sxKu/wCyrN5ivtypyRgfKD9QOmKAKvg2LSo/tv8AZmna5Z58vzP7VNz8/wB7GzzmPTnO31Ge1dVWVo1jq9n5/wDauspqO/b5e20WDy8Zz0JznI+mPetWgAooooAK5zxL/wAh7wj/ANhV/wD0jua6Ouc8S/8AIe8I/wDYVf8A9I7mgDo6KKKACiiigAooooAKKKKACiiigArE8Rfu20y5/wCeV4gJ/wBk5BrbrG8Uxl/D1wy/ejKuPwYVzYtfuJPsr/dqdGEf7+K7u336GzRTIpBLCkg6OoYfjT66U76nO1YKKKKACiiigDlfGaNY/wBneIIlJfTpx5uOphf5WH8vzNdQjrIiujBlYAgjoRUV7aRX9jPZzDMU8bRt9CMVheCbuWTRG0+5P+l6bK1pJ7hfun6YwPwrZ+9T9Pyf/B/MxXu1bd/zX/A/I6SiiisTYKKKKACiiigBkkUc0bRyorxsMMrDII9xXHazpkXhUw6vpMktrD9pjF1bq2YmQnBO09DXaVkeKbT7b4X1GDGT5BcD1K/MP1FZVY3i31RjWgpQbW62NeiqGiXf27QrG6zkyQIzfXHP65q/Wid1c1i7pNBRRRTGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVzniX/kPeEf8AsKv/AOkdzXR1zniX/kPeEf8AsKv/AOkdzQB0dFFFABXE/EXX9T0axVNNvorB2s7u6Fy8auWeGMMsShuMtknoeEOK7auc8Y2k9xpqv5uiGyjybm31mHdBL0wS+fkIwecN16cUAP0TWpNS8Q6vapPHcWlrDbFXjwQkrh96EjqQAje2+ugrj/AGu2Oq2F1a6focemW9mygNaBTaTFs5MLgKHxjngdR612FABRRRQAVzniX/AJD3hH/sKv8A+kdzXR1zniX/AJD3hH/sKv8A+kdzQB0dFFFABRRRQAUUUUAFFFFABRRRQAVU1WLz9JvIu7QuB9cHFW6QgEEHkGpnHmi4vqVCXLJSXQoaHL5+hWT9T5KqfqBj+laFctpGpTaTp62M+l6lI0LsA0cGVI3EjnPvV7/hIx/0B9W/8Bv/AK9cdDF01Sipuzsr7nXXwtR1ZOKuru2xt0Vif8JGP+gPq3/gN/8AXo/4SMf9AfVv/Ab/AOvWv1yj/N+Zl9UrdvyNuisT/hIx/wBAfVv/AAG/+vR/wkY/6A+rf+A3/wBej65R/m/MPqlbt+Rt1ycv/El+IMUv3bbWYfLb0EydD+I4+prorC/t9StVuLdiVPBB4Kn0I9azPFulz6noh+xjN9bSLcW3rvU9PyzXZh5xls9JHHiISittYm7VLUdY07SYw9/eQ24PQO3J+g6msAW3i7WgPtNzBolsesdv+8mI926D6irth4N0WyZpHtvtlw4+ee8Pmu358fkKvkhH4n93+f8Aw5PPOXwL7/8ALf8AI3IpY54klidXjcBlZTkEHuKfXF/v/At3g+ZN4cmf3ZrJif1Qn/OevZRyJNEksTq8bgMrKcgg9wamcOXVaplU6nNo9Gh1FFFZmgUjqroyMMqwwR6ilooA5rwOzJoL2LnL2NzLbnPs2f610tczon+ieMNfsuiymO6jH1GGP54rpqzo/Al20+4xofw0u2n3aBRRRWhsFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVzniX/kPeEf8AsKv/AOkdzXR1zniX/kPeEf8AsKv/AOkdzQB0dFFFABXH+I7K81DUtLi+w+HrvUY/tMsCagJGCxh0AZAFI3YZN2ehPHGa7CvOvHtjomm6qmu3sviOa7+zTsLbTL6SMLEioZH++oRQEXOCNxYZDHGADqdCvNWkvbyx1ltLFxBHFIsdg0hKo5cAtvA6lDjHofatyuL8BvZG51aKHSNXsbxPJ899Vu/PllBDFMMZHO0c46DJOMkHHaUAFFFFABXOeJf+Q94R/wCwq/8A6R3NdHXOeJf+Q94R/wCwq/8A6R3NAHR0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBg6haT6Xdtq2nIWVv+Pq3HSQf3h7itezu4b61S4t3DxuMg/wBD71PXPXUEugXb6hZoXsZDm5t1/gP99R/P/OOOSeHk5x+B7rt5ry7/AH9zri1iEoS+JbPv5P8AT7joaKxP+Et0T/n8P/fp/wDCl/4S3RP+fw/9+n/wq/rmG/5+R+9EfU8R/wA+39zNeWKOeF4ZkWSNwVZGGQwPY1xytP4Fuwjl5vDkz/KxyzWbE9D6of8APPXs0dZEV0IKsMgjuKjuLeG7tpLe4jWSGRSro3Qg1206ltHqmcdSnzarRokR1dFdGDKwyCDkEUtcho1xN4Y1ZfD1/Iz2UxJ024f0/wCeTH1Hb/64FdfSnDlfkOnPnXn1CiiioLOZv/8AQ/iBpdx0W8tZLZj7r84rpq5nxn/o9vpmpDj7HfRux/2Dwf6V01ZQ0lJGNPSco/P7wooorU2CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5zxL/AMh7wj/2FX/9I7mujrnPEv8AyHvCP/YVf/0juaAOjooooAK4jXdU06+1CSO88O+I5zBFcWRaCwYxyxyYVwD3U7FII9BXb1wHxUlvItH3JNqENkLO7LPYs6t9pEY+zhynzBM7/bO0GgC94Gtoo5NQmx4ge5ZIYmm1m3ETGNN+xEwoBC5Yk4zluTzXY1yvhXUpNZ1bVb+3kupNJaK2jt3mV1VpVD+aYw2PlwYxkDBINdSwJUgHBxwfSgDFtPF2hX2q/wBmW9+HuS7xp+6cJIyfeVJCNjkYOQpJGD6VrXV1BZWk11cyrFBChkkkc4CqBkk15Vo91BceH/BnhqDP9uabfwteW2077fyg/mu/oG5AJ+9vGM5rqdak1DxLBpF5oMNlqWj72nminuXt/OdCPLB/dtlQwJIIGSq9sggHSaTqtlrmmQalp0xmtJwTG5RkJwSDwwBHIPUVk+Jf+Q94R/7Cr/8ApHc1Q+Fsl3J4Ds/tdvFDiSUR+XMZNy+Y3Jyowc5GOeADnnAi1WDXY/FfhZ9R1HT7i0OqS+XHb2TxOp+yXGMsZWB4yPuj8OlAHb0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAGB6VHNDHPBJDIoZHUqw9QakopNJqzGm07oxfDszxRT6XO2ZrJ9gJ/iQ8qfy/pW1WDq/8AxLdVtNXXiIn7Pc/7p6N+B/pW9XPhm4p0nvH8un+XyOjErmaqraX59f8AP5mdrejW+u6ZJZ3GVz80cg+9G46MKzfDWs3Esk2jathdWsxhj2nTtIvr7/5A6OsXXfD/APa0lvd2tybLUrU5huVXdgd1I7g/5713QkmuSW35HDOLT54b/mbVFcp/a3ifR+NT0lNRgHW408/Pj3jPJP0wK0dL8V6Nq8ght7tUuM4NvMNkmfTB6n6ZpOlJK61XkEa0G7PR+Y7xVafbfC2pQ4yfJLge6/MP5Va0W7+3aHY3WcmWBGb645/XNXHRZEZGGVYEEeornPA7svh9rJzl7K5lt2z7Nn+tcz0qLzX5CelVea/L/hzpaKKK1NgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuc8S/8h7wj/wBhV/8A0jua6Ouc8S/8h7wj/wBhV/8A0juaAOjooooAK5vxHpuvT6tpeo6A+nLNarNHKt8X2uj7OAFHXKA57Y9zXSUUAZWjHXz5/wDbiaav3fJ+wtIfXdu3ge2Me9atFFABRRRQAVzniX/kPeEf+wq//pHc10dc54l/5D3hH/sKv/6R3NAHR0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEF7aR31lNay/clUqfb0NUPD13JNp5trj/AI+bRjDKPp0P4itasG7/AOJX4jgvBxb3oEE3oHH3T/T865a/7ucavyfo9vuf4NnTR/eQlS+a9V/mvyRvUUUV1HMFcv4401JtCl1GCGP7dYstxHLtG4bDkjPXGMn8K6imTRJPDJDIu6ORSrD1BGDV058klIipDni4kdldR31jb3cX+rnjWRfoRmsDQ/8ARPF2v2XRZGjukHruHzH88UngaV00afS5mzNptzJbNnqVByp+mD+lF+RZfEDTLgnat5ayW7HtlTvH9KyxEeSa8n+Zi5c0YVPP89Dp6Kb5if31/OlDqxwGBPsao6RaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArnPEv/ACHvCP8A2FX/APSO5ro65zxL/wAh7wj/ANhV/wD0juaAOjooooAKKKKACiiigAooooAK5zxL/wAh7wj/ANhV/wD0jua6Ouc8S/8AIe8I/wDYVf8A9I7mgDo6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArO1yz+3aNcwgZfZvT13DkfyrRoqKkFUg4PZl05uE1Nbop6Vd/b9KtrnOTJGC3+90P65q5WHoH+i3Oo6YeBBNvjH+w/I/z71uVnhpudJOW+z9Vo/wAS8RBQqtR23Xo9UFFFFbmJysP/ABK/iNPF0h1a1Eg95Y+CP++cmtvVNF07Woo49QthMsZ3L8zLg/UEVieN1Npb6draA7tNu1dyP+ebHaw/HiupVgyhlIIIyCO9a1Upxi36fd/wLGEIq8qbWm/3/wDBuc7/AMIH4a/6Bg/7/wAn/wAVWXrfh6w8NQ2+t6RamGSznV5gJGbfEeGHJPrXb1FdW0d5aTW0wzHKhRh7EYNckqMLe6kmE8PTcXyxSfoPjkSWJJI2DI4DKR3B6U6uc8G3Mn9lSaZcHNzpsrWz+6j7p+mOPwro60hLmimaU588VIKKKKosKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5zxL/yHvCP/AGFX/wDSO5ro65zxL/yHvCP/AGFX/wDSO5oA6OiiigAooooAKKKKACiiigArnPEv/Ie8I/8AYVf/ANI7mujrnPEv/Ie8I/8AYVf/ANI7mgDo6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAw73/AELxRY3XSO6Rrd/qOV/wrcrI8SW7TaNJLH/rbdhOh9CvP8s1pWtwt1aQ3CfdlQOPxFc1L3K04d9V89H+K/E6avvUoT7afdqvwf4EtFFFdJzFPVrFdT0i7sXxieJkBPYkcH8DWb4Mvmv/AAtZmXPnQKbeUHqGQ7effAB/Gt6uU0H/AIlnjDXNKPEdwVv4R/vcP/49j8q1h71OUe2pjP3akZd9P1R1dFFFZGxy9z/xJ/HVvc9LfVovJk9BKn3T+I4/OuorD8W6e9/4fmMGRc2xFzAR1Dpzx+GR+NaGk6gmqaVa30eNs0YYgdj3H4HIrKHuycfmYw92bj8/8/x/MuUUUVqbBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXOeJf8AkPeEf+wq/wD6R3NdHXOeJf8AkPeEf+wq/wD6R3NAHR0UUUAFFFFABRRSMdqk4JwM4FAC0V5hpV3qMWjeFPFL6rfTXWsXkKXdvJOzQGOfdhVj+6mz5cEAH5TnOa7bxHZ2U1j9r1LVLyws7RWkla3u3twRxyzIQ3GOAD370AbNc54l/wCQ94R/7Cr/APpHc0/wW2ov4ZhfUmuGdpZWgN1/rvILnyvM/wBvZtz39ec1karr9nqXivwtaQQ6gkkWqSlmuNPnhQ4tLgcO6BT17E560AdvRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACOiyIyMMqwwR6isXw07R2c9g5y9nM0XPdc5BrbrD/AOPHxf6R38H5un/1v51zV/dqQqedn8/+DY6aPvU50/K/3f8AAublFFFdJzBXNeINN1M6zp2saPDFLc26vFLHK+0OjDjn2OTXS0VUJuLuiJwU1ZnLf2h4y/6Adh/4FVFN4k13SXgn1vSbeDT3kEck8M28x56Ej0zXXVDd2kF9Zy2tzGJIZVKOp7g1oqkb6xVvn/mQ6UraSd/l/kSghlBBBUjII71zHhj/AIlmq6roDcJDJ9oth/0yfsPof50zwzdz6VfS+F9QkLSQLvspm/5bQ9h9V6fh7VJ4i/4l3iLRdYHCGQ2c59Vf7ufYHJrnxEPZyUu35MiU7pVOz1/J/wCZ09FFFUdIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVzniX/kPeEf+wq//AKR3NdHXOeJf+Q94R/7Cr/8ApHc0AdHRRRQAUUUUAFFFFAHM2XgfTrG+tpkur6S1tJnntLCSVTBbyNnLKNu7jc2AzEDPAFJqfgqPVLDTLWbXNYH9nymZJPMikaV85VpA8bKxX+Hjjr1Arp6KAKmnWc1jaCGfULq/cEnzrkRhz7fIqrj8Kx/Ev/Ie8I/9hV//AEjua6Ouc8S/8h7wj/2FX/8ASO5oA6OiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACszWNOmvkt5LWSOO5t5RIjSZx7g4rToqKlONSLjLYunUdOSlExNnib/ntpn/fL0bPE3/PbTP8Avl626Kx+rL+eX3m31l/yx+4xNnib/ntpn/fL0bPE3/PbTP8Avl626KPqy/nl94fWX/LH7jE2eJv+e2mf98vRs8Tf89tM/wC+Xrboo+rL+eX3h9Zf8sfuOR1jRNd1L7PcvJZC5s382B4Nyvn+6CRjB9DxWPd6ve+I9BaGYQYn8xQiKVkhmj+YK2TwSQB+NejV574tszoniG01W1BWG7kBmQcL5ycq31I3ClWo2oyak7xV9+i1a+auQpqpNQlFWno9O+ifyZ2Wh6gNU0Ozvc5MsQLf73Rv1BrQrlvB7razarpAPyW1x5sH/XKQblx/nvXU1tSlzQTOWlJuCvv19UFFFFaGgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXOeJf+Q94R/7Cr/+kdzXR1zniX/kPeEf+wq//pHc0AdHRRRQAUUUUAFFFFABRRRQAVzniX/kPeEf+wq//pHc10dc54l/5D3hH/sKv/6R3NAHR0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFYfi/TzqPhu6VFzNCBPF67k5x+IyPxrco60LzEzgNIuxDq+hagD+7vIGsJT23Kcp+JGBXf15vdWT2umazp0XE2mzrfWvsq9/8AvgivQbK6S+sbe7j+5NGsi/QjNceDdo8j6fpp+l/mVVXLiJpbStJfMnooorsEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVzniX/kPeEf8AsKv/AOkdzXR1zniX/kPeEf8AsKv/AOkdzQB0dFFFABRRRQAUUUUAFFFFABXOeJf+Q94R/wCwq/8A6R3NdHXOeJf+Q94R/wCwq/8A6R3NAHR0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHM6yqWfiWwunH7i7Q2kwxwc8DP5j/vml8FyPFplzpUrEy6dcvBz1K5yp/U/lU/jC0N14emK5DwkSAjqOx/QmsayOsyXY17R7W3uE1C2jFzHJLs2zJlT/Ij8644pwrSt6/Jr/NfiPEv3aVVdLp/n+qO3ormvt/i7/oDWP/gTRB4h1G01O3tNd0+K0jusrDPFLvXf/dPpmuj2set/uMPbR6pr5M6WiiitDYKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuc8S/wDIe8I/9hV//SO5ro65zxL/AMh7wj/2FX/9I7mgDo6KKKACiiigAooooAKK5mx8cadfX1tClrfR2t3M8FpfyRKILiRc5VTu3c7WwSoBxwTWjrWvwaL9lja2ubu7u3Mdva2qhpJCBuYjcQoAAySSB09aANWuc8S/8h7wj/2FX/8ASO5rS0XWbXXdP+12qyptkeGWGZdskUinDIw7EH/EcVm+Jf8AkPeEf+wq/wD6R3NAHR0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEVzAtzaywP8AdkQofxGK5DwFdtG2o6RLw8EvnID/AHW4YfgwP512lcU/hnStQ8UajHfRvvwssTJKUyrfeHHvWLcYVouWzuv1X5W+ZqlKdGSjurP9H+d/kdrVLVtLt9Y06Wyulyjjhh1VuzD3FYX/AAgXh/0uP/Ap/wDGmP4Kt7TE2iand6fdL0bzTIjezKeorqcKUlbm/D/gnJJ1GrOF16/8At+HNUuFml0PVW/4mNoPlc9LiPs49/X/APXXRV5t4gvdXtkhm1WzEV9ZtuttUsvnjb1V16gH/Ixmuw0HxHZ65pcd0skccv3ZYiwyjd/w9DWPLKm+WXyff/gkUauvs3v5mzRUX2q3/wCe8X/fYo+1W/8Az3i/77FO50ktFRfarf8A57xf99ij7Vb/APPeL/vsUXAloqL7Vb/894v++xR9qt/+e8X/AH2KLgS0VF9qt/8AnvF/32KPtVv/AM94v++xRcCWiovtVv8A894v++xR9qt/+e8X/fYouBLRUX2q3/57xf8AfYo+1W//AD3i/wC+xRcCWiovtVv/AM94v++xR9qt/wDnvF/32KLgS0VF9qt/+e8X/fYo+1W//PeL/vsUXAloqL7Vb/8APeL/AL7FH2q3/wCe8X/fYouBLRUX2q3/AOe8X/fYqWmAVzniX/kPeEf+wq//AKR3NdHXOeJf+Q94R/7Cr/8ApHc0AdHRRRQAUUUUAFIw3KRkjIxkUtFAHmGlWmoy6N4U8LPpV9DdaPeQvd3EkDLAI4N2GWT7r7/lwFJPzHOMVtardzyar4b8UJpepG0gS6guLf7KxuIhJt2uYhliMxY4ycMDXa0UAcz4LtbmO11W+ubaW1/tLUpbuKCZdrpGQqLuHYkJux1G7nms7VdAs9N8V+FruCbUHkl1SUMtxqE8yDNpcHhHcqOnYDHSu3rnPEv/ACHvCP8A2FX/APSO5oA6OiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKoX2i6dqUqy3dsJHVdobcw4/A1foqJ04TXLNXXmVCcoPmg7PyMb/hFNE/58v/ACK/+NH/AAimif8APl/5Ff8AxrZorH6nh/8An3H7kbfW8R/z8f3sxv8AhFNE/wCfL/yK/wDjVeTwN4clcu+mgsep86Qf+zV0NFVHC0I6xgl8kZVak60eWq3Jeev5nN/8IF4Z/wCgb/5Hk/8AiqP+EC8M/wDQN/8AI8n/AMVXSUVfsaf8q+45/YUv5V9yOb/4QLwz/wBA3/yPJ/8AFUf8IF4Z/wCgb/5Hk/8Aiq6Sij2NP+VfcHsKX8q+5HN/8IF4Z/6Bv/keT/4qj/hAvDP/AEDf/I8n/wAVXSUUexp/yr7g9hS/lX3I5v8A4QLwz/0Df/I8n/xVH/CBeGf+gb/5Hk/+KrpKKPY0/wCVfcHsKX8q+5HN/wDCBeGf+gb/AOR5P/iqP+EC8M/9A3/yPJ/8VXSUUexp/wAq+4PYUv5V9yOb/wCEC8M/9A3/AMjyf/FUf8IF4Z/6Bv8A5Hk/+KrpKKPY0/5V9wewpfyr7kc3/wAIF4Z/6Bv/AJHk/wDiqP8AhAvDP/QN/wDI8n/xVdJRR7Gn/KvuD2FL+Vfcjm/+EC8M/wDQN/8AI8n/AMVR/wAIF4Z/6Bv/AJHk/wDiq6Sij2NP+VfcHsKX8q+5HN/8IF4Z/wCgb/5Hk/8AiqP+EC8M/wDQN/8AI8n/AMVXSUUexp/yr7g9hS/lX3I5z/hA/DQP/IN/8jyf/FV0dFFVGEY/CrFxhGHwqwVzniX/AJD3hH/sKv8A+kdzXR1zniX/AJD3hH/sKv8A+kdzVFHR0UUUAFFFFABRRRQAUUUUAFZGu6ENbFiy6hd2E9lcfaIZrURlgxjeMjDqwI2yN2rXooA5z/hGtV/6HXXP+/Nn/wDGKP8AhGtV/wCh11z/AL82f/xiujrE1jxNBpN/HYR2F/qN68JnMFlGrMkQON7bmUYzwBnJwcA4oAw59K1+PxRYacni/WzaT2dxPJL9ntMq6PCFGfIwMiR+Pb2Nan/CNar/ANDrrn/fmz/+MVq2esWF/osWsQXCmwkh88SngBMZJOemO/pWXo/jGz1e9t7X7DqFmbuFp7N7uIIt1GMZKYYkcEHDBTg5xQAn/CNar/0Ouuf9+bP/AOMUf8I1qv8A0Ouuf9+bP/4xXR0UAc5/wjWq/wDQ665/35s//jFH/CNar/0Ouuf9+bP/AOMV0dFAHOf8I1qv/Q665/35s/8A4xWXPpWvx+KLDTk8X62bSezuJ5Jfs9plXR4Qoz5GBkSPx7exrc1jxNBpN/HYR2F/qN68JnMFlGrMkQON7bmUYzwBnJwcA4q5a6xZ32hx6xayGazkg89GUclcZ6HofY96AMv/AIRrVf8Aoddc/wC/Nn/8Yo/4RrVf+h11z/vzZ/8AxipvD3iR/EMMNymh6nZWk9utxDc3Rg2SK2CoASRmBIOeQOh71u0Ac5/wjWq/9Drrn/fmz/8AjFH/AAjWq/8AQ665/wB+bP8A+MV0dFAHOf8ACNar/wBDrrn/AH5s/wD4xR/wjWq/9Drrn/fmz/8AjFdHWH4g8TQ+HTbtcaffzwyyRxtPbxqUiLusa7izD+Jh0yaAMTVNK1+z1HRYIPF+tvHeXjQTsbe0OxBBK4IxBx8yKMn1+lan/CNar/0Ouuf9+bP/AOMV0EsscELyyuEjRSzMxwABySa5/SPGdlq97a2wstQtBexNNZS3UQRLpBgkphiRwQcMFOOcUAH/AAjWq/8AQ665/wB+bP8A+MUf8I1qv/Q665/35s//AIxXR0UAc5/wjWq/9Drrn/fmz/8AjFH/AAjWq/8AQ665/wB+bP8A+MV0dFAHOf8ACNar/wBDrrn/AH5s/wD4xWXqmla/Z6josEHi/W3jvLxoJ2NvaHYgglcEYg4+ZFGT6/StvxB4mh8Om3a40+/nhlkjjae3jUpEXdY13FmH8TDpk1szSLDDJKwJVFLHHXAFAHP/APCNar/0Ouuf9+bP/wCMUf8ACNar/wBDrrn/AH5s/wD4xUvh3xM/iOCC5i0PU7OzuIFuIbm6MGx1YAqAElZgSDnkDpW9QBzn/CNar/0Ouuf9+bP/AOMUf8I1qv8A0Ouuf9+bP/4xXR0UAc5/wjWq/wDQ665/35s//jFH/CNar/0Ouuf9+bP/AOMV0dY+ra9JpU/lJouq34EfmvJZxIVQZPGWdcnj7q5PTjmgDA1TStfs9R0WCDxfrbx3l40E7G3tDsQQSuCMQcfMijJ9fpWp/wAI1qv/AEOuuf8Afmz/APjFbWnahbarpttqFlKJbW5iWWJwMblYZBx2rCtPHGnXl/bwLa3yWt1O1tbag8Si3nlXOVU7t3O1sEqAccE0AP8A+Ea1X/oddc/782f/AMYo/wCEa1X/AKHXXP8AvzZ//GK6OigDnP8AhGtV/wCh11z/AL82f/xij/hGtV/6HXXP+/Nn/wDGK6OigDnP+Ea1X/oddc/782f/AMYrL1/Stf03Top7TxfrcsjXltAVa3tGwkk6I54g7KzHPbHNdLq2rSaYYVi0nUNQeXd8tmiHaBj7xdlUdeOcnn0p+jaxa67pqX1p5gjZnjZJU2vG6sVZGHYhgQfpQBl/8I1qv/Q665/35s//AIxR/wAI1qv/AEOuuf8Afmz/APjFOt/FZvNYutPtNC1SeO0uxaT3aeQIkfCsT80ocgBwThT7A10NAHOf8I1qv/Q665/35s//AIxR/wAI1qv/AEOuuf8Afmz/APjFdHRQBzn/AAjWq/8AQ665/wB+bP8A+MUf8I1qv/Q665/35s//AIxXR1n6rqc2mpGYdKvtQZyRstBHlcdyXdQPzoA5jX9K1/TdOintPF+tyyNeW0BVre0bCSTojniDsrMc9sc1qf8ACNar/wBDrrn/AH5s/wD4xWnous22u6cLy1WVAJHikimTa8UiMVZGHYggism08cadeX9vAtrfJa3U7W1tqDxKLeeVc5VTu3c7WwSoBxwTQA//AIRrVf8Aoddc/wC/Nn/8Yo/4RrVf+h11z/vzZ/8AxiujooA5z/hGtV/6HXXP+/Nn/wDGKP8AhGtV/wCh11z/AL82f/xiujooA5z/AIRrVf8Aoddc/wC/Nn/8YrL1/Stf03Top7TxfrcsjXltAVa3tGwkk6I54g7KzHPbHNdPqupzaakZh0q+1BnJGy0EeVx3Jd1A/OjRdZttd04XlqsqASPFJFMm14pEYqyMOxBBFAGZ/wAI1qv/AEOuuf8Afmz/APjFH/CNar/0Ouuf9+bP/wCMU7RfFZ12Zfs2haolm0ssQvpfIEWY2ZTwJS+NykD5fTtzXQ0Ac5/wjWq/9Drrn/fmz/8AjFH/AAjWq/8AQ665/wB+bP8A+MV0dFAHOf8ACNar/wBDrrn/AH5s/wD4xR/wjWq/9Drrn/fmz/8AjFdHUdxcQ2ltLc3EqxQRIXkkc4CqBkkn0xQBxviLSde0rwzquoWfi/W5rq1tJZoY2gtGDuqEgECDJyR2rSXw3qxUE+NNcyR/zxs//jFXfDniK18TafLe2kF1Akc7wMlzGEfcvU4ycDnvg+oFULrxxp1rfzwNa3z2lvcLa3GoJEpt4ZWwArHdu6soJCkAnkigB/8AwjWq/wDQ665/35s//jFJF4Un/tTT7698Sarf/YZmmihnS3VN5jePJ8uJT912710lFABRRRQAUUUUAFFFFABRRRQAUUUUAFcdqc0+g+OptZk06/vLK802O2DWVu07JLHJI20qvIDCTg9MqckV2NFAHB6VpV8fh7N4SntLiC/utKuHMpXMMTzF8R7xxuUv09Bmm6bJea5rnhY/2Tf2I0eGV7xrqAxqshi8oRoTw/LE5XIwo55rvqKACiiigAooooA47U5p9B8dTazJp1/eWV5psdsGsrdp2SWOSRtpVeQGEnB6ZU5IpfCiT6P4Wt9G1HTLwzpZSXcyxxb4/ndmMIYHBcbsbRXYUUAefaDYWkfjCxn8M6Je6TpsdtKmoedaPaxyk7fLUI4G5wQx3AcDIzzXoNFFABRRRQAVxnxIu2Xw8ljDY6jdTy3VrKotLKWcBY7iJ2yUUgfKpIB644rs6KAOe1C7/wCEi0e90q2tL+Fr/TZTHPcWrxIhbKBW3AFXyc7SOnNc/pbXus6p4SiOkX9kdFR5L17mAxor+QYRGjHiTJcnK5GF6816DRQAUUUUAFFFFAHGfEi7ZfDyWMNjqN1PLdWsqi0spZwFjuInbJRSB8qkgHrjitxNbhvFKLpupmN7RrjMlo8YIB2+XhsESHqFIHHNa9FAHnmhafZx+L9Om8MaHe6Tp8UEq6iZbSS1jlBA8tdjgb3Dc7gOBnnmvQ6KKACiiigArjfGmuXsF1BolrbapFDdRl7rUrTT5rjyY8kbI/LRv3pweTwo55OBXZUUAY+mXNnY2mj6dp+n3sdnJAUgzbOiwIijAk3YZCRwMjJINcPplnqLaJ4a8KNpd9HdaVqEMlzcvAwg8qBywdZPutvwoABJ+Y5AxXpdzdW9lbSXN1PFBBGNzyyuFVR6kngUlrd219ax3VpcRXFvKN0csLh0ceoI4IoAmooooAKKKKAOZ8Za/f6Pa21vptjeS3N4xT7VDZS3KWijGXdY1JJ5+Ve56kAGnaDNY6R4f0+Cws9WlhluDEzzWkiTeY7MzzSq4VgC2SWxjnjiukooA838R2Njd6jIdC8PahB4lN9Gy6gtnJEgw67naYgKyFAflycg4xXpFFFABRRRQAVh+Jru1isktbyHWWiuM/vNKjnLoVIPLQ/Ouc/Q4Oa3KKAOO8EtdaVpVrptzpt9HHcXNy1q8kI3Rwhtym4I6O2TyeT35zWBplnqLaJ4a8KNpd9HdaVqEMlzcvAwg8qBywdZPutvwoABJ+Y5AxXqFFABRRRQAUUUUAYfia7tYrJLW8h1lorjP7zSo5y6FSDy0PzrnP0ODmsrwS11pWlWum3Om30cdxc3LWryQjdHCG3Kbgjo7ZPJ5PfnNdjRQB5vHY2MviTSJ/DPh7UNMu0vDJqFzJZyW0ZgIberlgBKWYjGN2DzkYr0iiigAooooAKwfFOjahrdnawWN7bQLHcLNNHcwNLHOF5CsFdTjdtbrztweMit6igDhPBh1rRU1QaxbvN9s1uVYvsli6bSxJaVtzn90cDB7epzxlajZ6iuieIvCa6XfSXep6lNJb3KQMYPKmlDl2l+6uwFgQTn5RgHNeoUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFcp8Syw+HurFAC22PAJwCfMXvXV1V1LTbTV9Plsb6LzbaXG9NxXOCCOQQeoFAHFapc67P4x8HrqulWNpEL+Yq9vftOS32WbggxJge+TVNfF2pJr2mXVtc6nd6Pf6l9jD3Nrbx2xDFgPKIIlyCvVgQQD04r0G6020vbuyuriLfNZSNLbtuI2MUZCcA4Pysw5z1rHj8C+HIryK6TTyJIbj7TCPtEpSKTO7cibtq5JyQAAe9AGSH1q78ciz0zxHfTWVnL5upLLBbmGMHlbdCIg5Yggk7squM5JFZOieJPF2svY6tbWWpSWtzdhZLdorVbVLfzCrENv87eq85PUgjaM111l4K0TTr03dml/DIZ2uGRdSufLaRjuJMfmbDk9QRipE8H6HHqX2+K0kjmM3nlI7mVYjJnO8xBthOec7etAGR8TbWW68OWccd7NbKdUslcRqjb91xGBnep6Ehh7gZyMisvxVruq6St9HpOo6vdT6PZrJceXZ2pgDBC+ZmfYfmAyRHjAPA7V3uoabaapbpBexebGk0c6ruK4dGDoeCOjKDWXqng3QNZu57m/sTJJcRiOcLPIizKBgb1VgrEZ4JBI7UAZEep6t4l1/7DZam+kW0Gm216xhhjklmaYvgZkVgEXZzgZJPUVXsLC9X4oa5OdZvMQ6fYvJFHFDtnGZxtOUJAypPBByx5xgDor3wlot+LXzrWRXtIvIhkguZYZFj4+QujBivHQkipn8N6W2p22oiGWO7t41iSSK4kj3IpJVXCsA4GTwwPU0AcfpWu699h8Ma/daqtzb67cJFJp4gRUgWVGZfLYDeSmADuJzz0rW8Ez61qtvPqmpau80Qu7u3itVgjVAiTuiliF3FgFxwQMYyCea07LwfoOnamuoWthsuEZ3jBldo4mfO4pGWKITk5KgdTWlp2m2mlWhtbKLyoTJJLt3Fvmdy7HJJPLMT+NAFqiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.title(\"relative mAP values per area\")\n", "plt.xlabel(\"Haze factor\")\n", "plt.ylabel(\"relative mAP\")\n", "for k in (\"map\", \"map_small\", \"map_medium\"):\n", " plt.plot(perturbation_values, [m[k].item() for m in perturbed_metrics], label=k)\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "f6e276bd-2eaf-4a4c-a3cd-9bb8c98fa30c", "metadata": {}, "source": [ "The `map` line covers all sizes; `map_small` and `map_medium` are the mean average precision for objects (smaller than 32^2 pixels, between 32^2 and 96^2 pixels) in area, respectively. (There are no detections in the `map_large` category.) (Here, the mAP value is averaged over a **range** of IoU thresholds, between 0.5 and 0.95.) We see that medium objects, regardless of class, are generally much more robust to more haze perturbations than small ones.\n" ] }, { "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 }